com.fasterxml.jackson.databind.type
Class TypeBase

java.lang.Object
  extended by com.fasterxml.jackson.core.type.ResolvedType
      extended by com.fasterxml.jackson.databind.JavaType
          extended by com.fasterxml.jackson.databind.type.TypeBase
All Implemented Interfaces:
JsonSerializable, Serializable
Direct Known Subclasses:
ArrayType, CollectionLikeType, MapLikeType, SimpleType

public abstract class TypeBase
extends JavaType
implements JsonSerializable

See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.fasterxml.jackson.databind.JavaType
_class, _hashCode, _typeHandler, _valueHandler
 
Constructor Summary
protected TypeBase(Class<?> raw, int hash, Object valueHandler, Object typeHandler)
          Main constructor to use by extending classes.
 
Method Summary
protected static StringBuilder _classSignature(Class<?> cls, StringBuilder sb, boolean trailingSemicolon)
           
protected abstract  String buildCanonicalName()
           
abstract  StringBuilder getErasedSignature(StringBuilder sb)
          Method for accessing signature without generic type information, in form compatible with all versions of JVM, and specifically used for type descriptions when generating byte code.
abstract  StringBuilder getGenericSignature(StringBuilder sb)
           
<T> T
getTypeHandler()
          Method for accessing type handler associated with this type, if any
<T> T
getValueHandler()
          Method for accessing value handler associated with this type, if any
 void serialize(JsonGenerator jgen, SerializerProvider provider)
          Serialization method called when no additional type information is to be included in serialization.
 void serializeWithType(JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)
          Serialization method called when additional type information is expected to be included in serialization, for deserialization to use.
 String toCanonical()
           
 
Methods inherited from class com.fasterxml.jackson.databind.JavaType
_assertSubclass, _narrow, _widen, containedType, containedTypeCount, containedTypeName, equals, forcedNarrowBy, getContentType, getErasedSignature, getGenericSignature, getKeyType, getRawClass, hasGenericTypes, hashCode, hasRawClass, isAbstract, isArrayType, isCollectionLikeType, isConcrete, isContainerType, isEnumType, isFinal, isInterface, isMapLikeType, isPrimitive, isThrowable, narrowBy, narrowContentsBy, toString, widenBy, widenContentsBy, withContentTypeHandler, withContentValueHandler, withTypeHandler, withValueHandler
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TypeBase

protected TypeBase(Class<?> raw,
                   int hash,
                   Object valueHandler,
                   Object typeHandler)
Main constructor to use by extending classes.

Method Detail

toCanonical

public String toCanonical()
Specified by:
toCanonical in class ResolvedType

buildCanonicalName

protected abstract String buildCanonicalName()

getGenericSignature

public abstract StringBuilder getGenericSignature(StringBuilder sb)
Specified by:
getGenericSignature in class JavaType
Parameters:
sb - StringBuilder to append signature to
Returns:
StringBuilder that was passed in; returned to allow call chaining

getErasedSignature

public abstract StringBuilder getErasedSignature(StringBuilder sb)
Description copied from class: JavaType
Method for accessing signature without generic type information, in form compatible with all versions of JVM, and specifically used for type descriptions when generating byte code.

Specified by:
getErasedSignature in class JavaType
Parameters:
sb - StringBuilder to append signature to
Returns:
StringBuilder that was passed in; returned to allow call chaining

getValueHandler

public <T> T getValueHandler()
Description copied from class: JavaType
Method for accessing value handler associated with this type, if any

Overrides:
getValueHandler in class JavaType

getTypeHandler

public <T> T getTypeHandler()
Description copied from class: JavaType
Method for accessing type handler associated with this type, if any

Overrides:
getTypeHandler in class JavaType

serializeWithType

public void serializeWithType(JsonGenerator jgen,
                              SerializerProvider provider,
                              TypeSerializer typeSer)
                       throws IOException,
                              JsonProcessingException
Description copied from interface: JsonSerializable
Serialization method called when additional type information is expected to be included in serialization, for deserialization to use.

Usually implementation consists of a call to one of methods in TypeSerializer (such as TypeSerializer.writeTypePrefixForObject(Object, JsonGenerator)) followed by serialization of contents, followed by another call to TypeSerializer (such as TypeSerializer.writeTypeSuffixForObject(Object, JsonGenerator)). Exact methods to call in TypeSerializer depend on shape of JSON Object used (Array, Object or scalar like String/Number/Boolean).

Note that some types (most notably, "natural" types: String, Integer, Double and Boolean) never include type information.

Specified by:
serializeWithType in interface JsonSerializable
Throws:
IOException
JsonProcessingException

serialize

public void serialize(JsonGenerator jgen,
                      SerializerProvider provider)
               throws IOException,
                      JsonProcessingException
Description copied from interface: JsonSerializable
Serialization method called when no additional type information is to be included in serialization.

Specified by:
serialize in interface JsonSerializable
Throws:
IOException
JsonProcessingException

_classSignature

protected static StringBuilder _classSignature(Class<?> cls,
                                               StringBuilder sb,
                                               boolean trailingSemicolon)
Parameters:
trailingSemicolon - Whether to add trailing semicolon for non-primitive (reference) types or not


Copyright © 2012 FasterXML. All Rights Reserved.