com.fasterxml.jackson.databind.ser.impl
Class PropertySerializerMap

java.lang.Object
  extended by com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap

public abstract class PropertySerializerMap
extends Object

Helper container used for resolving serializers for dynamic (possibly but not necessarily polymorphic) properties: properties whose type is not forced to use dynamic (declared) type and that are not final. If so, serializer to use can only be established once actual value type is known. Since this happens a lot unless static typing is forced (or types are final) this implementation is optimized for efficiency. Instances are immutable; new instances are created with factory methods: this is important to ensure correct multi-threaded access.


Nested Class Summary
static class PropertySerializerMap.SerializerAndMapResult
          Value class used for returning tuple that has both serializer that was retrieved and new map instance
 
Constructor Summary
PropertySerializerMap()
           
 
Method Summary
static PropertySerializerMap emptyMap()
           
 PropertySerializerMap.SerializerAndMapResult findAndAddSerializer(Class<?> type, SerializerProvider provider, BeanProperty property)
          Method called if initial lookup fails; will both find serializer and construct new map instance if warranted, and return both
 PropertySerializerMap.SerializerAndMapResult findAndAddSerializer(JavaType type, SerializerProvider provider, BeanProperty property)
           
abstract  PropertySerializerMap newWith(Class<?> type, JsonSerializer<Object> serializer)
           
abstract  JsonSerializer<Object> serializerFor(Class<?> type)
          Main lookup method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PropertySerializerMap

public PropertySerializerMap()
Method Detail

serializerFor

public abstract JsonSerializer<Object> serializerFor(Class<?> type)
Main lookup method. Takes a "raw" type since usage is always from place where parameterization is fixed such that there can not be type-parametric variations.


findAndAddSerializer

public final PropertySerializerMap.SerializerAndMapResult findAndAddSerializer(Class<?> type,
                                                                               SerializerProvider provider,
                                                                               BeanProperty property)
                                                                        throws JsonMappingException
Method called if initial lookup fails; will both find serializer and construct new map instance if warranted, and return both

Throws:
JsonMappingException

findAndAddSerializer

public final PropertySerializerMap.SerializerAndMapResult findAndAddSerializer(JavaType type,
                                                                               SerializerProvider provider,
                                                                               BeanProperty property)
                                                                        throws JsonMappingException
Throws:
JsonMappingException

newWith

public abstract PropertySerializerMap newWith(Class<?> type,
                                              JsonSerializer<Object> serializer)

emptyMap

public static PropertySerializerMap emptyMap()


Copyright © 2012 fasterxml.com. All Rights Reserved.