Class PropertyValueBuffer

java.lang.Object
tools.jackson.databind.deser.bean.PropertyValueBuffer

public class PropertyValueBuffer extends Object
Simple container used for temporarily buffering a set of PropertyValues. 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 Details

    • _parser

      protected final tools.jackson.core.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.
    • _anyParamSetter

      protected final SettableAnyProperty _anyParamSetter
      "Any setter" property bound to a Creator parameter (via @JsonAnySetter).
      Since:
      2.18
    • _anyParamBuffered

      protected PropertyValue _anyParamBuffered
      If "Any-setter-via-Creator" exists, we will need to buffer values to feed it, separate from regular, non-creator properties (see _buffered).
      Since:
      2.18
    • _injectablePropIndexes

      protected final BitSet _injectablePropIndexes
      Indexes properties that are injectable, if any; null if none, cleared as they are injected.
      Since:
      2.21
  • Constructor Details

  • Method Details

    • hasParameter

      public final boolean hasParameter(SettableBeanProperty prop)
      Returns true if the given property was seen in the JSON source by this buffer.
    • getParameter

      public Object getParameter(DeserializationContext ctxt, SettableBeanProperty prop) throws tools.jackson.core.JacksonException
      A variation of getParameters(tools.jackson.databind.DeserializationContext, tools.jackson.databind.deser.SettableBeanProperty[]) that accepts a single property. Whereas the plural form eagerly fetches and validates all properties, this method may be used (along with hasParameter(SettableBeanProperty)) to let applications only fetch the properties defined in the JSON source itself, and to have some other customized behavior for missing properties.
      Throws:
      tools.jackson.core.JacksonException
    • getParameters

      public Object[] getParameters(DeserializationContext ctxt, SettableBeanProperty[] props) throws tools.jackson.core.JacksonException
      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 the whole JSON Object has been processed,
      Throws:
      tools.jackson.core.JacksonException
    • _findMissing

      protected Object _findMissing(SettableBeanProperty prop) throws tools.jackson.core.JacksonException
      Throws:
      tools.jackson.core.JacksonException
    • readIdProperty

      public boolean readIdProperty(String propName) throws tools.jackson.core.JacksonException
      Helper method called to see if given non-creator property is the "id property"; and if so, handle appropriately.
      Throws:
      tools.jackson.core.JacksonException
    • handleIdValue

      public Object handleIdValue(DeserializationContext ctxt, Object bean) throws tools.jackson.core.JacksonException
      Helper method called to handle Object Id value collected earlier, if any
      Throws:
      tools.jackson.core.JacksonException
    • buffered

      protected PropertyValue buffered()
    • isComplete

      public boolean isComplete()
    • assignParameter

      public boolean assignParameter(SettableBeanProperty prop, Object value)
      Method called to buffer value for given property, as well as check whether we now have values for all (creator) properties that we expect to get values for.
      Returns:
      True if we have received all creator parameters
    • 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)
    • bufferAnyParameterProperty

      public void bufferAnyParameterProperty(SettableAnyProperty prop, String propName, Object value)
    • bufferMergingProperty

      public void bufferMergingProperty(SettableBeanProperty prop, TokenBuffer buffered)