Class JsonbJaxrsProvider<T>

  • All Implemented Interfaces:
    java.lang.AutoCloseable, javax.ws.rs.ext.MessageBodyReader<T>, javax.ws.rs.ext.MessageBodyWriter<T>

    @Provider
    @Produces("application/json")
    @Consumes("application/json")
    @Priority(4900)
    public class JsonbJaxrsProvider<T>
    extends java.lang.Object
    implements javax.ws.rs.ext.MessageBodyWriter<T>, javax.ws.rs.ext.MessageBodyReader<T>, java.lang.AutoCloseable
    • Field Detail

      • ignores

        protected final java.util.Collection<java.lang.String> ignores
      • config

        protected final javax.json.bind.JsonbConfig config
      • delegate

        protected volatile java.util.function.Function<java.lang.Class<?>,​javax.json.bind.Jsonb> delegate
      • customized

        private boolean customized
      • throwNoContentExceptionOnEmptyStreams

        private java.lang.Boolean throwNoContentExceptionOnEmptyStreams
      • providers

        @Context
        private javax.ws.rs.ext.Providers providers
    • Constructor Detail

      • JsonbJaxrsProvider

        public JsonbJaxrsProvider()
      • JsonbJaxrsProvider

        protected JsonbJaxrsProvider​(java.util.Collection<java.lang.String> ignores)
    • 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,
                                  javax.ws.rs.core.MediaType mediaType)
        Specified by:
        isReadable in interface javax.ws.rs.ext.MessageBodyReader<T>
      • isWriteable

        public boolean isWriteable​(java.lang.Class<?> type,
                                   java.lang.reflect.Type genericType,
                                   java.lang.annotation.Annotation[] annotations,
                                   javax.ws.rs.core.MediaType mediaType)
        Specified by:
        isWriteable in interface javax.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,
                            javax.ws.rs.core.MediaType mediaType)
        Specified by:
        getSize in interface javax.ws.rs.ext.MessageBodyWriter<T>
      • readFrom

        public T readFrom​(java.lang.Class<T> type,
                          java.lang.reflect.Type genericType,
                          java.lang.annotation.Annotation[] annotations,
                          javax.ws.rs.core.MediaType mediaType,
                          javax.ws.rs.core.MultivaluedMap<java.lang.String,​java.lang.String> httpHeaders,
                          java.io.InputStream entityStream)
                   throws javax.ws.rs.WebApplicationException,
                          java.io.IOException
        Specified by:
        readFrom in interface javax.ws.rs.ext.MessageBodyReader<T>
        Throws:
        javax.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,
                            javax.ws.rs.core.MediaType mediaType,
                            javax.ws.rs.core.MultivaluedMap<java.lang.String,​java.lang.Object> httpHeaders,
                            java.io.OutputStream entityStream)
                     throws javax.ws.rs.WebApplicationException
        Specified by:
        writeTo in interface javax.ws.rs.ext.MessageBodyWriter<T>
        Throws:
        javax.ws.rs.WebApplicationException
      • createJsonb

        protected javax.json.bind.Jsonb createJsonb()
      • getJsonb

        protected javax.json.bind.Jsonb getJsonb​(java.lang.Class<?> type)
      • initThrowNoContentExceptionOnEmptyStreams

        private boolean initThrowNoContentExceptionOnEmptyStreams()
      • doRead

        private java.lang.Object doRead​(javax.json.bind.Jsonb jsonb,
                                        java.lang.reflect.Type t,
                                        java.io.InputStream stream)
      • doReadWithNoContentException

        private java.lang.Object doReadWithNoContentException​(javax.json.bind.Jsonb jsonb,
                                                              java.lang.reflect.Type t,
                                                              java.io.InputStream stream)
                                                       throws javax.ws.rs.core.NoContentException
        Throws:
        javax.ws.rs.core.NoContentException
      • logger

        private java.util.logging.Logger logger()
      • close

        public void close()
                   throws java.lang.Exception
        Specified by:
        close in interface java.lang.AutoCloseable
        Throws:
        java.lang.Exception