CreatorCollector
Date: 2016-12-04

com.fasterxml.jackson.databind.deser.impl

## Class CreatorCollector

- java.lang.Object
- - com.fasterxml.jackson.databind.deser.impl.CreatorCollector

-     public class CreatorCollector
      extends java.lang.Object

  Container class for storing information on creators (based on annotations, visibility), to be able to build actual instantiator later on.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `CreatorCollector.StdTypeConstructor` Replacement for default constructor to use for a small set of "well-known" types.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected SettableBeanProperty[]` | `_arrayDelegateArgs`
    `protected BeanDescription` | `_beanDesc`
    `protected boolean` | `_canFixAccess`
    `protected AnnotatedWithParams[]` | `_creators` Set of creators we have collected so far
    `protected SettableBeanProperty[]` | `_delegateArgs`
    `protected int` | `_explicitCreators` Bitmask of creators that were explicitly marked as creators; false for auto-detected (ones included base on naming and/or visibility, not annotation)
    `protected boolean` | `_forceAccess`
    `protected boolean` | `_hasNonDefaultCreator`
    `protected AnnotatedParameter` | `_incompleteParameter`
    `protected SettableBeanProperty[]` | `_propertyBasedArgs`
    `protected static int` | `C_ARRAY_DELEGATE`
    `protected static int` | `C_BOOLEAN`
    `protected static int` | `C_DEFAULT`
    `protected static int` | `C_DELEGATE`
    `protected static int` | `C_DOUBLE`
    `protected static int` | `C_INT`
    `protected static int` | `C_LONG`
    `protected static int` | `C_PROPS`
    `protected static int` | `C_STRING`
    `protected static java.lang.String[]` | `TYPE_DESCS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CreatorCollector(BeanDescription beanDesc, MapperConfig<?> config)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `_isEnumValueOf(AnnotatedWithParams creator)` Helper method for recognizing `Enum.valueOf()` factory method
    `void` | `addBooleanCreator(AnnotatedWithParams creator)` Deprecated.
    `void` | `addBooleanCreator(AnnotatedWithParams creator, boolean explicit)`
    `void` | `addDelegatingCreator(AnnotatedWithParams creator, boolean explicit, SettableBeanProperty[] injectables)`
    `void` | `addDelegatingCreator(AnnotatedWithParams creator, CreatorProperty[] injectables)` Deprecated.
    `void` | `addDoubleCreator(AnnotatedWithParams creator)` Deprecated.
    `void` | `addDoubleCreator(AnnotatedWithParams creator, boolean explicit)`
    `void` | `addIncompeteParameter(AnnotatedParameter parameter)`
    `void` | `addIntCreator(AnnotatedWithParams creator)` Deprecated.
    `void` | `addIntCreator(AnnotatedWithParams creator, boolean explicit)`
    `void` | `addLongCreator(AnnotatedWithParams creator)` Deprecated.
    `void` | `addLongCreator(AnnotatedWithParams creator, boolean explicit)`
    `void` | `addPropertyCreator(AnnotatedWithParams creator, boolean explicit, SettableBeanProperty[] properties)`
    `void` | `addPropertyCreator(AnnotatedWithParams creator, CreatorProperty[] properties)` Deprecated.
    `void` | `addStringCreator(AnnotatedWithParams creator)` Deprecated.
    `void` | `addStringCreator(AnnotatedWithParams creator, boolean explicit)`
    `ValueInstantiator` | `constructValueInstantiator(DeserializationConfig config)`
    `boolean` | `hasDefaultCreator()`
    `boolean` | `hasDelegatingCreator()`
    `boolean` | `hasPropertyBasedCreator()`
    `void` | `setDefaultCreator(AnnotatedWithParams creator)` Method called to indicate the default creator: no-arguments constructor or factory method that is called to instantiate a value before populating it with data.
    `protected void` | `verifyNonDup(AnnotatedWithParams newOne, int typeIndex, boolean explicit)`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### C_DEFAULT

          protected static final int C_DEFAULT

      See Also:
        Constant Field Values

    - #### C_STRING

          protected static final int C_STRING

      See Also:
        Constant Field Values

    - #### C_INT

          protected static final int C_INT

      See Also:
        Constant Field Values

    - #### C_LONG

          protected static final int C_LONG

      See Also:
        Constant Field Values

    - #### C_DOUBLE

          protected static final int C_DOUBLE

      See Also:
        Constant Field Values

    - #### C_BOOLEAN

          protected static final int C_BOOLEAN

      See Also:
        Constant Field Values

    - #### C_DELEGATE

          protected static final int C_DELEGATE

      See Also:
        Constant Field Values

    - #### C_PROPS

          protected static final int C_PROPS

      See Also:
        Constant Field Values

    - #### C_ARRAY_DELEGATE

          protected static final int C_ARRAY_DELEGATE

      See Also:
        Constant Field Values

    - #### TYPE_DESCS

          protected static final java.lang.String[] TYPE_DESCS

    - #### _beanDesc

          protected final BeanDescription _beanDesc

    - #### _canFixAccess

          protected final boolean _canFixAccess

    - #### _forceAccess

          protected final boolean _forceAccess

      Since:
        2.7

    - #### _creators

          protected final AnnotatedWithParams[] _creators

      Set of creators we have collected so far
      Since:
        2.5

    - #### _explicitCreators

          protected int _explicitCreators

      Bitmask of creators that were explicitly marked as creators; false for auto-detected (ones included base on naming and/or visibility, not annotation)
      Since:
        2.5

    - #### _hasNonDefaultCreator

          protected boolean _hasNonDefaultCreator

    - #### _delegateArgs

          protected SettableBeanProperty[] _delegateArgs

    - #### _arrayDelegateArgs

          protected SettableBeanProperty[] _arrayDelegateArgs

    - #### _propertyBasedArgs

          protected SettableBeanProperty[] _propertyBasedArgs

    - #### _incompleteParameter

          protected AnnotatedParameter _incompleteParameter

  - ### Constructor Detail

    - #### CreatorCollector

          public CreatorCollector(BeanDescription beanDesc,
                          MapperConfig<?> config)

  - ### Method Detail

    - #### constructValueInstantiator

          public ValueInstantiator constructValueInstantiator(DeserializationConfig config)

    - #### setDefaultCreator

          public void setDefaultCreator(AnnotatedWithParams creator)

      Method called to indicate the default creator: no-arguments constructor or factory method that is called to instantiate a value before populating it with data. Default creator is only used if no other creators are indicated.
      Parameters:
        `creator` - Creator method; no-arguments constructor or static factory method.

    - #### addStringCreator

          public void addStringCreator(AnnotatedWithParams creator,
                              boolean explicit)

    - #### addIntCreator

          public void addIntCreator(AnnotatedWithParams creator,
                           boolean explicit)

    - #### addLongCreator

          public void addLongCreator(AnnotatedWithParams creator,
                            boolean explicit)

    - #### addDoubleCreator

          public void addDoubleCreator(AnnotatedWithParams creator,
                              boolean explicit)

    - #### addBooleanCreator

          public void addBooleanCreator(AnnotatedWithParams creator,
                               boolean explicit)

    - #### addDelegatingCreator

          public void addDelegatingCreator(AnnotatedWithParams creator,
                                  boolean explicit,
                                  SettableBeanProperty[] injectables)

    - #### addPropertyCreator

          public void addPropertyCreator(AnnotatedWithParams creator,
                                boolean explicit,
                                SettableBeanProperty[] properties)

    - #### addIncompeteParameter

          public void addIncompeteParameter(AnnotatedParameter parameter)

    - #### addStringCreator

          @Deprecated
          public void addStringCreator(AnnotatedWithParams creator)

      Deprecated.

    - #### addIntCreator

          @Deprecated
          public void addIntCreator(AnnotatedWithParams creator)

      Deprecated.

    - #### addLongCreator

          @Deprecated
          public void addLongCreator(AnnotatedWithParams creator)

      Deprecated.

    - #### addDoubleCreator

          @Deprecated
          public void addDoubleCreator(AnnotatedWithParams creator)

      Deprecated.

    - #### addBooleanCreator

          @Deprecated
          public void addBooleanCreator(AnnotatedWithParams creator)

      Deprecated.

    - #### addDelegatingCreator

          @Deprecated
          public void addDelegatingCreator(AnnotatedWithParams creator,
                                             CreatorProperty[] injectables)

      Deprecated.

    - #### addPropertyCreator

          @Deprecated
          public void addPropertyCreator(AnnotatedWithParams creator,
                                           CreatorProperty[] properties)

      Deprecated.

    - #### hasDefaultCreator

          public boolean hasDefaultCreator()

      Since:
        2.1

    - #### hasDelegatingCreator

          public boolean hasDelegatingCreator()

      Since:
        2.6

    - #### hasPropertyBasedCreator

          public boolean hasPropertyBasedCreator()

      Since:
        2.6

    - #### verifyNonDup

          protected void verifyNonDup(AnnotatedWithParams newOne,
                          int typeIndex,
                          boolean explicit)

    - #### _isEnumValueOf

          protected boolean _isEnumValueOf(AnnotatedWithParams creator)

      Helper method for recognizing `Enum.valueOf()` factory method
      Since:
        2.8.1