Class JsonbJaxrsProvider<T>
- java.lang.Object
-
- org.apache.johnzon.jaxrs.jsonb.jaxrs.JsonbJaxrsProvider<T>
-
- All Implemented Interfaces:
jakarta.ws.rs.ext.MessageBodyReader<T>
,jakarta.ws.rs.ext.MessageBodyWriter<T>
,AutoCloseable
@Provider @Produces("application/json") @Consumes("application/json") @Priority(4900) public class JsonbJaxrsProvider<T> extends Object implements jakarta.ws.rs.ext.MessageBodyWriter<T>, jakarta.ws.rs.ext.MessageBodyReader<T>, AutoCloseable
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
JsonbJaxrsProvider.DynamicInstance
private static class
JsonbJaxrsProvider.ProvidedInstance
private static interface
JsonbJaxrsProvider.ReadImpl
-
Field Summary
Fields Modifier and Type Field Description protected jakarta.json.bind.JsonbConfig
config
private boolean
customized
protected Function<Class<?>,jakarta.json.bind.Jsonb>
delegate
protected Collection<String>
ignores
private jakarta.ws.rs.ext.Providers
providers
protected JsonbJaxrsProvider.ReadImpl
readImpl
private Boolean
throwNoContentExceptionOnEmptyStreams
-
Constructor Summary
Constructors Modifier Constructor Description JsonbJaxrsProvider()
protected
JsonbJaxrsProvider(Collection<String> ignores)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private Set<Class<?>>
asSet(String classes)
void
close()
protected jakarta.json.bind.Jsonb
createJsonb()
private Object
doRead(jakarta.json.bind.Jsonb jsonb, Type t, InputStream stream)
private Object
doReadWithNoContentException(jakarta.json.bind.Jsonb jsonb, Type t, InputStream stream)
protected jakarta.json.bind.Jsonb
getJsonb(Class<?> type)
private PolymorphicConfig
getOrCreatePolymorphicConfig()
long
getSize(T t, Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType)
private boolean
initThrowNoContentExceptionOnEmptyStreams()
private boolean
isIgnored(Class<?> type)
boolean
isReadable(Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType)
boolean
isWriteable(Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType)
private Logger
logger()
T
readFrom(Class<T> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType, jakarta.ws.rs.core.MultivaluedMap<String,String> httpHeaders, InputStream entityStream)
void
setBinaryDataStrategy(String binaryDataStrategy)
void
setEncoding(String encoding)
void
setFailOnMissingCreatorValues(boolean failOnMissingCreatorValues)
void
setFailOnUnknownProperties(boolean active)
void
setIJson(boolean active)
void
setInterfaceImplementationMapping(Map<String,String> interfaceImplementationMapping)
void
setNullValues(boolean nulls)
void
setOtherProperties(String others)
void
setPolymorphicDeserializationPredicate(String classes)
void
setPolymorphicDiscriminator(String value)
void
setPolymorphicDiscriminatorMapper(Map<String,String> discriminatorMapper)
void
setPolymorphicSerializationPredicate(String classes)
void
setPolymorphicTypeLoader(Map<String,String> aliasTypeMapping)
void
setPretty(boolean pretty)
void
setPropertyNamingStrategy(String propertyNamingStrategy)
void
setPropertyOrderStrategy(String propertyOrderStrategy)
void
setThrowNoContentExceptionOnEmptyStreams(boolean throwNoContentExceptionOnEmptyStreams)
void
setUseJsRange(boolean value)
void
writeTo(T t, Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType, jakarta.ws.rs.core.MultivaluedMap<String,Object> httpHeaders, OutputStream entityStream)
-
-
-
Field Detail
-
ignores
protected final Collection<String> ignores
-
config
protected final jakarta.json.bind.JsonbConfig config
-
readImpl
protected volatile JsonbJaxrsProvider.ReadImpl readImpl
-
customized
private boolean customized
-
throwNoContentExceptionOnEmptyStreams
private Boolean throwNoContentExceptionOnEmptyStreams
-
providers
@Context private jakarta.ws.rs.ext.Providers providers
-
-
Constructor Detail
-
JsonbJaxrsProvider
public JsonbJaxrsProvider()
-
JsonbJaxrsProvider
protected JsonbJaxrsProvider(Collection<String> ignores)
-
-
Method Detail
-
isIgnored
private boolean isIgnored(Class<?> type)
-
setThrowNoContentExceptionOnEmptyStreams
public void setThrowNoContentExceptionOnEmptyStreams(boolean throwNoContentExceptionOnEmptyStreams)
-
setFailOnUnknownProperties
public void setFailOnUnknownProperties(boolean active)
-
setUseJsRange
public void setUseJsRange(boolean value)
-
setOtherProperties
public void setOtherProperties(String others)
-
setIJson
public void setIJson(boolean active)
-
setEncoding
public void setEncoding(String encoding)
-
setBinaryDataStrategy
public void setBinaryDataStrategy(String binaryDataStrategy)
-
setPropertyNamingStrategy
public void setPropertyNamingStrategy(String propertyNamingStrategy)
-
setPropertyOrderStrategy
public void setPropertyOrderStrategy(String propertyOrderStrategy)
-
setNullValues
public void setNullValues(boolean nulls)
-
setPretty
public void setPretty(boolean pretty)
-
setFailOnMissingCreatorValues
public void setFailOnMissingCreatorValues(boolean failOnMissingCreatorValues)
-
setInterfaceImplementationMapping
public void setInterfaceImplementationMapping(Map<String,String> interfaceImplementationMapping)
-
setPolymorphicSerializationPredicate
public void setPolymorphicSerializationPredicate(String classes)
-
setPolymorphicDeserializationPredicate
public void setPolymorphicDeserializationPredicate(String classes)
-
setPolymorphicDiscriminatorMapper
public void setPolymorphicDiscriminatorMapper(Map<String,String> discriminatorMapper)
-
setPolymorphicTypeLoader
public void setPolymorphicTypeLoader(Map<String,String> aliasTypeMapping)
-
setPolymorphicDiscriminator
public void setPolymorphicDiscriminator(String value)
-
getOrCreatePolymorphicConfig
private PolymorphicConfig getOrCreatePolymorphicConfig()
-
isReadable
public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType)
- Specified by:
isReadable
in interfacejakarta.ws.rs.ext.MessageBodyReader<T>
-
isWriteable
public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType)
- Specified by:
isWriteable
in interfacejakarta.ws.rs.ext.MessageBodyWriter<T>
-
getSize
public long getSize(T t, Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType)
- Specified by:
getSize
in interfacejakarta.ws.rs.ext.MessageBodyWriter<T>
-
readFrom
public T readFrom(Class<T> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType, jakarta.ws.rs.core.MultivaluedMap<String,String> httpHeaders, InputStream entityStream) throws jakarta.ws.rs.WebApplicationException, IOException
- Specified by:
readFrom
in interfacejakarta.ws.rs.ext.MessageBodyReader<T>
- Throws:
jakarta.ws.rs.WebApplicationException
IOException
-
writeTo
public void writeTo(T t, Class<?> type, Type genericType, Annotation[] annotations, jakarta.ws.rs.core.MediaType mediaType, jakarta.ws.rs.core.MultivaluedMap<String,Object> httpHeaders, OutputStream entityStream) throws jakarta.ws.rs.WebApplicationException
- Specified by:
writeTo
in interfacejakarta.ws.rs.ext.MessageBodyWriter<T>
- Throws:
jakarta.ws.rs.WebApplicationException
-
createJsonb
protected jakarta.json.bind.Jsonb createJsonb()
-
getJsonb
protected jakarta.json.bind.Jsonb getJsonb(Class<?> type)
-
initThrowNoContentExceptionOnEmptyStreams
private boolean initThrowNoContentExceptionOnEmptyStreams()
-
doRead
private Object doRead(jakarta.json.bind.Jsonb jsonb, Type t, InputStream stream)
-
doReadWithNoContentException
private Object doReadWithNoContentException(jakarta.json.bind.Jsonb jsonb, Type t, InputStream stream) throws jakarta.ws.rs.core.NoContentException
- Throws:
jakarta.ws.rs.core.NoContentException
-
logger
private Logger logger()
-
close
public void close() throws Exception
- Specified by:
close
in interfaceAutoCloseable
- Throws:
Exception
-
-