Package org.apache.commons.beanutils

## Class ResultSetIterator

- java.lang.Object
- - org.apache.commons.beanutils.ResultSetIterator

All Implemented Interfaces:
  `java.util.Iterator<DynaBean>`, `DynaBean`

    public class ResultSetIterator
    extends java.lang.Object
    implements DynaBean, java.util.Iterator<DynaBean>

Implementation of `java.util.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.

Version:
  $Id$

### Field Summary

Fields
`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

All Methods Instance Methods Concrete Methods
`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​(java.lang.String name, java.lang.String key)` Does the specified mapped property contain a value for the specified key value?
`java.lang.Object` `get​(java.lang.String name)` Return the value of a simple property with the specified name.
`java.lang.Object` `get​(java.lang.String name, int index)` Return the value of an indexed property with the specified name.
`java.lang.Object` `get​(java.lang.String name, java.lang.String key)` Return the value of a mapped property with the specified name, or `null` if there is no value for the specified key.
`DynaClass` `getDynaClass()` Return the `DynaClass` instance that describes the set of properties available for this DynaBean.
`boolean` `hasNext()` Return `true` if the iteration has more elements.
`DynaBean` `next()` Return the next element in the iteration.
`void` `remove()` Remove the current element from the iteration.
`void` `remove​(java.lang.String name, java.lang.String key)` Remove any existing value for the specified key on the specified mapped property.
`void` `set​(java.lang.String name, int index, java.lang.Object value)` Set the value of an indexed property with the specified name.
`void` `set​(java.lang.String name, java.lang.Object value)` Set the value of a simple property with the specified name.
`void` `set​(java.lang.String name, java.lang.String key, java.lang.Object value)` Set 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 Detail

#### 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 Detail

#### contains

    public boolean contains​(java.lang.String name,
                            java.lang.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:
  `java.lang.IllegalArgumentException` - if there is no property of the specified name

#### get

    public java.lang.Object get​(java.lang.String name)

Return 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:
  `java.lang.IllegalArgumentException` - if there is no property of the specified name

#### get

    public java.lang.Object get​(java.lang.String name,
                                int index)

Return 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:
  `java.lang.IllegalArgumentException` - if there is no property of the specified name
  `java.lang.IllegalArgumentException` - if the specified property exists, but is not indexed
  `java.lang.IndexOutOfBoundsException` - if the specified index is outside the range of the underlying property
  `java.lang.NullPointerException` - if no array or List has been initialized for this property

#### get

    public java.lang.Object get​(java.lang.String name,
                                java.lang.String key)

Return 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:
  `java.lang.IllegalArgumentException` - if there is no property of the specified name
  `java.lang.IllegalArgumentException` - if the specified property exists, but is not mapped

#### getDynaClass

    public DynaClass getDynaClass()

Return the `DynaClass` instance that describes the set of properties available for this DynaBean.

Specified by:
  `getDynaClass` in interface `DynaBean`
Returns:
  The associated DynaClass

#### remove

    public void remove​(java.lang.String name,
                       java.lang.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:
  `java.lang.IllegalArgumentException` - if there is no property of the specified name

#### set

    public void set​(java.lang.String name,
                    java.lang.Object value)

Set 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
  `java.lang.IllegalArgumentException` - if there is no property of the specified name
  `java.lang.NullPointerException` - if an attempt is made to set a primitive property to null

#### set

    public void set​(java.lang.String name,
                    int index,
                    java.lang.Object value)

Set 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
  `java.lang.IllegalArgumentException` - if there is no property of the specified name
  `java.lang.IllegalArgumentException` - if the specified property exists, but is not indexed
  `java.lang.IndexOutOfBoundsException` - if the specified index is outside the range of the underlying property

#### set

    public void set​(java.lang.String name,
                    java.lang.String key,
                    java.lang.Object value)

Set 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
  `java.lang.IllegalArgumentException` - if there is no property of the specified name
  `java.lang.IllegalArgumentException` - if the specified property exists, but is not mapped

#### hasNext

    public boolean hasNext()

Return `true` if the iteration has more elements.

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

#### next

    public DynaBean next()

Return the next element in the iteration.

Specified by:
  `next` in interface `java.util.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 `java.util.Iterator<DynaBean>`

#### advance

    protected void advance()
                    throws java.sql.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:
  `java.sql.SQLException` - if the result set throws an exception