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

org.codehaus.jackson.map.type

## Class CollectionLikeType

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

- All Implemented Interfaces:
    JsonSerializable, JsonSerializableWithType
  Direct Known Subclasses:
    CollectionType

      public class CollectionLikeType
      extends TypeBase

  Type that represents things that act similar to `Collection`; but may or may not be instances of that interface. This specifically allows framework to check for configuration and annotation settings used for Map types, and pass these to custom handlers that may be more familiar with actual type.
  Since:
    1.8

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected JavaType` | `_elementType` Type of elements in collection

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

      `_class, _hashCode, _typeHandler, _valueHandler`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `CollectionLikeType(Class<?> collT, JavaType elemT)` Deprecated.
    `protected` | `CollectionLikeType(Class<?> collT, JavaType elemT, Object valueHandler, Object typeHandler)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected JavaType` | `_narrow(Class<?> subclass)`
    `protected String` | `buildCanonicalName()`
    `static CollectionLikeType` | `construct(Class<?> rawType, JavaType elemT)`
    `JavaType` | `containedType(int index)` Method for accessing definitions of contained ("child") types.
    `int` | `containedTypeCount()` Method for checking how many contained types this type has.
    `String` | `containedTypeName(int index)` Not sure if we should count on this, but type names for core interfaces use "E" for element type
    `boolean` | `equals(Object o)`
    `JavaType` | `getContentType()` Method for accessing content type of this type, if type has such a thing: simple types do not, structured types do (like arrays, Collections and Maps)
    `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.
    `StringBuilder` | `getGenericSignature(StringBuilder sb)`
    `boolean` | `isCollectionLikeType()`
    `boolean` | `isContainerType()`
    `boolean` | `isTrueCollectionType()` Method that can be used for checking whether this type is a "real" Collection type; meaning whether it represents a parameterized subtype of `Collection` or just something that acts like one.
    `JavaType` | `narrowContentsBy(Class<?> contentClass)`
    `String` | `toString()`
    `JavaType` | `widenContentsBy(Class<?> contentClass)`
    `CollectionLikeType` | `withContentTypeHandler(Object h)` "Copy method" that will construct a new instance that is identical to this instance, except that its content type will have specified type handler assigned.
    `CollectionLikeType` | `withContentValueHandler(Object h)`
    `CollectionLikeType` | `withTypeHandler(Object h)` "Copy method" that will construct a new instance that is identical to this instance, except that it will have specified type handler assigned.
    `CollectionLikeType` | `withValueHandler(Object h)`

    - ### Methods inherited from class org.codehaus.jackson.map.type.TypeBase

      `_classSignature, getTypeHandler, getValueHandler, serialize, serializeWithType, toCanonical`

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

      `_assertSubclass, _widen, forcedNarrowBy, getErasedSignature, getGenericSignature, getKeyType, getRawClass, hasGenericTypes, hashCode, hasRawClass, isAbstract, isArrayType, isConcrete, isEnumType, isFinal, isInterface, isMapLikeType, isPrimitive, isThrowable, narrowBy, setValueHandler, widenBy`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### _elementType

          protected final JavaType _elementType

      Type of elements in collection

  - ### Constructor Detail

    - #### CollectionLikeType

          @Deprecated
          protected CollectionLikeType(Class<?> collT,
                                       JavaType elemT)

      Deprecated.

    - #### CollectionLikeType

          protected CollectionLikeType(Class<?> collT,
                            JavaType elemT,
                            Object valueHandler,
                            Object typeHandler)

  - ### Method Detail

    - #### _narrow

          protected JavaType _narrow(Class<?> subclass)

      Specified by:
        `_narrow` in class `JavaType`

    - #### narrowContentsBy

          public JavaType narrowContentsBy(Class<?> contentClass)

      Specified by:
        `narrowContentsBy` in class `JavaType`

    - #### widenContentsBy

          public JavaType widenContentsBy(Class<?> contentClass)

      Specified by:
        `widenContentsBy` in class `JavaType`

    - #### construct

          public static CollectionLikeType construct(Class<?> rawType,
                                     JavaType elemT)

    - #### withTypeHandler

          public CollectionLikeType withTypeHandler(Object h)

      Description copied from class: `JavaType`
      "Copy method" that will construct a new instance that is identical to this instance, except that it will have specified type handler assigned.
      Specified by:
        `withTypeHandler` in class `JavaType`
      Returns:
        Newly created type instance

    - #### withContentTypeHandler

          public CollectionLikeType withContentTypeHandler(Object h)

      Description copied from class: `JavaType`
      "Copy method" that will construct a new instance that is identical to this instance, except that its content type will have specified type handler assigned.
      Specified by:
        `withContentTypeHandler` in class `JavaType`
      Returns:
        Newly created type instance

    - #### withValueHandler

          public CollectionLikeType withValueHandler(Object h)

      Overrides:
        `withValueHandler` in class `JavaType`

    - #### withContentValueHandler

          public CollectionLikeType withContentValueHandler(Object h)

      Overrides:
        `withContentValueHandler` in class `JavaType`

    - #### isContainerType

          public boolean isContainerType()

      Specified by:
        `isContainerType` in class `JavaType`
      Returns:
        True if type represented is a container type; this includes array, Map and Collection types.

    - #### isCollectionLikeType

          public boolean isCollectionLikeType()

      Overrides:
        `isCollectionLikeType` in class `JavaType`
      Returns:
        True if type is either true `Collection` type, or something similar (meaning it has at least one type parameter, which describes type of contents)

    - #### getContentType

          public JavaType getContentType()

      Description copied from class: `JavaType`
      Method for accessing content type of this type, if type has such a thing: simple types do not, structured types do (like arrays, Collections and Maps)
      Overrides:
        `getContentType` in class `JavaType`

    - #### containedTypeCount

          public int containedTypeCount()

      Description copied from class: `JavaType`
      Method for checking how many contained types this type has. Contained types are usually generic types, so that generic Maps have 2 contained types.
      Overrides:
        `containedTypeCount` in class `JavaType`

    - #### containedType

          public JavaType containedType(int index)

      Description copied from class: `JavaType`
      Method for accessing definitions of contained ("child") types.
      Overrides:
        `containedType` in class `JavaType`
      Parameters:
        `index` - Index of contained type to return
      Returns:
        Contained type at index, or null if no such type exists (no exception thrown)

    - #### containedTypeName

          public String containedTypeName(int index)

      Not sure if we should count on this, but type names for core interfaces use "E" for element type
      Overrides:
        `containedTypeName` in class `JavaType`
      Parameters:
        `index` - Index of contained type to return
      Returns:
        Contained type at index, or null if no such type exists (no exception thrown)

    - #### getErasedSignature

          public 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 `TypeBase`
      Parameters:
        `sb` - StringBuilder to append signature to
      Returns:
        StringBuilder that was passed in; returned to allow call chaining

    - #### getGenericSignature

          public StringBuilder getGenericSignature(StringBuilder sb)

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

    - #### buildCanonicalName

          protected String buildCanonicalName()

      Specified by:
        `buildCanonicalName` in class `TypeBase`

    - #### isTrueCollectionType

          public boolean isTrueCollectionType()

      Method that can be used for checking whether this type is a "real" Collection type; meaning whether it represents a parameterized subtype of `Collection` or just something that acts like one.
      Since:
        1.8

    - #### equals

          public boolean equals(Object o)

      Specified by:
        `equals` in class `JavaType`

    - #### toString

          public String toString()

      Specified by:
        `toString` in class `JavaType`