Class CircularLoopHandlingSerializer<T>
- java.lang.Object
-
- com.fasterxml.jackson.databind.JsonSerializer<T>
-
- com.wavemaker.commons.json.module.CircularLoopHandlingSerializer<T>
-
- All Implemented Interfaces:
com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable,com.fasterxml.jackson.databind.ser.ContextualSerializer,com.fasterxml.jackson.databind.ser.ResolvableSerializer
public class CircularLoopHandlingSerializer<T> extends com.fasterxml.jackson.databind.JsonSerializer<T> implements com.fasterxml.jackson.databind.ser.ResolvableSerializer, com.fasterxml.jackson.databind.ser.ContextualSerializer- Since:
- 3/10/18
-
-
Constructor Summary
Constructors Constructor Description CircularLoopHandlingSerializer(com.fasterxml.jackson.databind.ser.std.BeanSerializerBase delegate, boolean failOnCircularReferences)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidacceptJsonFormatVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType type)com.fasterxml.jackson.databind.JsonSerializer<?>createContextual(com.fasterxml.jackson.databind.SerializerProvider prov, com.fasterxml.jackson.databind.BeanProperty property)com.fasterxml.jackson.databind.JsonSerializer<?>getDelegatee()voidhandleCyclicReference(com.fasterxml.jackson.core.JsonGenerator jgen, com.fasterxml.jackson.databind.SerializerProvider provider)java.lang.Class<T>handledType()booleanhasCyclicReference(java.lang.Object value)Check for the cycle in object serialization stack.booleanisEmpty(com.fasterxml.jackson.databind.SerializerProvider provider, T value)booleanisEmpty(T value)booleanisUnwrappingSerializer()voidnotifyEndSerialization()Removes the last added object from the stack.voidnotifyStartSerialization(java.lang.Object value)java.util.Iterator<com.fasterxml.jackson.databind.ser.PropertyWriter>properties()com.fasterxml.jackson.databind.JsonSerializer<T>replaceDelegatee(com.fasterxml.jackson.databind.JsonSerializer<?> delegatee)voidresolve(com.fasterxml.jackson.databind.SerializerProvider provider)voidserialize(T value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider serializers)voidserializeWithType(T value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider serializers, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer)com.fasterxml.jackson.databind.JsonSerializer<T>unwrappingSerializer(com.fasterxml.jackson.databind.util.NameTransformer unwrapper)booleanusesObjectId()com.fasterxml.jackson.databind.JsonSerializer<?>withFilterId(java.lang.Object filterId)
-
-
-
Method Detail
-
serialize
public void serialize(T value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider serializers) throws java.io.IOException
- Specified by:
serializein classcom.fasterxml.jackson.databind.JsonSerializer<T>- Throws:
java.io.IOException
-
createContextual
public com.fasterxml.jackson.databind.JsonSerializer<?> createContextual(com.fasterxml.jackson.databind.SerializerProvider prov, com.fasterxml.jackson.databind.BeanProperty property) throws com.fasterxml.jackson.databind.JsonMappingException- Specified by:
createContextualin interfacecom.fasterxml.jackson.databind.ser.ContextualSerializer- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
resolve
public void resolve(com.fasterxml.jackson.databind.SerializerProvider provider) throws com.fasterxml.jackson.databind.JsonMappingException- Specified by:
resolvein interfacecom.fasterxml.jackson.databind.ser.ResolvableSerializer- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
unwrappingSerializer
public com.fasterxml.jackson.databind.JsonSerializer<T> unwrappingSerializer(com.fasterxml.jackson.databind.util.NameTransformer unwrapper)
- Overrides:
unwrappingSerializerin classcom.fasterxml.jackson.databind.JsonSerializer<T>
-
replaceDelegatee
public com.fasterxml.jackson.databind.JsonSerializer<T> replaceDelegatee(com.fasterxml.jackson.databind.JsonSerializer<?> delegatee)
- Overrides:
replaceDelegateein classcom.fasterxml.jackson.databind.JsonSerializer<T>
-
withFilterId
public com.fasterxml.jackson.databind.JsonSerializer<?> withFilterId(java.lang.Object filterId)
- Overrides:
withFilterIdin classcom.fasterxml.jackson.databind.JsonSerializer<T>
-
serializeWithType
public void serializeWithType(T value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider serializers, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer) throws java.io.IOException
- Overrides:
serializeWithTypein classcom.fasterxml.jackson.databind.JsonSerializer<T>- Throws:
java.io.IOException
-
handledType
public java.lang.Class<T> handledType()
- Overrides:
handledTypein classcom.fasterxml.jackson.databind.JsonSerializer<T>
-
isEmpty
public boolean isEmpty(T value)
- Overrides:
isEmptyin classcom.fasterxml.jackson.databind.JsonSerializer<T>
-
isEmpty
public boolean isEmpty(com.fasterxml.jackson.databind.SerializerProvider provider, T value)- Overrides:
isEmptyin classcom.fasterxml.jackson.databind.JsonSerializer<T>
-
usesObjectId
public boolean usesObjectId()
- Overrides:
usesObjectIdin classcom.fasterxml.jackson.databind.JsonSerializer<T>
-
isUnwrappingSerializer
public boolean isUnwrappingSerializer()
- Overrides:
isUnwrappingSerializerin classcom.fasterxml.jackson.databind.JsonSerializer<T>
-
getDelegatee
public com.fasterxml.jackson.databind.JsonSerializer<?> getDelegatee()
- Overrides:
getDelegateein classcom.fasterxml.jackson.databind.JsonSerializer<T>
-
properties
public java.util.Iterator<com.fasterxml.jackson.databind.ser.PropertyWriter> properties()
- Overrides:
propertiesin classcom.fasterxml.jackson.databind.JsonSerializer<T>
-
acceptJsonFormatVisitor
public void acceptJsonFormatVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType type) throws com.fasterxml.jackson.databind.JsonMappingException- Specified by:
acceptJsonFormatVisitorin interfacecom.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable- Overrides:
acceptJsonFormatVisitorin classcom.fasterxml.jackson.databind.JsonSerializer<T>- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
notifyStartSerialization
public void notifyStartSerialization(java.lang.Object value)
-
notifyEndSerialization
public void notifyEndSerialization()
Removes the last added object from the stack.
-
hasCyclicReference
public boolean hasCyclicReference(java.lang.Object value)
Check for the cycle in object serialization stack. It ignores Self references as they are handled separately.- Parameters:
value- to be check for cycle.- Returns:
- true when value in serialization reference stack and not as top value else false
-
handleCyclicReference
public void handleCyclicReference(com.fasterxml.jackson.core.JsonGenerator jgen, com.fasterxml.jackson.databind.SerializerProvider provider) throws java.io.IOException- Throws:
java.io.IOException
-
-