Package org.apache.commons.beanutils2.sql

# Class ResultSetIterator

java.lang.Object
org.apache.commons.beanutils2.sql.ResultSetIterator

All Implemented Interfaces:
  `Iterator<DynaBean>`, `DynaBean`

public class ResultSetIterator extends Object implements DynaBean, Iterator<DynaBean>

Implements `Iterator` returned by the `iterator()` method of `ResultSetDynaClass`. Each object returned by this iterator will be a `DynaBean` that represents a single row from the result set being wrapped.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected boolean`
  `current`
  Flag indicating whether the result set is currently positioned at a row for which we have not yet returned an element in the iteration.
  `protected ResultSetDynaClass`
  `dynaClass`
  The `ResultSetDynaClass` we are associated with.
  `protected boolean`
  `eof`
  Flag indicating whether the result set has indicated that there are no further rows.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `advance()`
  Advance the result set to the next row, if there is not a current row (and if we are not already at eof).
  `boolean`
  `contains(String name, String key)`
  Does the specified mapped property contain a value for the specified key value?
  `Object`
  `get(String name)`
  Gets the value of a simple property with the specified name.
  `Object`
  `get(String name, int index)`
  Gets the value of an indexed property with the specified name.
  `Object`
  `get(String name, String key)`
  Gets the value of a mapped property with the specified name, or `null` if there is no value for the specified key.
  `DynaClass`
  `getDynaClass()`
  Gets the `DynaClass` instance that describes the set of properties available for this DynaBean.
  `boolean`
  `hasNext()`
  Gets `true` if the iteration has more elements.
  `DynaBean`
  `next()`
  Gets the next element in the iteration.
  `void`
  `remove()`
  Remove the current element from the iteration.
  `void`
  `remove(String name, String key)`
  Remove any existing value for the specified key on the specified mapped property.
  `void`
  `set(String name, int index, Object value)`
  Sets the value of an indexed property with the specified name.
  `void`
  `set(String name, Object value)`
  Sets the value of a simple property with the specified name.
  `void`
  `set(String name, String key, Object value)`
  Sets the value of a mapped property with the specified name.

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

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

  ### Methods inherited from interface java.util.Iterator

  `forEachRemaining`

- ## Field Details

  - ### current

    protected boolean current

    Flag indicating whether the result set is currently positioned at a row for which we have not yet returned an element in the iteration.

  - ### dynaClass

    protected ResultSetDynaClass dynaClass

    The `ResultSetDynaClass` we are associated with.

  - ### eof

    protected boolean eof

    Flag indicating whether the result set has indicated that there are no further rows.

- ## Method Details

  - ### advance

    protected void advance() throws SQLException

    Advance the result set to the next row, if there is not a current row (and if we are not already at eof).

    Throws:
      `SQLException` - if the result set throws an exception

  - ### contains

    public boolean contains(String name, String key)
    Does the specified mapped property contain a value for the specified key value?
    Specified by:
      `contains` in interface `DynaBean`
    Parameters:
      `name` - Name of the property to check
      `key` - Name of the key to check
    Returns:
      `true` if the mapped property contains a value for the specified key, otherwise `false`
    Throws:
      `IllegalArgumentException` - if there is no property of the specified name

  - ### get

    public Object get(String name)
    Gets the value of a simple property with the specified name.
    Specified by:
      `get` in interface `DynaBean`
    Parameters:
      `name` - Name of the property whose value is to be retrieved
    Returns:
      The property's value
    Throws:
      `IllegalArgumentException` - if there is no property of the specified name

  - ### get

    public Object get(String name, int index)
    Gets the value of an indexed property with the specified name.
    Specified by:
      `get` in interface `DynaBean`
    Parameters:
      `name` - Name of the property whose value is to be retrieved
      `index` - Index of the value to be retrieved
    Returns:
      The indexed property's value
    Throws:
      `IllegalArgumentException` - if there is no property of the specified name
      `IllegalArgumentException` - if the specified property exists, but is not indexed
      `IndexOutOfBoundsException` - if the specified index is outside the range of the underlying property
      `NullPointerException` - if no array or List has been initialized for this property

  - ### get

    public Object get(String name, String key)
    Gets the value of a mapped property with the specified name, or `null` if there is no value for the specified key.
    Specified by:
      `get` in interface `DynaBean`
    Parameters:
      `name` - Name of the property whose value is to be retrieved
      `key` - Key of the value to be retrieved
    Returns:
      The mapped property's value
    Throws:
      `IllegalArgumentException` - if there is no property of the specified name
      `IllegalArgumentException` - if the specified property exists, but is not mapped

  - ### getDynaClass

    public DynaClass getDynaClass()
    Gets the `DynaClass` instance that describes the set of properties available for this DynaBean.
    Specified by:
      `getDynaClass` in interface `DynaBean`
    Returns:
      The associated DynaClass

  - ### hasNext

    public boolean hasNext()

    Gets `true` if the iteration has more elements.

    Specified by:
      `hasNext` in interface `Iterator<DynaBean>`
    Returns:
      `true` if the result set has another row, otherwise `false`

  - ### next

    public DynaBean next()

    Gets the next element in the iteration.

    Specified by:
      `next` in interface `Iterator<DynaBean>`
    Returns:
      advance to the new row and return this

  - ### remove

    public void remove()

    Remove the current element from the iteration. This method is not supported.

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

  - ### remove

    public void remove(String name, String key)
    Remove any existing value for the specified key on the specified mapped property.
    Specified by:
      `remove` in interface `DynaBean`
    Parameters:
      `name` - Name of the property for which a value is to be removed
      `key` - Key of the value to be removed
    Throws:
      `IllegalArgumentException` - if there is no property of the specified name

  - ### set

    public void set(String name, int index, Object value)
    Sets the value of an indexed property with the specified name.
    Specified by:
      `set` in interface `DynaBean`
    Parameters:
      `name` - Name of the property whose value is to be set
      `index` - Index of the property to be set
      `value` - Value to which this property is to be set
    Throws:
      `ConversionException` - if the specified value cannot be converted to the type required for this property
      `IllegalArgumentException` - if there is no property of the specified name
      `IllegalArgumentException` - if the specified property exists, but is not indexed
      `IndexOutOfBoundsException` - if the specified index is outside the range of the underlying property

  - ### set

    public void set(String name, Object value)
    Sets the value of a simple property with the specified name.
    Specified by:
      `set` in interface `DynaBean`
    Parameters:
      `name` - Name of the property whose value is to be set
      `value` - Value to which this property is to be set
    Throws:
      `ConversionException` - if the specified value cannot be converted to the type required for this property
      `IllegalArgumentException` - if there is no property of the specified name
      `NullPointerException` - if an attempt is made to set a primitive property to null

  - ### set

    public void set(String name, String key, Object value)
    Sets the value of a mapped property with the specified name.
    Specified by:
      `set` in interface `DynaBean`
    Parameters:
      `name` - Name of the property whose value is to be set
      `key` - Key of the property to be set
      `value` - Value to which this property is to be set
    Throws:
      `ConversionException` - if the specified value cannot be converted to the type required for this property
      `IllegalArgumentException` - if there is no property of the specified name
      `IllegalArgumentException` - if the specified property exists, but is not mapped