TypeBase (Jackson JSON Processor)
Date: 2013-07-14

org.codehaus.jackson.map.type

## Class TypeBase

- java.lang.Object
- - org.codehaus.jackson.type.JavaType
  - - org.codehaus.jackson.map.type.TypeBase

- All Implemented Interfaces:
    JsonSerializable, JsonSerializableWithType
  Direct Known Subclasses:
    ArrayType, CollectionLikeType, MapLikeType, SimpleType

      public abstract class TypeBase
      extends JavaType
      implements JsonSerializableWithType

- - ### Field Summary

    - ### Fields inherited from class org.codehaus.jackson.type.JavaType

      `_class, _hashCode, _typeHandler, _valueHandler`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `TypeBase(Class<?> raw, int hash)` Deprecated.
    `protected` | `TypeBase(Class<?> raw, int hash, Object valueHandler, Object typeHandler)` Main constructor to use by extending classes.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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)`
    `void` | `serializeWithType(JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `String` | `toCanonical()` Method that can be used to serialize type into form from which it can be fully deserialized from at a later point (using `TypeFactory` from mapper package).

    - ### Methods inherited from class org.codehaus.jackson.type.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, setValueHandler, 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

          @Deprecated
          protected TypeBase(Class<?> raw,
                             int hash)

      Deprecated.

    - #### TypeBase

          protected TypeBase(Class<?> raw,
                  int hash,
                  Object valueHandler,
                  Object typeHandler)

      Main constructor to use by extending classes.
      Since:
        1.9

  - ### Method Detail

    - #### toCanonical

          public String toCanonical()

      Description copied from class: `JavaType`
      Method that can be used to serialize type into form from which it can be fully deserialized from at a later point (using `TypeFactory` from mapper package). For simple types this is same as calling `Class.getName()`, but for structured types it may additionally contain type information about contents.
      Specified by:
        `toCanonical` in class `JavaType`

    - #### 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

      Specified by:
        `serializeWithType` in interface `JsonSerializableWithType`
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### serialize

          public void serialize(JsonGenerator jgen,
                       SerializerProvider provider)
                         throws IOException,
                                JsonProcessingException

      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