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