java.lang.Object
edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.ser.BeanSerializerBuilder

public class BeanSerializerBuilder extends Object
Builder class used for aggregating deserialization information about a POJO, in order to build a JsonSerializer for serializing intances. Main reason for using separate builder class is that this makes it easier to make actual serializer class fully immutable.
  • Field Details

    • _beanDesc

      protected final BeanDescription _beanDesc
    • _config

      protected SerializationConfig _config
    • _properties

      protected List<BeanPropertyWriter> _properties
      Bean properties, in order of serialization
    • _filteredProperties

      protected BeanPropertyWriter[] _filteredProperties
      Optional array of filtered property writers; if null, no view-based filtering is performed.
    • _anyGetter

      protected AnyGetterWriter _anyGetter
      Writer used for "any getter" properties, if any.
    • _filterId

      protected Object _filterId
      Id of the property filter to use for POJO, if any.
    • _typeId

      protected AnnotatedMember _typeId
      Property that is used for type id (and not serialized as regular property)
    • _objectIdWriter

      protected ObjectIdWriter _objectIdWriter
      Object responsible for serializing Object Ids for the handled type, if any.
  • Constructor Details

    • BeanSerializerBuilder

      public BeanSerializerBuilder(BeanDescription beanDesc)
    • BeanSerializerBuilder

      protected BeanSerializerBuilder(BeanSerializerBuilder src)
      Copy-constructor that may be used for sub-classing
  • Method Details

    • setConfig

      protected void setConfig(SerializationConfig config)
      Initialization method called right after construction, to specify configuration to use.

      Note: ideally should be passed in constructor, but for backwards compatibility, needed to add a setter instead

      Since:
      2.1
    • setProperties

      public void setProperties(List<BeanPropertyWriter> properties)
    • setFilteredProperties

      public void setFilteredProperties(BeanPropertyWriter[] properties)
      Parameters:
      properties - Number and order of properties here MUST match that of "regular" properties set earlier using setProperties(List); if not, an IllegalArgumentException will be thrown
    • setAnyGetter

      public void setAnyGetter(AnyGetterWriter anyGetter)
    • setFilterId

      public void setFilterId(Object filterId)
    • setTypeId

      public void setTypeId(AnnotatedMember idProp)
    • setObjectIdWriter

      public void setObjectIdWriter(ObjectIdWriter w)
    • getClassInfo

      public AnnotatedClass getClassInfo()
    • getBeanDescription

      public BeanDescription getBeanDescription()
    • getProperties

      public List<BeanPropertyWriter> getProperties()
    • hasProperties

      public boolean hasProperties()
    • getFilteredProperties

      public BeanPropertyWriter[] getFilteredProperties()
    • getAnyGetter

      public AnyGetterWriter getAnyGetter()
    • getFilterId

      public Object getFilterId()
    • getTypeId

      public AnnotatedMember getTypeId()
    • getObjectIdWriter

      public ObjectIdWriter getObjectIdWriter()
    • build

      public JsonSerializer<?> build()
      Method called to create BeanSerializer instance with all accumulated information. Will construct a serializer if we have enough information, or return null if not.
    • createDummy

      public BeanSerializer createDummy()
      Factory method for constructing an "empty" serializer; one that outputs no properties (but handles JSON objects properly, including type information)