com.fasterxml.jackson.databind.deser.impl

## Class CreatorCollector.StdTypeConstructor

- java.lang.Object
- - com.fasterxml.jackson.databind.introspect.Annotated
  - - com.fasterxml.jackson.databind.introspect.AnnotatedMember
    - - com.fasterxml.jackson.databind.introspect.AnnotatedWithParams
      - - com.fasterxml.jackson.databind.deser.impl.CreatorCollector.StdTypeConstructor

- All Implemented Interfaces:
    java.io.Serializable
  Enclosing class:
    CreatorCollector

      protected static final class CreatorCollector.StdTypeConstructor
      extends AnnotatedWithParams
      implements java.io.Serializable

  Replacement for default constructor to use for a small set of "well-known" types.

  Note: replaces earlier `Vanilla` `ValueInstantiator` implementation

  Since:
    2.8.1 (replacing earlier `Vanilla` instantiator
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `TYPE_ARRAY_LIST`
    `static int` | `TYPE_HASH_MAP`
    `static int` | `TYPE_LINKED_HASH_MAP`

    - ### Fields inherited from class com.fasterxml.jackson.databind.introspect.AnnotatedWithParams

      `_paramAnnotations`

    - ### Fields inherited from class com.fasterxml.jackson.databind.introspect.AnnotatedMember

      `_annotations, _typeContext`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CreatorCollector.StdTypeConstructor(AnnotatedWithParams base, int t)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected java.lang.Object` | `_construct()`
    `java.lang.Object` | `call()` Method that can be used to (try to) call this object without arguments.
    `java.lang.Object` | `call(java.lang.Object[] args)` Method that can be used to (try to) call this object with specified arguments.
    `java.lang.Object` | `call1(java.lang.Object arg)` Method that can be used to (try to) call this object with single arguments.
    `boolean` | `equals(java.lang.Object o)`
    `java.lang.reflect.AnnotatedElement` | `getAnnotated()` Method that can be used to find actual JDK element that this instance represents.
    `java.lang.Class<?>` | `getDeclaringClass()` Actual physical class in which this memmber was declared.
    `java.lang.reflect.Type` | `getGenericParameterType(int index)` Deprecated.
    `java.lang.reflect.Member` | `getMember()`
    `protected int` | `getModifiers()`
    `java.lang.String` | `getName()`
    `int` | `getParameterCount()`
    `JavaType` | `getParameterType(int index)`
    `java.lang.Class<?>` | `getRawParameterType(int index)`
    `java.lang.Class<?>` | `getRawType()` "Raw" type (type-erased class) of the annotated element; definition of what exactly this means depends on sub-class.
    `JavaType` | `getType()` Full generic type of the annotated element; definition of what exactly this means depends on sub-class.
    `java.lang.Object` | `getValue(java.lang.Object pojo)` Optional method that can be used to access the value of this member on given object, if this is a supported operation for member type.
    `int` | `hashCode()`
    `void` | `setValue(java.lang.Object pojo, java.lang.Object value)` Optional method that can be used to assign value of this member on given object, if this is a supported operation for member type.
    `java.lang.String` | `toString()`
    `static AnnotatedWithParams` | `tryToOptimize(AnnotatedWithParams src)`
    `Annotated` | `withAnnotations(AnnotationMap fallback)` Fluent factory method that will construct a new instance that uses specified instance annotations instead of currently configured ones.

    - ### Methods inherited from class com.fasterxml.jackson.databind.introspect.AnnotatedWithParams

      `addOrOverrideParam, getAnnotationCount, getParameter, getParameterAnnotations, replaceParameterAnnotations`

    - ### Methods inherited from class com.fasterxml.jackson.databind.introspect.AnnotatedMember

      `addIfNotPresent, addOrOverride, annotations, fixAccess, fixAccess, getAllAnnotations, getAnnotation, getTypeContext, hasAnnotation, hasOneOf`

    - ### Methods inherited from class com.fasterxml.jackson.databind.introspect.Annotated

      `getGenericType, getType, isPublic, withFallBackAnnotationsFrom`

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

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

- - ### Field Detail

    - #### TYPE_ARRAY_LIST

          public static final int TYPE_ARRAY_LIST

      See Also:
        Constant Field Values

    - #### TYPE_HASH_MAP

          public static final int TYPE_HASH_MAP

      See Also:
        Constant Field Values

    - #### TYPE_LINKED_HASH_MAP

          public static final int TYPE_LINKED_HASH_MAP

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### CreatorCollector.StdTypeConstructor

          public CreatorCollector.StdTypeConstructor(AnnotatedWithParams base,
                                             int t)

  - ### Method Detail

    - #### tryToOptimize

          public static AnnotatedWithParams tryToOptimize(AnnotatedWithParams src)

    - #### _construct

          protected final java.lang.Object _construct()

    - #### getParameterCount

          public int getParameterCount()

      Specified by:
        `getParameterCount` in class `AnnotatedWithParams`

    - #### getRawParameterType

          public java.lang.Class<?> getRawParameterType(int index)

      Specified by:
        `getRawParameterType` in class `AnnotatedWithParams`

    - #### getParameterType

          public JavaType getParameterType(int index)

      Specified by:
        `getParameterType` in class `AnnotatedWithParams`

    - #### getGenericParameterType

          @Deprecated
          public java.lang.reflect.Type getGenericParameterType(int index)

      Deprecated.
      Specified by:
        `getGenericParameterType` in class `AnnotatedWithParams`

    - #### call

          public java.lang.Object call()
                                throws java.lang.Exception

      Description copied from class: `AnnotatedWithParams`
      Method that can be used to (try to) call this object without arguments. This may succeed or fail, depending on expected number of arguments: caller needs to take care to pass correct number. Exceptions are thrown directly from actual low-level call.

      Note: only works for constructors and static methods.

      Specified by:
        `call` in class `AnnotatedWithParams`
      Throws:
        `java.lang.Exception`

    - #### call

          public java.lang.Object call(java.lang.Object[] args)
                                throws java.lang.Exception

      Description copied from class: `AnnotatedWithParams`
      Method that can be used to (try to) call this object with specified arguments. This may succeed or fail, depending on expected number of arguments: caller needs to take care to pass correct number. Exceptions are thrown directly from actual low-level call.

      Note: only works for constructors and static methods.

      Specified by:
        `call` in class `AnnotatedWithParams`
      Throws:
        `java.lang.Exception`

    - #### call1

          public java.lang.Object call1(java.lang.Object arg)
                                 throws java.lang.Exception

      Description copied from class: `AnnotatedWithParams`
      Method that can be used to (try to) call this object with single arguments. This may succeed or fail, depending on expected number of arguments: caller needs to take care to pass correct number. Exceptions are thrown directly from actual low-level call.

      Note: only works for constructors and static methods.

      Specified by:
        `call1` in class `AnnotatedWithParams`
      Throws:
        `java.lang.Exception`

    - #### getDeclaringClass

          public java.lang.Class<?> getDeclaringClass()

      Description copied from class: `AnnotatedMember`
      Actual physical class in which this memmber was declared.
      Specified by:
        `getDeclaringClass` in class `AnnotatedMember`

    - #### getMember

          public java.lang.reflect.Member getMember()

      Specified by:
        `getMember` in class `AnnotatedMember`

    - #### setValue

          public void setValue(java.lang.Object pojo,
                      java.lang.Object value)
                        throws java.lang.UnsupportedOperationException,
                               java.lang.IllegalArgumentException

      Description copied from class: `AnnotatedMember`
      Optional method that can be used to assign value of this member on given object, if this is a supported operation for member type.

      This is implemented for fields and single-argument member methods; but not for constructor parameters or other types of methods (like static methods)

      Specified by:
        `setValue` in class `AnnotatedMember`
      Throws:
        `java.lang.UnsupportedOperationException`
        `java.lang.IllegalArgumentException`

    - #### getValue

          public java.lang.Object getValue(java.lang.Object pojo)
                                    throws java.lang.UnsupportedOperationException,
                                           java.lang.IllegalArgumentException

      Description copied from class: `AnnotatedMember`
      Optional method that can be used to access the value of this member on given object, if this is a supported operation for member type.

      This is implemented for fields and no-argument member methods; but not for constructor parameters or other types of methods (like static methods)

      Specified by:
        `getValue` in class `AnnotatedMember`
      Throws:
        `java.lang.UnsupportedOperationException`
        `java.lang.IllegalArgumentException`

    - #### withAnnotations

          public Annotated withAnnotations(AnnotationMap fallback)

      Description copied from class: `Annotated`
      Fluent factory method that will construct a new instance that uses specified instance annotations instead of currently configured ones.
      Specified by:
        `withAnnotations` in class `Annotated`

    - #### getAnnotated

          public java.lang.reflect.AnnotatedElement getAnnotated()

      Description copied from class: `Annotated`
      Method that can be used to find actual JDK element that this instance represents. It is non-null, except for method/constructor parameters which do not have a JDK counterpart.
      Specified by:
        `getAnnotated` in class `Annotated`

    - #### getModifiers

          protected int getModifiers()

      Specified by:
        `getModifiers` in class `Annotated`

    - #### getName

          public java.lang.String getName()

      Specified by:
        `getName` in class `Annotated`

    - #### getType

          public JavaType getType()

      Description copied from class: `Annotated`
      Full generic type of the annotated element; definition of what exactly this means depends on sub-class.
      Specified by:
        `getType` in class `Annotated`

    - #### getRawType

          public java.lang.Class<?> getRawType()

      Description copied from class: `Annotated`
      "Raw" type (type-erased class) of the annotated element; definition of what exactly this means depends on sub-class.
      Specified by:
        `getRawType` in class `Annotated`

    - #### equals

          public boolean equals(java.lang.Object o)

      Specified by:
        `equals` in class `Annotated`

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in class `Annotated`

    - #### toString

          public java.lang.String toString()

      Specified by:
        `toString` in class `Annotated`