com.fasterxml.jackson.databind.ser
Class BeanSerializer

java.lang.Object
  extended by com.fasterxml.jackson.databind.JsonSerializer<T>
      extended by com.fasterxml.jackson.databind.ser.std.StdSerializer<Object>
          extended by com.fasterxml.jackson.databind.ser.std.BeanSerializerBase
              extended by com.fasterxml.jackson.databind.ser.BeanSerializer
All Implemented Interfaces:
SchemaAware, ContextualSerializer, ResolvableSerializer

public class BeanSerializer
extends BeanSerializerBase

Serializer class that can serialize Java objects that map to JSON Object output. Internally handling is mostly dealt with by a sequence of BeanPropertyWriters that will handle access value to serialize and call appropriate serializers to write out JSON.

Implementation note: we will post-process resulting serializer, to figure out actual serializers for final types. This must be done from BeanSerializerBase.resolve(com.fasterxml.jackson.databind.SerializerProvider) method, and NOT from constructor; otherwise we could end up with an infinite loop.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonSerializer
JsonSerializer.None
 
Field Summary
 
Fields inherited from class com.fasterxml.jackson.databind.ser.std.BeanSerializerBase
_anyGetterWriter, _filteredProps, _objectIdWriter, _propertyFilterId, _props, _typeId, NO_PROPS
 
Fields inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer
_handledType
 
Constructor Summary
protected BeanSerializer(BeanSerializerBase src)
          Alternate copy constructor that can be used to construct standard BeanSerializer passing an instance of "compatible enough" source serializer.
protected BeanSerializer(BeanSerializerBase src, ObjectIdWriter objectIdWriter)
           
protected BeanSerializer(BeanSerializerBase src, String[] toIgnore)
           
  BeanSerializer(JavaType type, BeanSerializerBuilder builder, BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties)
           
 
Method Summary
static BeanSerializer createDummy(JavaType forType)
          Method for constructing dummy bean serializer; one that never outputs any properties
 void serialize(Object bean, com.fasterxml.jackson.core.JsonGenerator jgen, SerializerProvider provider)
          Main serialization method that will delegate actual output to configured BeanPropertyWriter instances.
 String toString()
           
 JsonSerializer<Object> unwrappingSerializer(NameTransformer unwrapper)
          Method that will return serializer instance that produces "unwrapped" serialization, if applicable for type being serialized (which is the case for some serializers that produce JSON Objects as output).
protected  BeanSerializer withIgnorals(String[] toIgnore)
          Fluent factory used for creating a new instance with additional set of properties to ignore (from properties this instance otherwise has)
protected  BeanSerializer withObjectIdWriter(ObjectIdWriter objectIdWriter)
          Fluent factory used for creating a new instance with different ObjectIdWriter.
 
Methods inherited from class com.fasterxml.jackson.databind.ser.std.BeanSerializerBase
createContextual, findFilter, getSchema, resolve, serializeFields, serializeFieldsFiltered, serializeWithType, usesObjectId
 
Methods inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer
createObjectNode, createSchemaNode, createSchemaNode, handledType, isDefaultSerializer, wrapAndThrow, wrapAndThrow
 
Methods inherited from class com.fasterxml.jackson.databind.JsonSerializer
isEmpty, isUnwrappingSerializer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BeanSerializer

public BeanSerializer(JavaType type,
                      BeanSerializerBuilder builder,
                      BeanPropertyWriter[] properties,
                      BeanPropertyWriter[] filteredProperties)
Parameters:
builder - Builder object that contains collected information that may be needed for serializer
properties - Property writers used for actual serialization

BeanSerializer

protected BeanSerializer(BeanSerializerBase src)
Alternate copy constructor that can be used to construct standard BeanSerializer passing an instance of "compatible enough" source serializer.


BeanSerializer

protected BeanSerializer(BeanSerializerBase src,
                         ObjectIdWriter objectIdWriter)

BeanSerializer

protected BeanSerializer(BeanSerializerBase src,
                         String[] toIgnore)
Method Detail

createDummy

public static BeanSerializer createDummy(JavaType forType)
Method for constructing dummy bean serializer; one that never outputs any properties


unwrappingSerializer

public JsonSerializer<Object> unwrappingSerializer(NameTransformer unwrapper)
Description copied from class: JsonSerializer
Method that will return serializer instance that produces "unwrapped" serialization, if applicable for type being serialized (which is the case for some serializers that produce JSON Objects as output). If no unwrapped serializer can be constructed, will simply return serializer as-is.

Default implementation just returns serializer as-is, indicating that no unwrapped variant exists

Overrides:
unwrappingSerializer in class JsonSerializer<Object>
Parameters:
unwrapper - Name transformation to use to convert between names of unwrapper properties

withObjectIdWriter

protected BeanSerializer withObjectIdWriter(ObjectIdWriter objectIdWriter)
Description copied from class: BeanSerializerBase
Fluent factory used for creating a new instance with different ObjectIdWriter.

Specified by:
withObjectIdWriter in class BeanSerializerBase

withIgnorals

protected BeanSerializer withIgnorals(String[] toIgnore)
Description copied from class: BeanSerializerBase
Fluent factory used for creating a new instance with additional set of properties to ignore (from properties this instance otherwise has)

Specified by:
withIgnorals in class BeanSerializerBase

serialize

public final void serialize(Object bean,
                            com.fasterxml.jackson.core.JsonGenerator jgen,
                            SerializerProvider provider)
                     throws IOException,
                            com.fasterxml.jackson.core.JsonGenerationException
Main serialization method that will delegate actual output to configured BeanPropertyWriter instances.

Specified by:
serialize in class BeanSerializerBase
Parameters:
bean - Value to serialize; can not be null.
jgen - Generator used to output resulting Json content
provider - Provider that can be used to get serializers for serializing Objects value contains, if any.
Throws:
IOException
com.fasterxml.jackson.core.JsonGenerationException

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2012 fasterxml.com. All Rights Reserved.