Class PersistentCollectionSerializer
- java.lang.Object
-
- com.fasterxml.jackson.databind.JsonSerializer<T>
-
- com.fasterxml.jackson.databind.ser.std.StdSerializer<T>
-
- com.fasterxml.jackson.databind.ser.ContainerSerializer<Object>
-
- com.fasterxml.jackson.datatype.hibernate4.PersistentCollectionSerializer
-
- All Implemented Interfaces:
com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable
,com.fasterxml.jackson.databind.jsonschema.SchemaAware
,com.fasterxml.jackson.databind.ser.ContextualSerializer
,com.fasterxml.jackson.databind.ser.ResolvableSerializer
,Serializable
public class PersistentCollectionSerializer extends com.fasterxml.jackson.databind.ser.ContainerSerializer<Object> implements com.fasterxml.jackson.databind.ser.ContextualSerializer, com.fasterxml.jackson.databind.ser.ResolvableSerializer
Wrapper serializer used to handle aspects of lazy loading that can be used for Hibernate collection datatypes; which includes bothCollection
andMap
types (unlike in JDK).- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected int
_features
Hibernate-module features set, if any.protected com.fasterxml.jackson.databind.JavaType
_originalType
Type for which underlying serializer was created.protected com.fasterxml.jackson.databind.JsonSerializer<Object>
_serializer
Serializer that does actual value serialization when value is available (either already or with forced access).protected org.hibernate.SessionFactory
_sessionFactory
-
Constructor Summary
Constructors Modifier Constructor Description PersistentCollectionSerializer(com.fasterxml.jackson.databind.JavaType containerType, com.fasterxml.jackson.databind.JsonSerializer<?> serializer, int features, org.hibernate.SessionFactory sessionFactory)
protected
PersistentCollectionSerializer(PersistentCollectionSerializer base, com.fasterxml.jackson.databind.JsonSerializer<?> serializer)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected com.fasterxml.jackson.databind.ser.ContainerSerializer<?>
_containerSerializer()
protected PersistentCollectionSerializer
_withSerializer(com.fasterxml.jackson.databind.JsonSerializer<?> ser)
protected com.fasterxml.jackson.databind.ser.ContainerSerializer<?>
_withValueTypeSerializer(com.fasterxml.jackson.databind.jsontype.TypeSerializer vts)
void
acceptJsonFormatVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType typeHint)
com.fasterxml.jackson.databind.JsonSerializer<?>
createContextual(com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.BeanProperty property)
We need to resolve actual serializer once we know the context; specifically must know type of property being serialized.protected Object
findLazyValue(org.hibernate.collection.spi.PersistentCollection coll)
com.fasterxml.jackson.databind.JsonSerializer<?>
getContentSerializer()
com.fasterxml.jackson.databind.JavaType
getContentType()
boolean
hasSingleElement(Object value)
boolean
isEmpty(com.fasterxml.jackson.databind.SerializerProvider provider, Object value)
boolean
isEmpty(Object value)
Deprecated.boolean
isUnwrappingSerializer()
void
resolve(com.fasterxml.jackson.databind.SerializerProvider provider)
void
serialize(Object value, com.fasterxml.jackson.core.JsonGenerator jgen, com.fasterxml.jackson.databind.SerializerProvider provider)
void
serializeWithType(Object value, com.fasterxml.jackson.core.JsonGenerator jgen, com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer)
PersistentCollectionSerializer
unwrappingSerializer(com.fasterxml.jackson.databind.util.NameTransformer unwrapper)
protected boolean
usesLazyLoading(com.fasterxml.jackson.databind.BeanProperty property)
Method called to see whether given property indicates it uses lazy resolution of reference contained.boolean
usesObjectId()
-
Methods inherited from class com.fasterxml.jackson.databind.ser.ContainerSerializer
hasContentTypeAnnotation, withValueTypeSerializer
-
Methods inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer
_neitherNull, _nonEmpty, createSchemaNode, createSchemaNode, findAnnotatedContentSerializer, findContextualConvertingSerializer, findConvertingContentSerializer, findFormatFeature, findFormatOverrides, findIncludeOverrides, findPropertyFilter, getSchema, getSchema, handledType, isDefaultSerializer, visitArrayFormat, visitArrayFormat, visitFloatFormat, visitIntFormat, visitIntFormat, visitStringFormat, visitStringFormat, wrapAndThrow, wrapAndThrow
-
-
-
-
Field Detail
-
_originalType
protected final com.fasterxml.jackson.databind.JavaType _originalType
Type for which underlying serializer was created.- Since:
- 2.7
-
_features
protected final int _features
Hibernate-module features set, if any.
-
_serializer
protected final com.fasterxml.jackson.databind.JsonSerializer<Object> _serializer
Serializer that does actual value serialization when value is available (either already or with forced access).
-
_sessionFactory
protected final org.hibernate.SessionFactory _sessionFactory
-
-
Constructor Detail
-
PersistentCollectionSerializer
public PersistentCollectionSerializer(com.fasterxml.jackson.databind.JavaType containerType, com.fasterxml.jackson.databind.JsonSerializer<?> serializer, int features, org.hibernate.SessionFactory sessionFactory)
-
PersistentCollectionSerializer
protected PersistentCollectionSerializer(PersistentCollectionSerializer base, com.fasterxml.jackson.databind.JsonSerializer<?> serializer)
- Since:
- 2.7
-
-
Method Detail
-
unwrappingSerializer
public PersistentCollectionSerializer unwrappingSerializer(com.fasterxml.jackson.databind.util.NameTransformer unwrapper)
- Overrides:
unwrappingSerializer
in classcom.fasterxml.jackson.databind.JsonSerializer<Object>
-
_withSerializer
protected PersistentCollectionSerializer _withSerializer(com.fasterxml.jackson.databind.JsonSerializer<?> ser)
-
_withValueTypeSerializer
protected com.fasterxml.jackson.databind.ser.ContainerSerializer<?> _withValueTypeSerializer(com.fasterxml.jackson.databind.jsontype.TypeSerializer vts)
- Specified by:
_withValueTypeSerializer
in classcom.fasterxml.jackson.databind.ser.ContainerSerializer<Object>
-
resolve
public void resolve(com.fasterxml.jackson.databind.SerializerProvider provider) throws com.fasterxml.jackson.databind.JsonMappingException
- Specified by:
resolve
in interfacecom.fasterxml.jackson.databind.ser.ResolvableSerializer
- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
createContextual
public com.fasterxml.jackson.databind.JsonSerializer<?> createContextual(com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.BeanProperty property) throws com.fasterxml.jackson.databind.JsonMappingException
We need to resolve actual serializer once we know the context; specifically must know type of property being serialized.- Specified by:
createContextual
in interfacecom.fasterxml.jackson.databind.ser.ContextualSerializer
- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
isEmpty
@Deprecated public boolean isEmpty(Object value)
Deprecated.- Overrides:
isEmpty
in classcom.fasterxml.jackson.databind.JsonSerializer<Object>
-
isEmpty
public boolean isEmpty(com.fasterxml.jackson.databind.SerializerProvider provider, Object value)
- Overrides:
isEmpty
in classcom.fasterxml.jackson.databind.JsonSerializer<Object>
-
isUnwrappingSerializer
public boolean isUnwrappingSerializer()
- Overrides:
isUnwrappingSerializer
in classcom.fasterxml.jackson.databind.JsonSerializer<Object>
-
usesObjectId
public boolean usesObjectId()
- Overrides:
usesObjectId
in classcom.fasterxml.jackson.databind.JsonSerializer<Object>
-
acceptJsonFormatVisitor
public void acceptJsonFormatVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType typeHint) throws com.fasterxml.jackson.databind.JsonMappingException
- Specified by:
acceptJsonFormatVisitor
in interfacecom.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable
- Overrides:
acceptJsonFormatVisitor
in classcom.fasterxml.jackson.databind.ser.std.StdSerializer<Object>
- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
getContentType
public com.fasterxml.jackson.databind.JavaType getContentType()
- Specified by:
getContentType
in classcom.fasterxml.jackson.databind.ser.ContainerSerializer<Object>
-
getContentSerializer
public com.fasterxml.jackson.databind.JsonSerializer<?> getContentSerializer()
- Specified by:
getContentSerializer
in classcom.fasterxml.jackson.databind.ser.ContainerSerializer<Object>
-
hasSingleElement
public boolean hasSingleElement(Object value)
- Specified by:
hasSingleElement
in classcom.fasterxml.jackson.databind.ser.ContainerSerializer<Object>
-
serialize
public void serialize(Object value, com.fasterxml.jackson.core.JsonGenerator jgen, com.fasterxml.jackson.databind.SerializerProvider provider) throws IOException
- Specified by:
serialize
in classcom.fasterxml.jackson.databind.ser.std.StdSerializer<Object>
- Throws:
IOException
-
serializeWithType
public void serializeWithType(Object value, com.fasterxml.jackson.core.JsonGenerator jgen, com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer) throws IOException
- Overrides:
serializeWithType
in classcom.fasterxml.jackson.databind.JsonSerializer<Object>
- Throws:
IOException
-
_containerSerializer
protected com.fasterxml.jackson.databind.ser.ContainerSerializer<?> _containerSerializer()
-
findLazyValue
protected Object findLazyValue(org.hibernate.collection.spi.PersistentCollection coll)
-
usesLazyLoading
protected boolean usesLazyLoading(com.fasterxml.jackson.databind.BeanProperty property)
Method called to see whether given property indicates it uses lazy resolution of reference contained.
-
-