Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Business Components
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## oracle.jbo
Interface RowIterator

All Known Subinterfaces:
  RowSet, RowSetIterator, ViewObject

public interface RowIterator

Defines simple access to a set of rows.

Since:
  JDeveloper 3.0

Field Summary
`static int` | `SLOT_BEFORE_FIRST`
`static int` | `SLOT_BEYOND_LAST`
`static int` | `SLOT_DELETED`
`static int` | `SLOT_VALID`

Method Summary
`Key` | `createKey(AttributeList nvp)` Given a list of name-value pairs, creates a Key object that matches the key structure for the ViewObject for this RowItertor.
`Row` | `createRow()` Creates a new Row object, but does not insert it into the row set.
`java.util.Enumeration` | `enumerateRowsInRange()` Gets an `Enumeration` interface for the row set.
`Row[]` | `findByEntity(int eRowHandle, int maxNumOfRows)` Finds and returns view rows that use the entity row, identified by the entity row handle, `eRowHandle`.
`Row[]` | `findByKey(Key key, int maxNumOfRows)` Finds and returns view rows that match the specified key.
`Row` | `first()` Designates the first row of the row set as the current row.
`Row[]` | `getAllRowsInRange()` Extracts the rows in the range.
`Row` | `getCurrentRow()` Accesses the current row.
`int` | `getCurrentRowIndex()` Gets the absolute index (not range index) of the current row.
`int` | `getCurrentRowSlot()` Gets the slot status of the current row.
`int` | `getFetchedRowCount()` Counts the number of rows currently fetched in the row set.
`int` | `getRangeIndexOf(Row row)` Get the index of the given row relative to the beginning of the range.
`int` | `getRangeSize()` Gets the size of the row set range.
`int` | `getRangeStart()` Gets the absolute index of the first row in the row set range.
`Row` | `getRow(Key key)` Accesses a row through a unique key.
`Row` | `getRowAtRangeIndex(int index)` Accesses a row through its index in the row set.
`int` | `getRowCount()` Counts the total number of rows in the row set.
`int` | `getRowCountInRange()` Gets the size of the row set range.
`boolean` | `hasNext()` Tests for the existence of a row after the current row.
`boolean` | `hasPrevious()` Tests for the existence of a row before the current row.
`void` | `insertRow(Row row)` Adds a row to the row set, before the current row.
`void` | `insertRowAtRangeIndex(int index, Row row)` Adds a row to the row set at the given index.
`boolean` | `isRangeAtBottom()` Tests if the row set range is at the end of the result set.
`boolean` | `isRangeAtTop()` Tests if the row set range is at the beginning of the result set.
`Row` | `last()` Designates the last row of the row set as the current row.
`Row` | `next()` Steps forward, designating the next row as the current row.
`Row` | `previous()` Steps backward, designating the previous row as the current row.
`void` | `removeCurrentRow()` Removes the current Row object from the row set.
`void` | `reset()` Clears the "current row" designation and places the iterator in the slot before the first row.
`int` | `scrollRange(int amount)` Moves the row set range up or down a given number of rows.
`int` | `scrollRangeTo(Row row, int index)` Scrolls the range to place a given row at a given row set index.
`boolean` | `setCurrentRow(Row row)` Designates a given row as the current row.
`boolean` | `setCurrentRowAtRangeIndex(int index)` Designates a given index as the current row.
`int` | `setRangeSize(int size)` Modifies the size of the row set range.
`int` | `setRangeStart(int start)` Moves the row set range.
`void` | `setRowValidation(boolean flag)` Sets the validation flag on this iterator.

Field Detail

### SLOT_VALID

    public static final int SLOT_VALID

### SLOT_DELETED

    public static final int SLOT_DELETED

### SLOT_BEFORE_FIRST

    public static final int SLOT_BEFORE_FIRST

### SLOT_BEYOND_LAST

    public static final int SLOT_BEYOND_LAST

Method Detail

### next

    public Row next()

  Steps forward, designating the next row as the current row.
  Returns:
    a Row object, or `null` if there is no next row.

### previous

    public Row previous()

  Steps backward, designating the previous row as the current row.
  Returns:
    a Row object, or `null` if there is no previous row.

### first

    public Row first()

  Designates the first row of the row set as the current row.
  Returns:
    a Row object, or `null` if the row set is empty.

### last

    public Row last()

  Designates the last row of the row set as the current row.
  Returns:
    a Row object, or `null` if the row set is empty.

### reset

    public void reset()

  Clears the "current row" designation and places the iterator in the slot before the first row.

  A subsequent invocation of `next()` will cause the first row to become the current row.

### hasNext

    public boolean hasNext()

  Tests for the existence of a row after the current row.
  Returns:
    `true` if there is next row.

### hasPrevious

    public boolean hasPrevious()

  Tests for the existence of a row before the current row.
  Returns:
    `true` if there is previous row.

### getFetchedRowCount

    public int getFetchedRowCount()

  Counts the number of rows currently fetched in the row set.
  Returns:
    the number of fetched rows.

### getRowCount

    public int getRowCount()

  Counts the total number of rows in the row set.
  Returns:
    the number of rows.

### getRow

    public Row getRow(Key key)

  Accesses a row through a unique key.
  Parameters:
    `key` - a key.
  Returns:
    the Row object matching the key.

### getRowAtRangeIndex

    public Row getRowAtRangeIndex(int index)

  Accesses a row through its index in the row set.
  Parameters:
    `index` - an integer in the range `0`to` getRangeSize() - 1`.
  Returns:
    a Row object, or `null` if the index is out of range.

### getCurrentRow

    public Row getCurrentRow()

  Accesses the current row.
  Returns:
    the Row object designated as the current row.

### getCurrentRowIndex

    public int getCurrentRowIndex()

  Gets the absolute index (not range index) of the current row.
  Returns:
    a row index.

### getCurrentRowSlot

    public int getCurrentRowSlot()

  Gets the slot status of the current row.
  Returns:
    one of the class constants prefixed by `SLOT_`.

### setCurrentRow

    public boolean setCurrentRow(Row row)

  Designates a given row as the current row.
  Parameters:
    `row` - the new current row.
  Returns:
    `true` if the operation succeeded.

### createRow

    public Row createRow()

  Creates a new Row object, but does not insert it into the row set.
  Returns:
    a new Row object.

### insertRow

    public void insertRow(Row row)

  Adds a row to the row set, before the current row. This method sets the current row to the row just inserted. With respect to eventing, this method call will generate two events (of oracle.jbo.RowSetListener): rowInserted, followed by navigated.
  Parameters:
    `row` - the Row object to be added.

### removeCurrentRow

    public void removeCurrentRow()

  Removes the current Row object from the row set.

### setRangeSize

    public int setRangeSize(int size)

  Modifies the size of the row set range.

  This method takes effect when the next set of data is fetched. For an example usage of `setRangeSize`, see `setRangeStart`.

  Parameters:
    `size` - the new number of rows in the row set range.
  Returns:
    the new size of the range.
  See Also:
    `setRangeStart(int start)`

### getRangeSize

    public int getRangeSize()

  Gets the size of the row set range.
  Returns:
    the number of rows in the range.

### getRangeStart

    public int getRangeStart()

  Gets the absolute index of the first row in the row set range.

  The absolute index is 0-based, and is the row's index relative to the entire result set.

  Returns:
    an index.

### setRangeStart

    public int setRangeStart(int start)

  Moves the row set range.

  Note that the index is 0-based. When you call `setRangeStart(1)`, the range start will be positioned at the second table row.

  Another behavior of `setRangeStart` (and also `setRangeSize`) is that it tries to position the range, so as to fill up the range as much as possible. For example, assume you have View Object `vo` focused on a table with four rows (A, B, C, D), and you execute the following code:

           vo.setRangeStart(4);
           vo.setRangeSize(3);
           Row[] rows = vo.getAllRowsInRange();

  In this case, `rows` contains the last 3 rows (B, C, D). When you call `setRangeStart(4)`, it will try to position you at row 4. Since the index is 0-based, it finds that there is no row. Since the default range size is 1, it will position you to the last row (row index 3).

  Then, when you call `getRangeSize(3)`, it tries to fill up the range from the bottom. This is why you get (B, C, D).

  Parameters:
    `start` - the absolute index of the new first row in the row set range.

### scrollRange

    public int scrollRange(int amount)

  Moves the row set range up or down a given number of rows.
  Parameters:
    `amount` - the number of rows to scroll. A negative value scrolls upward.
  Returns:
    the number of rows actually scrolled.

### scrollRangeTo

    public int scrollRangeTo(Row row,
                             int index)

  Scrolls the range to place a given row at a given row set index.
  Parameters:
    `row` - the row.
    `index` - the row's new index.
  Returns:
    the actual number of rows scrolled. A negative number indicates that the scroll was scrolled upward.

### setCurrentRowAtRangeIndex

    public boolean setCurrentRowAtRangeIndex(int index)

  Designates a given index as the current row.
  Parameters:
    `index` - the index of the new current row.
  Returns:
    `true` if the operation succeeded.

### insertRowAtRangeIndex

    public void insertRowAtRangeIndex(int index,
                                      Row row)

  Adds a row to the row set at the given index. The index is relative to the range. I.e., index of 0 would mean to insert before the first row of the range. This method call does not alter the current position of the iterator.
  Parameters:
    `index` - the point where `row` is to be added.
    `row` - the Row object to be added.

### getRangeIndexOf

    public int getRangeIndexOf(Row row)

  Get the index of the given row relative to the beginning of the range.
  Parameters:
    `row` - a Row object. or `-1` if the row is not in range.
  Returns:
    the index of `row`,

### getRowCountInRange

    public int getRowCountInRange()

  Gets the size of the row set range.
  Returns:
    the number of rows in the range.

### isRangeAtBottom

    public boolean isRangeAtBottom()

  Tests if the row set range is at the end of the result set.
  Returns:
    `true` if the last row of the range is the last row of the result set.

### isRangeAtTop

    public boolean isRangeAtTop()

  Tests if the row set range is at the beginning of the result set.
  Returns:
    `true` if the first row of the range is the first row of the result set.

### enumerateRowsInRange

    public java.util.Enumeration enumerateRowsInRange()

  Gets an `Enumeration` interface for the row set.
  Returns:
    an `Enumeration` interface.

### getAllRowsInRange

    public Row[] getAllRowsInRange()

  Extracts the rows in the range.
  Returns:
    an array of Row objects. The size if the array is `setViewSize()`.

### findByKey

    public Row[] findByKey(Key key,
                           int maxNumOfRows)

  Finds and returns view rows that match the specified key.

  See `ViewObjectImpl#findByKey(key, int)` for details.

  You do not have to specify all of the keys, but you do have to correctly specify the positions of the keys that you do want. For example, assume that you have 3 Entity Objects in the View Object, and each Entity Object key is 2 parts. If you want to specify only the key attributes for Entity Object 1 and Entity Object 3, you need:

          Object [] keyValues = new Object[6]; // IMPORTANT that length is *6*
          keyValues[0] = eo1_keypart1; // first Entity Object, key part 1
          keyValues[1] = eo1_keypart2; // first Entity Object, key part 2
          keyValues[4] = eo3_keypart1; // third Entity Object, key part 1
          keyValues[5] = eo3_keypart2; // third Entity Object, key part 2
          Key key = new Key(keyValues);

  Parameters:
    `key` - the key to match.
    `maxNumOfRows` - the maximum size of the array to return, or `-1` to return all rows.
  Returns:
    an array of rows matching the key.
  See Also:
    `ViewObjectImpl.findByKey(Key, int)`

### createKey

    public Key createKey(AttributeList nvp)

  Given a list of name-value pairs, creates a Key object that matches the key structure for the ViewObject for this RowItertor. This Key object could be used as a valid argument to findByKey. This Key will have null values for attributes expected in the key structure for this ViewObject, but not found in the given set of name-value pairs.

### findByEntity

    public Row[] findByEntity(int eRowHandle,
                              int maxNumOfRows)

  Finds and returns view rows that use the entity row, identified by the entity row handle, `eRowHandle`.

  Parameters:
    `eRowHandle` - the entity row handle.
    `maxNumOfRows` - the maximum size of the row array to return, or `-1` to return all rows.
  Returns:
    an array of view rows that use the entity row.

### setRowValidation

    public void setRowValidation(boolean flag)

  Sets the validation flag on this iterator. By default a RowIterator validates the current row when navigating to another row. This method can be used to turn this row-validation off by passing 'false' as parameter.
  Parameters:
    `flag` - Whether to turn row validation off or not.
  Throws:
    InvalidOperException - is thrown if this iterator is the default iterator of a ViewObject or a RowSet.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Business Components
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD