Class 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
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonSerializer

        com.fasterxml.jackson.databind.JsonSerializer.None
    • 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
      void acceptJsonFormatVisitor​(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()  
      void handleCyclicReference​(com.fasterxml.jackson.core.JsonGenerator jgen, com.fasterxml.jackson.databind.SerializerProvider provider)  
      java.lang.Class<T> handledType()  
      boolean hasCyclicReference​(java.lang.Object value)
      Check for the cycle in object serialization stack.
      boolean isEmpty​(com.fasterxml.jackson.databind.SerializerProvider provider, T value)  
      boolean isEmpty​(T value)  
      boolean isUnwrappingSerializer()  
      void notifyEndSerialization()
      Removes the last added object from the stack.
      void notifyStartSerialization​(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)  
      void resolve​(com.fasterxml.jackson.databind.SerializerProvider provider)  
      void serialize​(T value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider serializers)  
      void serializeWithType​(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)  
      boolean usesObjectId()  
      com.fasterxml.jackson.databind.JsonSerializer<?> withFilterId​(java.lang.Object filterId)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • CircularLoopHandlingSerializer

        public CircularLoopHandlingSerializer​(com.fasterxml.jackson.databind.ser.std.BeanSerializerBase delegate,
                                              boolean failOnCircularReferences)
    • 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:
        serialize in class com.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:
        createContextual in interface com.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:
        resolve in interface com.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:
        unwrappingSerializer in class com.fasterxml.jackson.databind.JsonSerializer<T>
      • replaceDelegatee

        public com.fasterxml.jackson.databind.JsonSerializer<T> replaceDelegatee​(com.fasterxml.jackson.databind.JsonSerializer<?> delegatee)
        Overrides:
        replaceDelegatee in class com.fasterxml.jackson.databind.JsonSerializer<T>
      • withFilterId

        public com.fasterxml.jackson.databind.JsonSerializer<?> withFilterId​(java.lang.Object filterId)
        Overrides:
        withFilterId in class com.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:
        serializeWithType in class com.fasterxml.jackson.databind.JsonSerializer<T>
        Throws:
        java.io.IOException
      • handledType

        public java.lang.Class<T> handledType()
        Overrides:
        handledType in class com.fasterxml.jackson.databind.JsonSerializer<T>
      • isEmpty

        public boolean isEmpty​(T value)
        Overrides:
        isEmpty in class com.fasterxml.jackson.databind.JsonSerializer<T>
      • isEmpty

        public boolean isEmpty​(com.fasterxml.jackson.databind.SerializerProvider provider,
                               T value)
        Overrides:
        isEmpty in class com.fasterxml.jackson.databind.JsonSerializer<T>
      • usesObjectId

        public boolean usesObjectId()
        Overrides:
        usesObjectId in class com.fasterxml.jackson.databind.JsonSerializer<T>
      • isUnwrappingSerializer

        public boolean isUnwrappingSerializer()
        Overrides:
        isUnwrappingSerializer in class com.fasterxml.jackson.databind.JsonSerializer<T>
      • getDelegatee

        public com.fasterxml.jackson.databind.JsonSerializer<?> getDelegatee()
        Overrides:
        getDelegatee in class com.fasterxml.jackson.databind.JsonSerializer<T>
      • properties

        public java.util.Iterator<com.fasterxml.jackson.databind.ser.PropertyWriter> properties()
        Overrides:
        properties in class com.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:
        acceptJsonFormatVisitor in interface com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable
        Overrides:
        acceptJsonFormatVisitor in class com.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