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

org.codehaus.jackson.map

## Class MappingIterator<T>

- java.lang.Object
- - org.codehaus.jackson.map.MappingIterator<T>

- All Implemented Interfaces:
    Iterator<T>

      public class MappingIterator<T>
      extends Object
      implements Iterator<T>

  Iterator exposed by `ObjectMapper` when binding sequence of objects. Extension is done to allow more convenient exposing of `IOException` (which basic `Iterator` does not expose)
  Since:
    1.8

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `_closeParser` Flag that indicates whether input `JsonParser` should be closed when we are done or not; generally only called when caller did not pass JsonParser.
    `protected DeserializationContext` | `_context`
    `protected JsonDeserializer<T>` | `_deserializer`
    `protected boolean` | `_hasNextChecked` Flag that is set when we have determined what `hasNextValue()` should value; reset when `nextValue()` is called
    `protected JsonParser` | `_parser`
    `protected JavaType` | `_type`
    `protected T` | `_updatedValue` If not null, "value to update" instead of creating a new instance for each call.
    `protected static MappingIterator<?>` | `EMPTY_ITERATOR`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `MappingIterator(JavaType type, JsonParser jp, DeserializationContext ctxt, JsonDeserializer<?> deser)`
    `protected` | `MappingIterator(JavaType type, JsonParser jp, DeserializationContext ctxt, JsonDeserializer<?> deser, boolean closeParser, Object valueToUpdate)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected static <T> MappingIterator<T>` | `emptyIterator()`
    `boolean` | `hasNext()`
    `boolean` | `hasNextValue()` Equivalent of `next()` but one that may throw checked exceptions from Jackson due to invalid input.
    `T` | `next()`
    `T` | `nextValue()`
    `void` | `remove()`

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

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

- - ### Field Detail

    - #### EMPTY_ITERATOR

          protected static final MappingIterator<?> EMPTY_ITERATOR

    - #### _type

          protected final JavaType _type

    - #### _context

          protected final DeserializationContext _context

    - #### _deserializer

          protected final JsonDeserializer<T> _deserializer

    - #### _parser

          protected JsonParser _parser

    - #### _closeParser

          protected final boolean _closeParser

      Flag that indicates whether input `JsonParser` should be closed when we are done or not; generally only called when caller did not pass JsonParser.

    - #### _hasNextChecked

          protected boolean _hasNextChecked

      Flag that is set when we have determined what `hasNextValue()` should value; reset when `nextValue()` is called

    - #### _updatedValue

          protected final T _updatedValue

      If not null, "value to update" instead of creating a new instance for each call.

  - ### Constructor Detail

    - #### MappingIterator

          protected MappingIterator(JavaType type,
                         JsonParser jp,
                         DeserializationContext ctxt,
                         JsonDeserializer<?> deser)

    - #### MappingIterator

          protected MappingIterator(JavaType type,
                         JsonParser jp,
                         DeserializationContext ctxt,
                         JsonDeserializer<?> deser,
                         boolean closeParser,
                         Object valueToUpdate)

      Since:
        1.9.3

  - ### Method Detail

    - #### emptyIterator

          protected static <T> MappingIterator<T> emptyIterator()

    - #### hasNext

          public boolean hasNext()

      Specified by:
        `hasNext` in interface `Iterator<T>`

    - #### next

          public T next()

      Specified by:
        `next` in interface `Iterator<T>`

    - #### remove

          public void remove()

      Specified by:
        `remove` in interface `Iterator<T>`

    - #### hasNextValue

          public boolean hasNextValue()
                               throws IOException

      Equivalent of `next()` but one that may throw checked exceptions from Jackson due to invalid input.
      Throws:
        `IOException`

    - #### nextValue

          public T nextValue()
                      throws IOException

      Throws:
        `IOException`