TokenFilterContext
Date: 2016-12-03

com.fasterxml.jackson.core.filter

## Class TokenFilterContext

- java.lang.Object
- - com.fasterxml.jackson.core.JsonStreamContext
  - - com.fasterxml.jackson.core.filter.TokenFilterContext

-     public class TokenFilterContext
      extends JsonStreamContext

  Alternative variant of `JsonStreamContext`, used when filtering content being read or written (based on `TokenFilter`).
  Since:
    2.6

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected TokenFilterContext` | `_child`
    `protected java.lang.String` | `_currentName` Name of the field of which value is to be parsed; only used for OBJECT contexts
    `protected TokenFilter` | `_filter` Filter to use for items in this state (for properties of Objects, elements of Arrays, and root-level values of root context)
    `protected boolean` | `_needToHandleName` Flag that indicates that the current name of this context still needs to be read/written, if path from root down to included leaf is to be exposed.
    `protected TokenFilterContext` | `_parent` Parent context for this context; null for root context.
    `protected boolean` | `_startHandled` Flag that indicates that start token has been read/written, so that matching close token needs to be read/written as well when context is getting closed.

    - ### Fields inherited from class com.fasterxml.jackson.core.JsonStreamContext

      `_index, _type, TYPE_ARRAY, TYPE_OBJECT, TYPE_ROOT`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `TokenFilterContext(int type, TokenFilterContext parent, TokenFilter filter, boolean startHandled)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `appendDesc(java.lang.StringBuilder sb)`
    `TokenFilter` | `checkValue(TokenFilter filter)` Method called to check whether value is to be included at current output position, either as Object property, Array element, or root value.
    `TokenFilterContext` | `closeArray(JsonGenerator gen)`
    `TokenFilterContext` | `closeObject(JsonGenerator gen)`
    `TokenFilterContext` | `createChildArrayContext(TokenFilter filter, boolean writeStart)`
    `TokenFilterContext` | `createChildObjectContext(TokenFilter filter, boolean writeStart)`
    `static TokenFilterContext` | `createRootContext(TokenFilter filter)`
    `TokenFilterContext` | `findChildOf(TokenFilterContext parent)`
    `java.lang.String` | `getCurrentName()` Method for accessing name associated with the current location.
    `java.lang.Object` | `getCurrentValue()` Method for accessing currently active value being used by data-binding (as the source of streaming data to write, or destination of data being read), at this level in hierarchy.
    `TokenFilter` | `getFilter()`
    `TokenFilterContext` | `getParent()` Accessor for finding parent context of this context; will return null for root context.
    `boolean` | `isStartHandled()`
    `JsonToken` | `nextTokenToRead()`
    `protected TokenFilterContext` | `reset(int type, TokenFilter filter, boolean startWritten)`
    `void` | `setCurrentValue(java.lang.Object v)` Method to call to pass value to be returned via `JsonStreamContext.getCurrentValue()`; typically called indirectly through `JsonParser.setCurrentValue(java.lang.Object)` or `JsonGenerator.setCurrentValue(java.lang.Object)`).
    `TokenFilter` | `setFieldName(java.lang.String name)`
    `void` | `skipParentChecks()`
    `java.lang.String` | `toString()` Overridden to provide developer writeable "JsonPath" representation of the context.
    `void` | `writeImmediatePath(JsonGenerator gen)` Variant of `writePath(JsonGenerator)` called when all we need is immediately surrounding Object.
    `void` | `writePath(JsonGenerator gen)` Method called to ensure that parent path from root is written up to and including this node.

    - ### Methods inherited from class com.fasterxml.jackson.core.JsonStreamContext

      `getCurrentIndex, getEntryCount, getTypeDesc, inArray, inObject, inRoot, typeDesc`

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

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

- - ### Field Detail

    - #### _parent

          protected final TokenFilterContext _parent

      Parent context for this context; null for root context.

    - #### _child

          protected TokenFilterContext _child

    - #### _currentName

          protected java.lang.String _currentName

      Name of the field of which value is to be parsed; only used for OBJECT contexts

    - #### _filter

          protected TokenFilter _filter

      Filter to use for items in this state (for properties of Objects, elements of Arrays, and root-level values of root context)

    - #### _startHandled

          protected boolean _startHandled

      Flag that indicates that start token has been read/written, so that matching close token needs to be read/written as well when context is getting closed.

    - #### _needToHandleName

          protected boolean _needToHandleName

      Flag that indicates that the current name of this context still needs to be read/written, if path from root down to included leaf is to be exposed.

  - ### Constructor Detail

    - #### TokenFilterContext

          protected TokenFilterContext(int type,
                            TokenFilterContext parent,
                            TokenFilter filter,
                            boolean startHandled)

  - ### Method Detail

    - #### reset

          protected TokenFilterContext reset(int type,
                                 TokenFilter filter,
                                 boolean startWritten)

    - #### createRootContext

          public static TokenFilterContext createRootContext(TokenFilter filter)

    - #### createChildArrayContext

          public TokenFilterContext createChildArrayContext(TokenFilter filter,
                                                   boolean writeStart)

    - #### createChildObjectContext

          public TokenFilterContext createChildObjectContext(TokenFilter filter,
                                                    boolean writeStart)

    - #### setFieldName

          public TokenFilter setFieldName(java.lang.String name)
                                   throws JsonProcessingException

      Throws:
        `JsonProcessingException`

    - #### checkValue

          public TokenFilter checkValue(TokenFilter filter)

      Method called to check whether value is to be included at current output position, either as Object property, Array element, or root value.

    - #### writePath

          public void writePath(JsonGenerator gen)
                         throws java.io.IOException

      Method called to ensure that parent path from root is written up to and including this node.
      Throws:
        `java.io.IOException`

    - #### writeImmediatePath

          public void writeImmediatePath(JsonGenerator gen)
                                  throws java.io.IOException

      Variant of `writePath(JsonGenerator)` called when all we need is immediately surrounding Object. Method typically called when including a single property but not including full path to root.
      Throws:
        `java.io.IOException`

    - #### closeArray

          public TokenFilterContext closeArray(JsonGenerator gen)
                                        throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### closeObject

          public TokenFilterContext closeObject(JsonGenerator gen)
                                         throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### skipParentChecks

          public void skipParentChecks()

    - #### getCurrentValue

          public java.lang.Object getCurrentValue()

      Description copied from class: `JsonStreamContext`
      Method for accessing currently active value being used by data-binding (as the source of streaming data to write, or destination of data being read), at this level in hierarchy.

      Note that "current value" is NOT populated (or used) by Streaming parser or generator; it is only used by higher-level data-binding functionality. The reason it is included here is that it can be stored and accessed hierarchically, and gets passed through data-binding.

      Overrides:
        `getCurrentValue` in class `JsonStreamContext`
      Returns:
        Currently active value, if one has been assigned.

    - #### setCurrentValue

          public void setCurrentValue(java.lang.Object v)

      Description copied from class: `JsonStreamContext`
      Method to call to pass value to be returned via `JsonStreamContext.getCurrentValue()`; typically called indirectly through `JsonParser.setCurrentValue(java.lang.Object)` or `JsonGenerator.setCurrentValue(java.lang.Object)`).
      Overrides:
        `setCurrentValue` in class `JsonStreamContext`

    - #### getParent

          public final TokenFilterContext getParent()

      Description copied from class: `JsonStreamContext`
      Accessor for finding parent context of this context; will return null for root context.
      Specified by:
        `getParent` in class `JsonStreamContext`

    - #### getCurrentName

          public final java.lang.String getCurrentName()

      Description copied from class: `JsonStreamContext`
      Method for accessing name associated with the current location. Non-null for `FIELD_NAME` and value events that directly follow field names; null for root level and array values.
      Specified by:
        `getCurrentName` in class `JsonStreamContext`

    - #### getFilter

          public TokenFilter getFilter()

    - #### isStartHandled

          public boolean isStartHandled()

    - #### nextTokenToRead

          public JsonToken nextTokenToRead()

    - #### findChildOf

          public TokenFilterContext findChildOf(TokenFilterContext parent)

    - #### appendDesc

          protected void appendDesc(java.lang.StringBuilder sb)

    - #### toString

          public java.lang.String toString()

      Overridden to provide developer writeable "JsonPath" representation of the context.
      Overrides:
        `toString` in class `java.lang.Object`