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

org.codehaus.jackson.map.deser.impl

## Class PropertyBasedCreator

- java.lang.Object
- - org.codehaus.jackson.map.deser.impl.PropertyBasedCreator

-     public final class PropertyBasedCreator
      extends Object

  Object that is used to collect arguments for non-default creator (non-default-constructor, or argument-taking factory method) before creator can be called. Since ordering of JSON properties is not guaranteed, this may require buffering of values other than ones being passed to creator.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Object[]` | `_defaultValues` If some property values must always have a non-null value (like primitive types do), this array contains such default values.
    `protected HashMap<String,SettableBeanProperty>` | `_properties` Map that contains property objects for either constructor or factory method (whichever one is null: one property for each parameter for that one), keyed by logical property name
    `protected SettableBeanProperty[]` | `_propertiesWithInjectables` Array that contains properties that expect value to inject, if any; null if no injectable values are expected.
    `protected int` | `_propertyCount` Number of properties: usually same as size of `_properties`, but not necessarily, when we have unnamed injectable properties.
    `protected ValueInstantiator` | `_valueInstantiator`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PropertyBasedCreator(ValueInstantiator valueInstantiator)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `assignDeserializer(SettableBeanProperty prop, JsonDeserializer<Object> deser)`
    `Object` | `build(PropertyValueBuffer buffer)`
    `SettableBeanProperty` | `findCreatorProperty(String name)`
    `Collection<SettableBeanProperty>` | `getCreatorProperties()`
    `PropertyValueBuffer` | `startBuilding(JsonParser jp, DeserializationContext ctxt)` Method called when starting to build a bean instance.

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

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

- - ### Field Detail

    - #### _valueInstantiator

          protected final ValueInstantiator _valueInstantiator

    - #### _properties

          protected final HashMap<String,SettableBeanProperty> _properties

      Map that contains property objects for either constructor or factory method (whichever one is null: one property for each parameter for that one), keyed by logical property name

    - #### _propertyCount

          protected final int _propertyCount

      Number of properties: usually same as size of `_properties`, but not necessarily, when we have unnamed injectable properties.

    - #### _defaultValues

          protected Object[] _defaultValues

      If some property values must always have a non-null value (like primitive types do), this array contains such default values.

    - #### _propertiesWithInjectables

          protected final SettableBeanProperty[] _propertiesWithInjectables

      Array that contains properties that expect value to inject, if any; null if no injectable values are expected.
      Since:
        1.9

  - ### Constructor Detail

    - #### PropertyBasedCreator

          public PropertyBasedCreator(ValueInstantiator valueInstantiator)

  - ### Method Detail

    - #### getCreatorProperties

          public Collection<SettableBeanProperty> getCreatorProperties()

    - #### findCreatorProperty

          public SettableBeanProperty findCreatorProperty(String name)

    - #### assignDeserializer

          public void assignDeserializer(SettableBeanProperty prop,
                                JsonDeserializer<Object> deser)

    - #### startBuilding

          public PropertyValueBuffer startBuilding(JsonParser jp,
                                          DeserializationContext ctxt)

      Method called when starting to build a bean instance.

    - #### build

          public Object build(PropertyValueBuffer buffer)
                       throws IOException

      Throws:
        `IOException`