|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.jackson.map.SerializerProvider
public abstract class SerializerProvider
Abstract class that defines API used by ObjectMapper
and
JsonSerializer
s to obtain serializers capable of serializing
instances of specific types.
Note about usage: for JsonSerializer
instances, only accessors
for locating other (sub-)serializers are to be used. ObjectMapper
,
on the other hand, is to initialize recursive serialization process by
calling serializeValue(org.codehaus.jackson.map.SerializationConfig, org.codehaus.jackson.JsonGenerator, java.lang.Object, org.codehaus.jackson.map.SerializerFactory)
.
Field Summary | |
---|---|
protected SerializationConfig |
_config
|
protected Class<?> |
_serializationView
|
Constructor Summary | |
---|---|
protected |
SerializerProvider(SerializationConfig config)
|
Method Summary | |
---|---|
abstract int |
cachedSerializersCount()
Method that can be used to determine how many serializers this provider is caching currently (if it does caching: default implementation does) Exact count depends on what kind of serializers get cached; default implementation caches all serializers, including ones that are eagerly constructed (for optimal access speed) |
abstract void |
defaultSerializeDateValue(Date date,
JsonGenerator jgen)
Method that will handle serialization of Date(-like) values, using SerializationConfig settings to determine expected serialization
behavior. |
abstract void |
defaultSerializeDateValue(long timestamp,
JsonGenerator jgen)
Method that will handle serialization of Date(-like) values, using SerializationConfig settings to determine expected serialization
behavior. |
void |
defaultSerializeField(String fieldName,
Object value,
JsonGenerator jgen)
Convenience method that will serialize given field with specified value. |
void |
defaultSerializeValue(Object value,
JsonGenerator jgen)
Convenience method that will serialize given value (which can be null) using standard serializer locating functionality. |
abstract JsonSerializer<Object> |
findValueSerializer(Class<?> type)
Method called to get hold of a serializer for a value of given type; or if no such serializer can be found, a default handler (which may do a best-effort generic serialization or just simply throw an exception when invoked). |
abstract void |
flushCachedSerializers()
Method that will drop all serializers currently cached by this provider. |
abstract JsonSchema |
generateJsonSchema(Class<?> type,
SerializationConfig config,
SerializerFactory jsf)
Generate Json-schema for given type. |
SerializationConfig |
getConfig()
|
abstract JsonSerializer<Object> |
getKeySerializer()
Method called to get the serializer to use for serializing non-null Map keys. |
abstract JsonSerializer<Object> |
getNullKeySerializer()
Method called to get the serializer to use for serializing Map keys that are nulls: this is needed since Json does not allow any non-String value as key, including null. |
abstract JsonSerializer<Object> |
getNullValueSerializer()
Method called to get the serializer to use for serializing values (root level, Array members or List field values) that are nulls. |
Class<?> |
getSerializationView()
Convenience method, equivalent to calling SerializationConfig.getSerializationView() . |
abstract JsonSerializer<Object> |
getUnknownTypeSerializer(Class<?> unknownType)
Method called to get the serializer to use if provider can not determine an actual type-specific serializer to use; typically when none of SerializerFactory
instances are able to construct a serializer. |
abstract boolean |
hasSerializerFor(SerializationConfig cfg,
Class<?> cls,
SerializerFactory jsf)
Method that can be called to see if this serializer provider can find a serializer for an instance of given class. |
boolean |
isEnabled(SerializationConfig.Feature f)
|
abstract void |
serializeValue(SerializationConfig cfg,
JsonGenerator jgen,
Object value,
SerializerFactory jsf)
The method to be called by ObjectMapper to
execute recursive serialization, using serializers that
this provider has access to. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final SerializationConfig _config
protected final Class<?> _serializationView
Constructor Detail |
---|
protected SerializerProvider(SerializationConfig config)
Method Detail |
---|
public abstract void serializeValue(SerializationConfig cfg, JsonGenerator jgen, Object value, SerializerFactory jsf) throws IOException, JsonGenerationException
ObjectMapper
to
execute recursive serialization, using serializers that
this provider has access to.
jsf
- Underlying factory object used for creating serializers
as needed
IOException
JsonGenerationException
public abstract JsonSchema generateJsonSchema(Class<?> type, SerializationConfig config, SerializerFactory jsf) throws JsonMappingException
type
- The type for which to generate schema
JsonMappingException
public abstract boolean hasSerializerFor(SerializationConfig cfg, Class<?> cls, SerializerFactory jsf)
Note that no Exceptions are thrown, including unchecked ones: implementations are to swallow exceptions if necessary.
public final SerializationConfig getConfig()
public final boolean isEnabled(SerializationConfig.Feature f)
public final Class<?> getSerializationView()
SerializationConfig.getSerializationView()
.
public abstract JsonSerializer<Object> findValueSerializer(Class<?> type) throws JsonMappingException
Note: this method is only called for non-null values; not for keys or null values. For these, check out other accessor methods.
JsonMappingException
- if there are fatal problems with
accessing suitable serializer; including that of not
finding any serializerpublic abstract JsonSerializer<Object> getKeySerializer()
findValueSerializer(java.lang.Class>)
method is because actual write
method must be different (@link JsonGenerator#writeFieldName};
but also since behavior for some key types may differ.
Note that the serializer itself can be called with instances of any Java object, but not nulls.
public abstract JsonSerializer<Object> getNullKeySerializer()
Typically, returned serializer will either throw an exception, or use an empty String; but other behaviors are possible.
public abstract JsonSerializer<Object> getNullValueSerializer()
Typically returned serializer just writes out Json literal null value.
public abstract JsonSerializer<Object> getUnknownTypeSerializer(Class<?> unknownType)
SerializerFactory
instances are able to construct a serializer.
Typically, returned serializer will throw an exception,
although alternatively ToStringSerializer
could
be returned as well.
unknownType
- Type for which no serializer is foundpublic final void defaultSerializeValue(Object value, JsonGenerator jgen) throws IOException, JsonProcessingException
defaultSerializeField(java.lang.String, java.lang.Object, org.codehaus.jackson.JsonGenerator)
instead.
IOException
JsonProcessingException
public final void defaultSerializeField(String fieldName, Object value, JsonGenerator jgen) throws IOException, JsonProcessingException
IOException
JsonProcessingException
public abstract void defaultSerializeDateValue(long timestamp, JsonGenerator jgen) throws IOException, JsonProcessingException
SerializationConfig
settings to determine expected serialization
behavior.
Note: date here means "full" date, that is, date AND time, as per
Java convention (and not date-only values like in SQL)
IOException
JsonProcessingException
public abstract void defaultSerializeDateValue(Date date, JsonGenerator jgen) throws IOException, JsonProcessingException
SerializationConfig
settings to determine expected serialization
behavior.
Note: date here means "full" date, that is, date AND time, as per
Java convention (and not date-only values like in SQL)
IOException
JsonProcessingException
public abstract int cachedSerializersCount()
The main use case for this method is to allow conditional flushing of serializer cache, if certain number of entries is reached.
public abstract void flushCachedSerializers()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |