com.fasterxml.jackson.databind.deser.impl

## Class PropertyValueBuffer

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

    public class PropertyValueBuffer
    extends Object

Simple container used for temporarily buffering a set of `PropertyValue`s. Using during construction of beans (and Maps) that use Creators, and hence need buffering before instance (that will have properties to assign values to) is constructed.

### Field Summary

Fields
`protected PropertyValue` `_buffered` If we get non-creator parameters before or between creator parameters, those need to be buffered.
`protected DeserializationContext` `_context`
`protected Object[]` `_creatorParameters` Buffer used for storing creator parameters for constructing instance.
`protected Object` `_idValue` In case there is an Object Id property to handle, this is the value we have for it.
`protected ObjectIdReader` `_objectIdReader`
`protected int` `_paramsNeeded` Number of creator parameters for which we have not yet received values.
`protected int` `_paramsSeen` Bitflag used to track parameters found from incoming data when number of parameters is less than 32 (fits in int).
`protected BitSet` `_paramsSeenBig` Bitflag used to track parameters found from incoming data when number of parameters is 32 or higher.
`protected JsonParser` `_parser`

### Constructor Summary

Constructors
Constructor and Description
`PropertyValueBuffer(JsonParser jp, DeserializationContext ctxt, int paramCount, ObjectIdReader oir)`

### Method Summary

Methods
`protected Object` `_findMissing(SettableBeanProperty prop)`
`boolean` `assignParameter(int index, Object value)` Deprecated. Since 2.6
`boolean` `assignParameter(SettableBeanProperty prop, Object value)`
`void` `bufferAnyProperty(SettableAnyProperty prop, String propName, Object value)`
`protected PropertyValue` `buffered()`
`void` `bufferMapProperty(Object key, Object value)`
`void` `bufferProperty(SettableBeanProperty prop, Object value)`
`protected Object[]` `getParameters(SettableBeanProperty[] props)` Method called to do necessary post-processing such as injection of values and verification of values for required properties, after either `assignParameter(SettableBeanProperty, Object)` returns `true` (to indicate all creator properties are found), or when then whole JSON Object has been processed,
`Object` `handleIdValue(DeserializationContext ctxt, Object bean)` Helper method called to handle Object Id value collected earlier, if any
`boolean` `isComplete()`
`boolean` `readIdProperty(String propName)` Helper method called to see if given non-creator property is the "id property"; and if so, handle appropriately.

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

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

### Field Detail

#### _parser

    protected final JsonParser _parser

#### _context

    protected final DeserializationContext _context

#### _objectIdReader

    protected final ObjectIdReader _objectIdReader

#### _creatorParameters

    protected final Object[] _creatorParameters

Buffer used for storing creator parameters for constructing instance.

#### _paramsNeeded

    protected int _paramsNeeded

Number of creator parameters for which we have not yet received values.

#### _paramsSeen

    protected int _paramsSeen

Bitflag used to track parameters found from incoming data when number of parameters is less than 32 (fits in int).

#### _paramsSeenBig

    protected final BitSet _paramsSeenBig

Bitflag used to track parameters found from incoming data when number of parameters is 32 or higher.

#### _buffered

    protected PropertyValue _buffered

If we get non-creator parameters before or between creator parameters, those need to be buffered. Buffer is just a simple linked list

#### _idValue

    protected Object _idValue

In case there is an Object Id property to handle, this is the value we have for it.

### Constructor Detail

#### PropertyValueBuffer

    public PropertyValueBuffer(JsonParser jp,
                       DeserializationContext ctxt,
                       int paramCount,
                       ObjectIdReader oir)

### Method Detail

#### getParameters

    protected Object[] getParameters(SettableBeanProperty[] props)
                              throws JsonMappingException

Method called to do necessary post-processing such as injection of values and verification of values for required properties, after either `assignParameter(SettableBeanProperty, Object)` returns `true` (to indicate all creator properties are found), or when then whole JSON Object has been processed,

Parameters:
  `defaults` - If any of parameters requires nulls to be replaced with a non-null object (usually primitive types), this is a non-null array that has such replacement values (and nulls for cases where nulls are ok)
Throws:
  `JsonMappingException`

#### _findMissing

    protected Object _findMissing(SettableBeanProperty prop)
                           throws JsonMappingException

Throws:
  `JsonMappingException`

#### readIdProperty

    public boolean readIdProperty(String propName)
                           throws IOException

Helper method called to see if given non-creator property is the "id property"; and if so, handle appropriately.

Throws:
  `IOException`
Since:
  2.1

#### handleIdValue

    public Object handleIdValue(DeserializationContext ctxt,
                       Object bean)
                         throws IOException

Helper method called to handle Object Id value collected earlier, if any

Throws:
  `IOException`

#### buffered

    protected PropertyValue buffered()

#### isComplete

    public boolean isComplete()

#### assignParameter

    public boolean assignParameter(SettableBeanProperty prop,
                          Object value)

Returns:
  True if we have received all creator parameters
Since:
  2.6

#### assignParameter

    @Deprecated
    public boolean assignParameter(int index,
                                     Object value)

Deprecated. Since 2.6

#### bufferProperty

    public void bufferProperty(SettableBeanProperty prop,
                      Object value)

#### bufferAnyProperty

    public void bufferAnyProperty(SettableAnyProperty prop,
                         String propName,
                         Object value)

#### bufferMapProperty

    public void bufferMapProperty(Object key,
                         Object value)