com.fasterxml.jackson.databind.deser.impl

## Class PropertyBasedCreator

- java.lang.Object
- - com.fasterxml.jackson.databind.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 SettableBeanProperty[]` | `_allProperties` 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 `_propertyLookup`, but not necessarily, when we have unnamed injectable properties.
    `protected HashMap<String,SettableBeanProperty>` | `_propertyLookup` 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 ValueInstantiator` | `_valueInstantiator` Helper object that knows how to actually construct the instance by invoking creator method with buffered arguments.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `PropertyBasedCreator(DeserializationContext ctxt, ValueInstantiator valueInstantiator, SettableBeanProperty[] creatorProps, boolean caseInsensitive, boolean addAliases)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `build(DeserializationContext ctxt, PropertyValueBuffer buffer)`
    `static PropertyBasedCreator` | `construct(DeserializationContext ctxt, ValueInstantiator valueInstantiator, SettableBeanProperty[] srcCreatorProps)` Deprecated.
    `static PropertyBasedCreator` | `construct(DeserializationContext ctxt, ValueInstantiator valueInstantiator, SettableBeanProperty[] srcCreatorProps, BeanPropertyMap allProperties)` Factory method used for building actual instances to be used with POJOS: resolves deserializers, checks for "null values".
    `static PropertyBasedCreator` | `construct(DeserializationContext ctxt, ValueInstantiator valueInstantiator, SettableBeanProperty[] srcCreatorProps, boolean caseInsensitive)` Factory method used for building actual instances to be used with types OTHER than POJOs.
    `SettableBeanProperty` | `findCreatorProperty(int propertyIndex)`
    `SettableBeanProperty` | `findCreatorProperty(String name)`
    `Collection<SettableBeanProperty>` | `properties()`
    `PropertyValueBuffer` | `startBuilding(JsonParser p, DeserializationContext ctxt, ObjectIdReader oir)` 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

    - #### _propertyCount

          protected final int _propertyCount

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

    - #### _valueInstantiator

          protected final ValueInstantiator _valueInstantiator

      Helper object that knows how to actually construct the instance by invoking creator method with buffered arguments.

    - #### _propertyLookup

          protected final HashMap<String,SettableBeanProperty> _propertyLookup

      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

    - #### _allProperties

          protected final SettableBeanProperty[] _allProperties

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

  - ### Constructor Detail

    - #### PropertyBasedCreator

          protected PropertyBasedCreator(DeserializationContext ctxt,
                                         ValueInstantiator valueInstantiator,
                                         SettableBeanProperty[] creatorProps,
                                         boolean caseInsensitive,
                                         boolean addAliases)

  - ### Method Detail

    - #### construct

          public static PropertyBasedCreator construct(DeserializationContext ctxt,
                                                       ValueInstantiator valueInstantiator,
                                                       SettableBeanProperty[] srcCreatorProps,
                                                       BeanPropertyMap allProperties)
                                                throws JsonMappingException

      Factory method used for building actual instances to be used with POJOS: resolves deserializers, checks for "null values".
      Throws:
        `JsonMappingException`
      Since:
        2.9

    - #### construct

          public static PropertyBasedCreator construct(DeserializationContext ctxt,
                                                       ValueInstantiator valueInstantiator,
                                                       SettableBeanProperty[] srcCreatorProps,
                                                       boolean caseInsensitive)
                                                throws JsonMappingException

      Factory method used for building actual instances to be used with types OTHER than POJOs. resolves deserializers and checks for "null values".
      Throws:
        `JsonMappingException`
      Since:
        2.9

    - #### construct

          @Deprecated
          public static PropertyBasedCreator construct(DeserializationContext ctxt,
                                                                   ValueInstantiator valueInstantiator,
                                                                   SettableBeanProperty[] srcCreatorProps)
                                                            throws JsonMappingException

      Deprecated.
      Throws:
        `JsonMappingException`

    - #### properties

          public Collection<SettableBeanProperty> properties()

    - #### findCreatorProperty

          public SettableBeanProperty findCreatorProperty(String name)

    - #### findCreatorProperty

          public SettableBeanProperty findCreatorProperty(int propertyIndex)

    - #### startBuilding

          public PropertyValueBuffer startBuilding(JsonParser p,
                                                   DeserializationContext ctxt,
                                                   ObjectIdReader oir)

      Method called when starting to build a bean instance.
      Since:
        2.1 (added ObjectIdReader parameter -- existed in previous versions without)

    - #### build

          public Object build(DeserializationContext ctxt,
                              PropertyValueBuffer buffer)
                       throws IOException

      Throws:
        `IOException`

Copyright © 2008–2019 FasterXML. All rights reserved.