@Provider @Consumes(value="*/*") @Produces(value="*/*") public class JacksonSmileProvider extends ProviderBase<JacksonSmileProvider,com.fasterxml.jackson.databind.ObjectMapper,SmileEndpointConfig,SmileMapperConfigurator>
MessageBodyReader
,
MessageBodyWriter
) needed for binding
Smile ("application/x-jackson-smile") content to and from Java Objects ("POJO"s).
Actual data binding functionality is implemented by ObjectMapper
:
mapper to use can be configured in multiple ways:
ProviderBase.setMapper(MAPPER)
Provider
that returns ObjectMapper
s.
Note that the default mapper instance will be automatically created if
one of explicit configuration methods (like ProviderBase.configure(com.fasterxml.jackson.jaxrs.cfg.JaxRSFeature, boolean)
)
is called: if so, Provider-based introspection is NOT used, but the
resulting Mapper is used as configured.
Note that there is also a sub-class -- (JacksonJaxbSmileProvider
) -- that
is configured by default to use both Jackson and JAXB annotations for configuration
(base class when used as-is defaults to using just Jackson annotations)
Modifier and Type | Field and Description |
---|---|
protected javax.ws.rs.ext.Providers |
_providers
Injectable context object used to locate configured
instance of
ObjectMapper to use for actual
serialization. |
static Annotations[] |
BASIC_ANNOTATIONS
Default annotation sets to use, if not explicitly defined during
construction: only Jackson annotations are used for the base
class.
|
_cfgCheckCanDeserialize, _cfgCheckCanSerialize, _cfgCustomUntouchables, _defaultReadView, _defaultWriteView, _jaxRSFeatures, _mapperConfig, _noContentExceptionRef, _readers, _unreadableClasses, _untouchables, _unwritableClasses, _writers, DEFAULT_UNREADABLES, DEFAULT_UNTOUCHABLES, DEFAULT_UNWRITABLES, HEADER_CONTENT_TYPE_OPTIONS, JAXRS_FEATURE_DEFAULTS
Constructor and Description |
---|
JacksonSmileProvider()
Default constructor, usually used when provider is automatically
configured to be used with JAX-RS implementation.
|
JacksonSmileProvider(Annotations... annotationsToUse) |
JacksonSmileProvider(com.fasterxml.jackson.databind.ObjectMapper mapper) |
JacksonSmileProvider(com.fasterxml.jackson.databind.ObjectMapper mapper,
Annotations[] annotationsToUse)
Constructor to use when a custom mapper (usually components
like serializer/deserializer factories that have been configured)
is to be used.
|
Modifier and Type | Method and Description |
---|---|
protected SmileEndpointConfig |
_configForReading(com.fasterxml.jackson.databind.ObjectReader reader,
Annotation[] annotations) |
protected SmileEndpointConfig |
_configForWriting(com.fasterxml.jackson.databind.ObjectWriter writer,
Annotation[] annotations) |
protected com.fasterxml.jackson.databind.ObjectMapper |
_locateMapperViaProvider(Class<?> type,
javax.ws.rs.core.MediaType mediaType)
Method called to locate
ObjectMapper to use for serialization
and deserialization. |
protected boolean |
hasMatchingMediaType(javax.ws.rs.core.MediaType mediaType)
Helper method used to check whether given media type
is Smile type or sub type.
|
com.fasterxml.jackson.core.Version |
version()
Method that will return version information stored in and read from jar
that contains this class.
|
_addSuperTypes, _configForReading, _configForWriting, _containedIn, _createGenerator, _createNoContentException, _createParser, _endpointForReading, _endpointForWriting, _findCustomUntouchable, _isIgnorableForReading, _isIgnorableForWriting, _isSpecialReadable, _modifyHeaders, addUntouchable, checkCanDeserialize, checkCanSerialize, configure, configure, configure, configure, configure, disable, disable, disable, disable, disable, disable, enable, enable, enable, enable, enable, enable, findEncoding, findSuperTypes, findSuperTypes, getSize, hasMatchingMediaTypeForReading, hasMatchingMediaTypeForWriting, isEnabled, isReadable, isWriteable, locateMapper, readFrom, removeUntouchable, setAnnotationsToUse, setDefaultReadView, setDefaultView, setDefaultWriteView, setMapper, writeTo
public static final Annotations[] BASIC_ANNOTATIONS
@Context protected javax.ws.rs.ext.Providers _providers
ObjectMapper
to use for actual
serialization.public JacksonSmileProvider()
public JacksonSmileProvider(Annotations... annotationsToUse)
annotationsToUse
- Annotation set(s) to use for configuring
data bindingpublic JacksonSmileProvider(com.fasterxml.jackson.databind.ObjectMapper mapper)
public JacksonSmileProvider(com.fasterxml.jackson.databind.ObjectMapper mapper, Annotations[] annotationsToUse)
annotationsToUse
- Sets of annotations (Jackson, JAXB) that provider should
supportpublic com.fasterxml.jackson.core.Version version()
protected boolean hasMatchingMediaType(javax.ws.rs.core.MediaType mediaType)
MediaType.getSubtype()
returns
"smile" or something ending with "+smile".hasMatchingMediaType
in class ProviderBase<JacksonSmileProvider,com.fasterxml.jackson.databind.ObjectMapper,SmileEndpointConfig,SmileMapperConfigurator>
protected com.fasterxml.jackson.databind.ObjectMapper _locateMapperViaProvider(Class<?> type, javax.ws.rs.core.MediaType mediaType)
ObjectMapper
to use for serialization
and deserialization. If an instance has been explicitly defined by
ProviderBase.setMapper(MAPPER)
(or non-null instance passed in constructor), that
will be used.
If not, will try to locate it using standard JAX-RS
ContextResolver
mechanism, if it has been properly configured
to access it (by JAX-RS runtime).
Finally, if no mapper is found, will return a default unconfigured
ObjectMapper
instance (one constructed with default constructor
and not modified in any way)_locateMapperViaProvider
in class ProviderBase<JacksonSmileProvider,com.fasterxml.jackson.databind.ObjectMapper,SmileEndpointConfig,SmileMapperConfigurator>
type
- Class of object being serialized or deserialized;
not checked at this point, since it is assumed that unprocessable
classes have been already weeded out,
but will be passed to ContextResolver
as is.mediaType
- Declared media type for the instance to process:
not used by this method,
but will be passed to ContextResolver
as is.protected SmileEndpointConfig _configForReading(com.fasterxml.jackson.databind.ObjectReader reader, Annotation[] annotations)
_configForReading
in class ProviderBase<JacksonSmileProvider,com.fasterxml.jackson.databind.ObjectMapper,SmileEndpointConfig,SmileMapperConfigurator>
protected SmileEndpointConfig _configForWriting(com.fasterxml.jackson.databind.ObjectWriter writer, Annotation[] annotations)
_configForWriting
in class ProviderBase<JacksonSmileProvider,com.fasterxml.jackson.databind.ObjectMapper,SmileEndpointConfig,SmileMapperConfigurator>
Copyright © 2016 FasterXML. All rights reserved.