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.server
Class ViewRowSetImpl

    java.lang.Object
      |
      +--oracle.jbo.common.BaseObject
            |
            +--oracle.jbo.common.PropertiesHelper
                  |
                  +--oracle.jbo.common.RowSetHelper
                        |
                        +--oracle.jbo.server.RowSetImpl
                              |
                              +--oracle.jbo.server.ViewRowSetImpl

public class ViewRowSetImpl
extends oracle.jbo.server.RowSetImpl
implements RowSet

The middle-tier class that manages collections of view rows that result from executing a query.

A view row set blongs to a View Object. An important distinction between a View Object and a row set is that the View Object manages the query statement. All row sets that belong to a View Object use the same query statement. However, each row set supplies its own set of binding values. This arrangement is ideally for managing the master-detail relationship: the detail View Object supplies the same query statement for all detail row sets, while each row set builds its own bind values from its master row.

View rows are maintained in an ordered list, and each view row is identified by an index into this list. This index is referred as the absolute row index. An application can insert a row at any valid row index, or delete any row, which will cause the indices of following rows to be adjusted.

The work horse behind `ViewRowSetImpl` are internal query collections. In a master-detail relationship the detail set is identified by its foreign key value. For example, consider the View Objects Dept and TempAgency, where Dept is the master and TempAgency is the detail, which are related through a View Link . Suppose Depts 10 and 20 are located in "New York" and Dept 30 in "San Jose", and "New York" has two temp agencies "ABC and DEF", and "San Jose" has "GHI and JKL".

This scenario has two query collections on the detail (TempAgency) side, for "New York" and "San Jose". If the application invokes the assocation/View Link accessor to get the temp agencies from Dept, each Dept produces a view row set. Two view row sets, for Depts 10 and 20 show temp agencies in "New York", and Dept 30 shows the temp agencies in "San Jose". The first two view row sets share the same query collection, and the third has its own.

An internal table of master-key/query-collection pairs, the query collection hash table, is maintained for the View Object. When a new detail view row set is created, it checks this hash table to see if a query collection of the master key value already is in the list, and if found, uses it. Otherwise, the query is executed and a new query collection is created.

The position of a row inserted in the middle of the row set is temporary in that when the data is posted to the database, this position will not be preserved in the database. If the row set is executed again, refreshing its data from the database, the new row will appear in the position returned by the database.

Since:
  JDeveloper 3.0
See Also:
  `ViewObject`, `RowSet`, `ViewObjectImpl`, `ViewRowSetIteratorImpl`

Field Summary
`protected ViewRowSetIteratorImpl` | `mDefaultView`
`protected java.util.Vector` | `mMasterViews`
`protected java.lang.Object[]` | `mParamValues`
`protected ViewObjectImpl` | `mQRef`
`protected java.util.Vector` | `mUserParams`
`protected java.util.Vector` | `mViews`

Fields inherited from class oracle.jbo.common.RowSetHelper
`listeners, mName`

Fields inherited from class oracle.jbo.common.PropertiesHelper
`mProperties, timer`

Fields inherited from class oracle.jbo.common.BaseObject
`TRACE_EVERY_ALLOC, TRACE_NONE, TRACE_OCCASIONAL, TRACE_UNINITIALIZED`

Fields inherited from interface oracle.jbo.XMLInterface
`XML_OPT_ALL_ROWS, XML_OPT_ASSOC_CONSISTENT, XML_OPT_CHANGES_ONLY, XML_OPT_LIMIT_RANGE`

Fields inherited from interface oracle.jbo.RowIterator
`SLOT_BEFORE_FIRST, SLOT_BEYOND_LAST, SLOT_DELETED, SLOT_VALID`

Constructor Summary
`ViewRowSetImpl(ViewObjectImpl vo, java.lang.String name, ViewRowSetIteratorImpl masterRSI)` Constructs a new secondary (non-default) view row set.

Method Summary
`void` | `addListener(java.lang.Object listener)` Adds an event listener to this object.
`protected void` | `close()` Closes the view row set.
`RowSet` | `createDetailRowSet(java.lang.String rsName, java.lang.String linkDefName)` Creates and returns an new detail row set for this row set iterator.
`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 view row.
`RowSetIterator` | `createRowSetIterator(java.lang.String name)` Creates and returns a new row set iterator on this row set.
`static void` | `dumpViewRowCache(RowSetIterator rsi, java.io.Writer out)` Internal: Applications should not use this method.
`java.util.Enumeration` | `enumerateRowsInRange()` Creates and returns an enumerator of the rows in the range.
`void` | `execute(boolean forceFlag, boolean notifyFlag)` Executes the query.
`void` | `executeQuery()` Executes the query.
`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 key specified in `key`.
`Row` | `first()` Navigates to the first row in the row set.
`Row[]` | `getAllRowsInRange()` Returns an array of all rows in the iterator's range.
`ApplicationModule` | `getApplicationModule()` Returns the application module to which this row set's View Object belongs.
`int[]` | `getCollMgmtInfo()`
`Row` | `getCurrentRow()` Returns the current row of the iterator.
`int` | `getCurrentRowIndex()` Returns the absolute row index of the current row in the row set.
`int` | `getCurrentRowSlot()` Returns the current row slot status.
`ViewRowSetIteratorImpl` | `getDefaultRowSetIterator()` Returns the default `ViewRowSetIteratorImpl`.
`RowSet[]` | `getDetailRowSets()` Returns an array of all detail row sets for this row set iterator.
`long` | `getEstimatedRowCount()` Returns an estimated number of rows in this row set.
`int` | `getFetchedRowCount()` Returns the number of rows fetched from the JDBC `RestultSet`.
`RowSetIterator[]` | `getMasterRowSetIterators()` Returns an array of all master row set iterators for this row set.
`java.util.Vector` | `getMasterViewRowSetIterators()` Returns a list of all master row set iterators for this row set.
`java.lang.Object[]` | `getParameters(boolean nullValueFlag)` Returns an array of bind values to be used for binding to the query.
`java.lang.Object[]` | `getParametersAsStorageTypes()` Returns an array of bind values to be used for binding to the query.
`java.util.Hashtable` | `getProperties()` Retrieves all properties.
`QueryCollection` | `getQueryCollection()` Internal: Applications should not use this method.
`int` | `getRangeIndexOf(Row row)` Returns the range index of the row specified by `row`.
`int` | `getRangeSize()` Returns the range size of the iterator.
`int` | `getRangeStart()` Returns the absolute row index of the first row in the range.
`Row` | `getRow(int index)` Returns the row at absolute row index of `index`.
`Row` | `getRow(Key key)` Returns the first row whose key matches `key`.
`Row` | `getRowAtRangeIndex(int index)` Returns the row at range index `index`.
`int` | `getRowCount()` Returns the total number of rows in this row set.
`int` | `getRowCountInRange()` Returns the actual number of rows in the range.
`Row` | `getRowFromHandle(java.lang.Object rowHandle)` Internal: Applications should not use this method.
`protected Row[]` | `getRows(EntityImpl entity)` Returns an array of view rows that use the specified entity row.
`RowSet` | `getRowSet()` Implements `RowSetIterator.getRowSet`.
`RowSetIterator` | `getRowSetIterator()` Returns the row set iterator interface of this object.
`ViewObject` | `getViewObject()` Returns this row set's View Object.
`java.lang.Object[]` | `getWhereClauseParams()` Returns an array of bind values currently specified for the query.
`boolean` | `hasNext()` Indicates whether the iterator has a next row or not.
`boolean` | `hasPrevious()` Indicates whether the iterator has a previous row or not.
`void` | `insertRow(Row row)` Inserts the row into the row set.
`void` | `insertRowAt(int index, Row row)` Inserts a view row at an absolute row index specified by `index`.
`void` | `insertRowAtRangeIndex(int index, Row row)` Inserts the row into the row set at the specified range index.
`boolean` | `isAssociationConsistent()` Returns the association-consistent flag for this row set.
`boolean` | `isDefaultRS()` Internal: Applications should not use this method.
`boolean` | `isDirty()` Indicates whether data modifications have been performed since the last database post through this row set.
`boolean` | `isExecuted()` Indicates whether the row set has been executed or not.
`boolean` | `isForwardOnly()` Indicates whether this row set is forward-only or not.
`protected boolean` | `isNotifiedRefresh()` Indicates whether row set refresh event has been notified to the row set's listeners or not.
`boolean` | `isRangeAtBottom()` Indicates whether the iterator range contains the last row of the row set.
`boolean` | `isRangeAtTop()` Indicates whether the iterator range contains the first row of the row set.
`Row` | `last()` Navigates to the last row in the row set.
`ViewRowImpl` | `makeRowCopy(ViewRowImpl vr)`
`Row` | `next()` Navigates to the next row in the row set.
`Row` | `previous()` Navigates to the previous row in the row set.
`void` | `printActiveObjsTab(java.io.PrintWriter pw)`
`void` | `printColl(java.io.PrintWriter pw, int printFlag)`
`void` | `printRUChain(java.io.PrintWriter pw)`
`void` | `removeCurrentRow()` Removes the current row.
`void` | `removeListener(java.lang.Object listener)` Removes an event listener to this object from the listener list.
`boolean` | `removeMasterRowSetIterator(RowSetIterator masterRSI)` Removes the master row set iterator in a master-detail View Link.
`void` | `removeRowAt(int index)` Removes a view row at an absolute row index specified by `index`.
`void` | `removeRowHandle(java.lang.Object rowHandle)` Internal: Applications should not use this method.
`void` | `reset()` Resets the iterator.
`int` | `scrollRange(int amount)` Scrolls the range by `amount`.
`int` | `scrollRangeTo(Row row, int index)` Scrolls the range to a specific row.
`void` | `setAssociationConsistent(boolean isConsistent)` Sets the association-consistent flag for this row set.
`boolean` | `setCurrentRow(Row row)` Moves the iterator to the row specified by `row`.
`boolean` | `setCurrentRowAtRangeIndex(int index)` Moves the iterator to the row whose range index is `index`.
`void` | `setForwardOnly(boolean isForwardOnly)` Sets whether this row set will be forward-only or not.
`boolean` | `setMasterRowSetIterator(RowSetIterator masterRSI)` Sets the master row set iterator in a master-detail View Link.
`int` | `setRangeSize(int size)` Sets the range size for the iterator.
`int` | `setRangeStart(int start)` Sets the range position by the absolute row index specified in `start`.
`void` | `setRowValidation(boolean flag)` Sets the validation flag on this iterator.
`void` | `setWhereClauseParam(int index, java.lang.Object value)` Sets the bind value at a specified `index`.
`void` | `setWhereClauseParams(java.lang.Object[] values)` Sets bind values for the query.

Methods inherited from class oracle.jbo.server.RowSetImpl
`readXML, readXML, writeXML, writeXML`

Methods inherited from class oracle.jbo.common.RowSetHelper
`fireNavigationEvent, fireRangeRefreshed, fireRangeScrolled, fireRowDeleted, fireRowInserted, fireRowUpdated, getListeners, getName, setName`

Methods inherited from class oracle.jbo.common.PropertiesHelper
`getProperty, refreshProperty, setProperty`

Methods inherited from class oracle.jbo.common.BaseObject
`dumpState, setTraceLevel, setTraceWriter`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### mQRef

    protected ViewObjectImpl mQRef

### mViews

    protected java.util.Vector mViews

### mDefaultView

    protected ViewRowSetIteratorImpl mDefaultView

### mMasterViews

    protected java.util.Vector mMasterViews

### mUserParams

    protected java.util.Vector mUserParams

### mParamValues

    protected java.lang.Object[] mParamValues

Constructor Detail

### ViewRowSetImpl

    public ViewRowSetImpl(ViewObjectImpl vo,
                          java.lang.String name,
                          ViewRowSetIteratorImpl masterRSI)

  Constructs a new secondary (non-default) view row set.
  Parameters:
    `vo` - the View Object to which this view row set belongs.
    `name` - name to be given to this view row set. If `null`, the view row set is assigned the default row set name, which is the View Object's name, plus "_RowSet".
    `masterRSI` - the master row set iterator if this view row set will be detail in a master-detail relationship. `null` otherwise.

Method Detail

### isDefaultRS

    public boolean isDefaultRS()

  Internal: Applications should not use this method.

  Indicates whether this row set is the default row set for the View Object.

  Returns:
    indicates whether this row set is the default row set for the View Object.

### close

    protected void close()

  Closes the view row set.

  It closes all row set iterators, removes itself from all master row set iterators, and possibly remove the query collection from the query collection list.

### execute

    public void execute(boolean forceFlag,
                        boolean notifyFlag)

  Executes the query.

  `forceFlag` controls whether a new query collection should be force-created or not. If true, the query collection list is not consulted and a new query collection is created. If false, we check the query collection list to see if one with the key exists. If so, we reuse the existing one.

  If `forceFlag` is true, the application may see a different set of rows than before, depending on the where-clause and data modifications performed by this application or other users.

  See `ViewObjectImpl.executeQuery` for explanation.

  Parameters:
    `forceFlag` - indicates whether to force-create the query collection.
    `notifyFlag` - indicates whether to send notification or not. If true, each row set iterator will fire a range refreshed event.
  See Also:
    `ViewObjectImpl.executeQuery()`

### executeQuery

    public void executeQuery()

  Executes the query.

  See `ViewObjectImpl.executeQuery` for details.

  Specified by:
    executeQuery in interface RowSet
  See Also:
    `ViewObjectImpl.executeQuery()`

### createRowSetIterator

    public RowSetIterator createRowSetIterator(java.lang.String name)

  Creates and returns a new row set iterator on this row set.
  Specified by:
    createRowSetIterator in interface RowSet
  Parameters:
    `name` - the name of the new row set iterator.
  Returns:
    the new row set iterator.

### isExecuted

    public boolean isExecuted()

  Indicates whether the row set has been executed or not.
  Specified by:
    isExecuted in interface RowSet
  Returns:
    true if the row set has been executed.

### getQueryCollection

    public final QueryCollection getQueryCollection()

  Internal: Applications should not use this method.

  Returns the query collection for this row set.

  Returns:
    the QueryCollection for this row set.

### getDefaultRowSetIterator

    public ViewRowSetIteratorImpl getDefaultRowSetIterator()

  Returns the default `ViewRowSetIteratorImpl`.

  The default row set iterator has the same name as this row set object.

  Returns:
    the default row set iterator.

### addListener

    public void addListener(java.lang.Object listener)

  Adds an event listener to this object.

  `listener` should implement the `RowSetListener` interface.

  Overrides:
    addListener in class RowSetHelper
  Parameters:
    `listener` - the `RowSetListener` registering interest in this object's events.

### removeListener

    public void removeListener(java.lang.Object listener)

  Removes an event listener to this object from the listener list.

  `listener` should implement the `RowSetListener` interface.

  Overrides:
    removeListener in class RowSetHelper
  Parameters:
    `listener` - the `RowSetListener` to be removed.

### getMasterViewRowSetIterators

    public java.util.Vector getMasterViewRowSetIterators()

  Returns a list of all master row set iterators for this row set.
  Returns:
    a list of all master row set iterators for this row set.

### setMasterRowSetIterator

    public boolean setMasterRowSetIterator(RowSetIterator masterRSI)

  Sets the master row set iterator in a master-detail View Link.

  See `ViewObjectImpl.setMasterRowSetIterator` for details.

  Specified by:
    setMasterRowSetIterator in interface RowSet
  Parameters:
    `masterRSI` - master row set iterator.
  Returns:
    indicates whether the master row set iterator was successfully set or not.
  See Also:
    `ViewObjectImpl.setMasterRowSetIterator(RowSetIterator)`

### removeMasterRowSetIterator

    public boolean removeMasterRowSetIterator(RowSetIterator masterRSI)

  Removes the master row set iterator in a master-detail View Link.

  See `ViewObjectImpl.removeMasterRowSetIterator` for details.

  Specified by:
    removeMasterRowSetIterator in interface RowSet
  Parameters:
    `masterRSI` - master row set iterator to remove.
  Returns:
    indicates whether the master row set iterator was successfully removed or not.
  See Also:
    `ViewObjectImpl.removeMasterRowSetIterator(RowSetIterator)`

### isDirty

    public boolean isDirty()

  Indicates whether data modifications have been performed since the last database post through this row set.
  Returns:
    flag indicating whether the row set is dirty.

### isNotifiedRefresh

    protected boolean isNotifiedRefresh()

  Indicates whether row set refresh event has been notified to the row set's listeners or not.
  Returns:
    flag indicating whether refresh was notified or not.

### makeRowCopy

    public ViewRowImpl makeRowCopy(ViewRowImpl vr)

### insertRowAt

    public void insertRowAt(int index,
                            Row row)

  Inserts a view row at an absolute row index specified by `index`.

  An absolute row index is a row index in the entire row set. It starts at 0.

  Parameters:
    `index` - absolute row index at which the row is to be inserted.
    `row` - the row to inserted.

### removeRowAt

    public void removeRowAt(int index)

  Removes a view row at an absolute row index specified by `index`.

  An absolute row index is a row index in the entire row set. It starts at 0.

  Parameters:
    `index` - absolute row index of the row to remove.

### createRow

    public Row createRow()

  Creates a new view row.

  See `ViewObjectImpl.createRow` for details.

  Returns:
    the new view row.
  See Also:
    `ViewObjectImpl.createRow()`

### getRowCount

    public int getRowCount()

  Returns the total number of rows in this row set.

  See `ViewObjectImpl.getRowCount` for details.

  Returns:
    the number of rows in the row set.
  See Also:
    `ViewObjectImpl.getRowCount()`

### getEstimatedRowCount

    public long getEstimatedRowCount()

  Returns an estimated number of rows in this row set.

  See `ViewObjectImpl.getEstimatedRowCount` for details.

  Specified by:
    getEstimatedRowCount in interface RowSet
  Returns:
    an estimated number of rows in the row set.
  See Also:
    `ViewObjectImpl.getEstimatedRowCount()`

### getMasterRowSetIterators

    public RowSetIterator[] getMasterRowSetIterators()

  Returns an array of all master row set iterators for this row set.
  Specified by:
    getMasterRowSetIterators in interface RowSet
  Returns:
    an array of all master row set iterators for this row set.

### getApplicationModule

    public ApplicationModule getApplicationModule()

  Returns the application module to which this row set's View Object belongs.
  Specified by:
    getApplicationModule in interface RowSet
  Returns:
    the ApplicationModule this View Object belongs to.

### getViewObject

    public ViewObject getViewObject()

  Returns this row set's View Object.
  Specified by:
    getViewObject in interface RowSet
  Returns:
    the `ViewObject` this row set belongs to.

### getRowSet

    public RowSet getRowSet()

  Implements `RowSetIterator.getRowSet`.
  Returns:
    the row set interface of this object.

### getRowSetIterator

    public RowSetIterator getRowSetIterator()

  Returns the row set iterator interface of this object.
  Returns:
    the row set interface of this object.

### setRangeSize

    public int setRangeSize(int size)

  Sets the range size for the iterator.

  See `ViewObjectImpl.setRangeSize` for details.

  Parameters:
    `size` - the new range size.
  Returns:
    the new range size.
  See Also:
    `ViewObjectImpl.setRangeSize(int)`

### getRangeSize

    public int getRangeSize()

  Returns the range size of the iterator.

  See `ViewObjectImpl.getRangeSize` for details.

  Returns:
    the range size.
  See Also:
    `ViewObjectImpl.getRangeSize()`

### getRangeStart

    public int getRangeStart()

  Returns the absolute row index of the first row in the range.

  See `ViewObjectImpl.getRangeStart` for details.

  Returns:
    the absolute row index of the first row in the range.
  See Also:
    `ViewObjectImpl.getRangeStart()`

### setRangeStart

    public int setRangeStart(int start)

  Sets the range position by the absolute row index specified in `start`.

  See `ViewObjectImpl.setRangeStart` for details.

  Parameters:
    `start` - absolute row index of the row that should be positioned as the first row of the range. An absolute row index is a row index in the entire row set. It starts at 0.
  Returns:
    the absolute row index of the first row of the range.
  See Also:
    `ViewObjectImpl.setRangeStart(int)`

### scrollRange

    public int scrollRange(int amount)

  Scrolls the range by `amount`.

  See `ViewObjectImpl.scrollRange` for details.

  Parameters:
    `amount` - the number of rows to scroll.
  Returns:
    the actual number of rows scrolled. A negative number indicates that the scroll was scrolled upward.
  See Also:
    `ViewObjectImpl.scrollRange(int)`

### scrollRangeTo

    public int scrollRangeTo(Row row,
                             int index)

  Scrolls the range to a specific row.

  See `ViewObjectImpl.scrollRangeTo` for details.

  Parameters:
    `row` - the row to scroll the range to.
    `index` - the range index to position the row at.
  Returns:
    the actual number of rows scrolled. A negative number indicates that the scroll was scrolled upward.
  See Also:
    `ViewObjectImpl.scrollRangeTo(Row, int)`

### getAllRowsInRange

    public Row[] getAllRowsInRange()

  Returns an array of all rows in the iterator's range.

  See `ViewObjectImpl.getAllRowsInRange` for details.

  Returns:
    an array of view rows.
  See Also:
    `ViewObjectImpl.getAllRowsInRange()`

### enumerateRowsInRange

    public java.util.Enumeration enumerateRowsInRange()

  Creates and returns an enumerator of the rows in the range.
  Returns:
    an enumerator.

### getFetchedRowCount

    public int getFetchedRowCount()

  Returns the number of rows fetched from the JDBC `RestultSet`.

  Returns:
    the number of rows fetched so far.

### isRangeAtBottom

    public boolean isRangeAtBottom()

  Indicates whether the iterator range contains the last row of the row set.

  See `ViewObjectImpl.isRangeAtBottom` for details.

  Returns:
    `true` if the range contains the last row, `false` if not.
  See Also:
    `ViewObjectImpl.isRangeAtBottom()`

### isRangeAtTop

    public boolean isRangeAtTop()

  Indicates whether the iterator range contains the first row of the row set.

  See `ViewObjectImpl.isRangeAtTop` for details.

  Returns:
    `true` if the range contains the first row, `false` if not.
  See Also:
    `ViewObjectImpl.isRangeAtTop()`

### insertRow

    public void insertRow(Row row)

  Inserts the row into the row set.

  This method does change currency. It sets the inserted row to be the current row (for the RSI through which the row is inserted). From an events standpoint, `insertRow` will generate two events: `insert` followed by `navigated`.

  See `ViewObjectImpl.insertRow` for details.

  Parameters:
    `row` - the view row to insert.
  See Also:
    `ViewObjectImpl.insertRow(Row)`

### insertRowAtRangeIndex

    public void insertRowAtRangeIndex(int index,
                                      Row row)

  Inserts the row into the row set at the specified range index. Using this method does not change currency.

  See `ViewObjectImpl.insertRowAtRangeIndex` for details.

  Parameters:
    `index` - the range index into which the row is to be inserted.
    `row` - the view row to insert.
  See Also:
    `ViewObjectImpl.insertRowAtRangeIndex(int, Row)`

### getRowFromHandle

    public Row getRowFromHandle(java.lang.Object rowHandle)

  Internal: Applications should not use this method.

  Returns the row with a handle specified by `hdl`.

  See `ViewObjectImpl#getRowFromHandle(Object)` for details.

  Parameters:
    `rowHandle` - the row handle.
  Returns:
    the row identified by the row handle.
  See Also:
    `ViewObjectImpl.getRowFromHandle(Object)`

### removeRowHandle

    public void removeRowHandle(java.lang.Object rowHandle)

  Internal: Applications should not use this method.

  Removes the row handle from the row handle hash table.

  See `ViewObjectImpl.removeRowHandle` for details.

  Parameters:
    `rowHandle` - the row handle to remove.
  See Also:
    `ViewObjectImpl.removeRowHandle(Object)`

### getRow

    public Row getRow(Key key)

  Returns the first row whose key matches `key`.

  See `ViewObjectImpl.getRow` for details.

  Parameters:
    `key` - key to match.
  Returns:
    the first matching row. `null` if no match.
  See Also:
    `ViewObjectImpl.getRow(Key)`

### getRangeIndexOf

    public int getRangeIndexOf(Row row)

  Returns the range index of the row specified by `row`.

  See `ViewObjectImpl.getRangeIndexOf` for details.

  Parameters:
    `row` - the row in question.
  Returns:
    the range index of the row. -1 if the row is not within the range.
  See Also:
    `ViewObjectImpl.getRangeIndexOf(Row)`

### removeCurrentRow

    public void removeCurrentRow()

  Removes the current row.

  See `ViewObjectImpl.removeCurrentRow` for details.

  See Also:
    `ViewObjectImpl.removeCurrentRow()`

### setRowValidation

    public void setRowValidation(boolean flag)

  Description copied from interface: RowIterator
  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.
  Tags copied from interface: RowIterator
  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.

### setCurrentRow

    public boolean setCurrentRow(Row row)

  Moves the iterator to the row specified by `row`.

  See `ViewObjectImpl.setCurrentRow` for details.

  Returns:
    indicates whether the current row was successfully set or not.
  See Also:
    `ViewObjectImpl.setCurrentRow(Row)`

### setCurrentRowAtRangeIndex

    public boolean setCurrentRowAtRangeIndex(int index)

  Moves the iterator to the row whose range index is `index`.

  See `ViewObjectImpl.setCurrentRowAtRangeIndex` for details.

  Parameters:
    `index` - range index to which to move the current row.
  Returns:
    indicates whether the current row was successfully set or not.
  See Also:
    `ViewObjectImpl.setCurrentRowAtRangeIndex(int)`

### getCurrentRow

    public Row getCurrentRow()

  Returns the current row of the iterator.

  See `ViewObjectImpl.getCurrentRow` for details.

  Returns:
    the current row. `null` if no current row.
  See Also:
    `ViewObjectImpl.getCurrentRow()`

### getCurrentRowIndex

    public int getCurrentRowIndex()

  Returns the absolute row index of the current row in the row set.

  See `ViewObjectImpl.getCurrentRowIndex` for details.

  Returns:
    the absolute row index of the current row. -1 if the row set has not be executed, or the iterator has just been `reset`.
  See Also:
    `ViewObjectImpl.getCurrentRowIndex()`

### getCurrentRowSlot

    public int getCurrentRowSlot()

  Returns the current row slot status.

  See `ViewObjectImpl.getCurrentRowSlot` for details.

  Returns:
    one of the slot status constants listed above.
  See Also:
    `ViewObjectImpl.getCurrentRowSlot()`

### hasNext

    public boolean hasNext()

  Indicates whether the iterator has a next row or not.

  See `ViewObjectImpl.hasNext` for details.

  Returns:
    `true` if there is a next row, `false` if not.
  See Also:
    `ViewObjectImpl.hasNext()`

### hasPrevious

    public boolean hasPrevious()

  Indicates whether the iterator has a previous row or not.

  See `ViewObjectImpl.hasPrevious` for details.

  Returns:
    `true` if there is a previous row, `false` if not.
  See Also:
    `ViewObjectImpl.hasPrevious()`

### first

    public Row first()

  Navigates to the first row in the row set.

  See `ViewObjectImpl.first` for details.

  Returns:
    the first row, which becomes the current row for the iterator. `null` if the row set has no rows.
  See Also:
    `ViewObjectImpl.first()`

### last

    public Row last()

  Navigates to the last row in the row set.

  See `ViewObjectImpl.last` for details.

  Returns:
    the last row, which becomes the current row for the iterator. `null` if the row set has no rows.
  See Also:
    `ViewObjectImpl.last()`

### next

    public Row next()

  Navigates to the next row in the row set.

  See `ViewObjectImpl.next` for details.

  Returns:
    the next row, which becomes the current row for the iterator. `null` if no next row. If no next row, the current row is not moved.
  See Also:
    `ViewObjectImpl.next()`

### previous

    public Row previous()

  Navigates to the previous row in the row set.

  See `ViewObjectImpl.previous` for details.

  Returns:
    the previous row, which becomes the current row for the iterator. `null` if no previous row. If no previous row, the current row is not moved.
  See Also:
    `ViewObjectImpl.previous()`

### reset

    public void reset()

  Resets the iterator.

  See `ViewObjectImpl.reset` for details.

  See Also:
    `ViewObjectImpl.reset()`

### getDetailRowSets

    public RowSet[] getDetailRowSets()

  Returns an array of all detail row sets for this row set iterator. See `ViewObjectImpl.getDetailRowSets` for details.
  Returns:
    an array of all detail row sets for this row set iterator.
  See Also:
    `ViewObjectImpl.getDetailRowSets()`

### createDetailRowSet

    public RowSet createDetailRowSet(java.lang.String rsName,
                                     java.lang.String linkDefName)

  Creates and returns an new detail row set for this row set iterator.

  See `ViewObjectImpl.createDetailRowSet` for details.

  Parameters:
    `rsName` - the name of the row set to be assigned to the new detail row set.
    `linkDefName` - identifies the View Link definition that defines the master-detail relationship between this row set iterator and the new detail row set.
  Returns:
    the new detail row set.
  See Also:
    `ViewObjectImpl.createDetailRowSet(String, String)`

### setForwardOnly

    public void setForwardOnly(boolean isForwardOnly)

  Sets whether this row set will be forward-only or not.

  See `ViewObjectImpl.setForwardOnly` for details.

  Specified by:
    setForwardOnly in interface RowSet
  Parameters:
    `isForwardOnly` - indicates whether the row set should be forward-only or not.
  See Also:
    `ViewObjectImpl.setForwardOnly(boolean)`

### isForwardOnly

    public boolean isForwardOnly()

  Indicates whether this row set is forward-only or not.

  See `ViewObjectImpl.isForwardOnly` for details.

  Specified by:
    isForwardOnly in interface RowSet
  Returns:
    indicates whether this row set is forward-only or not.
  See Also:
    `ViewObjectImpl.isForwardOnly()`

### setAssociationConsistent

    public void setAssociationConsistent(boolean isConsistent)

  Sets the association-consistent flag for this row set.

  See `ViewObjectImpl.setAssociationConsistent` for details.

  Specified by:
    setAssociationConsistent in interface RowSet
  Parameters:
    `isConsistent` - indicates whether association-consistency should be on or not.
  See Also:
    `ViewObjectImpl.setAssociationConsistent(boolean)`

### isAssociationConsistent

    public boolean isAssociationConsistent()

  Returns the association-consistent flag for this row set.

  See `ViewObjectImpl.isAssociationConsistent` for details.

  Specified by:
    isAssociationConsistent in interface RowSet
  Returns:
    the association-consistent flag for this row set.
  See Also:
    `ViewObjectImpl.isAssociationConsistent()`

### getRowCountInRange

    public int getRowCountInRange()

  Returns the actual number of rows in the range.

  See `ViewObjectImpl.getRowCountInRange` for details.

  Returns:
    the actual number of rows in the range.
  See Also:
    `ViewObjectImpl.getRowCountInRange()`

### setWhereClauseParams

    public void setWhereClauseParams(java.lang.Object[] values)

  Sets bind values for the query.

  See `ViewObjectImpl.setWhereClauseParams` for details.

  Specified by:
    setWhereClauseParams in interface RowSet
  Parameters:
    `values` - an array of bind values.
  See Also:
    `ViewObjectImpl.setWhereClauseParams(Object[])`

### setWhereClauseParam

    public void setWhereClauseParam(int index,
                                    java.lang.Object value)

  Sets the bind value at a specified `index`.

  See `ViewObjectImpl.setWhereClauseParam` for details.

  Specified by:
    setWhereClauseParam in interface RowSet
  Parameters:
    `index` - index of the bind value.
    `value` - the bind value.
  See Also:
    `ViewObjectImpl.setWhereClauseParam(int, Object)`

### getWhereClauseParams

    public java.lang.Object[] getWhereClauseParams()

  Returns an array of bind values currently specified for the query. See `ViewObjectImpl.getWhereClauseParams` for details.
  Specified by:
    getWhereClauseParams in interface RowSet
  Returns:
    an array of bind values.
  See Also:
    `ViewObjectImpl.getWhereClauseParams()`

### getParametersAsStorageTypes

    public java.lang.Object[] getParametersAsStorageTypes()

  Returns an array of bind values to be used for binding to the query.

  See `ViewObjectImpl.getParametersAsStorageTypes` for details.

  Returns:
    an array of the bind values as torage types. `null` if there is no bind value to return.
  See Also:
    `ViewObjectImpl.getParametersAsStorageTypes()`

### getRow

    public Row getRow(int index)

  Returns the row at absolute row index of `index`.

  An absolute row index is a row index in the entire row set. It starts at 0.

  Parameters:
    `index` - the absolute row index.
  Returns:
    the row. `null` if the index is invalid.

### getRowAtRangeIndex

    public Row getRowAtRangeIndex(int index)

  Returns the row at range index `index`.

  Range index is a 0 based index within the range.

  Parameters:
    `index` - range index of the row.
  Returns:
    the row at the specified range index. `null` if the index is outside the range, or if there is no row at the specified index.

### dumpViewRowCache

    public static void dumpViewRowCache(RowSetIterator rsi,
                                        java.io.Writer out)

  Internal: Applications should not use this method.

  Debug routine that prints the view row cache content for the query collection.

  View row cache manages mapping between entity rows and view rows. If a View Object consists of entities A, B, C, each view row consists of three entity rows (from A, B, and C, respectively). For this, the view row cache manages three hash tables, each mapping the entity row to view rows that use it as a constituent entity row.

  This method dumps the content of that mapping to `out`.

  Parameters:
    `rsi` - the row set iterator whose view row cache is to be dumped.
    `out` - where to dump the output.

### getRows

    protected Row[] getRows(EntityImpl entity)

  Returns an array of view rows that use the specified entity row.

  A view row consists of entity rows. This method returns all view rows (so far retrieved) that use the entity row specified by `entity`

  Returns:
    an arry of rows that use `entity`. `null` if no view row uses `entity`.

### findByKey

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

  Finds and returns view rows that match the key specified in `key`.

  See `ViewObjectImpl.findByKey` for details.

  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)

  Description copied from interface: RowIterator
  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)

  Description copied from interface: RowIterator
  Finds and returns view rows that use the entity row, identified by the entity row handle, `eRowHandle`.

  Tags copied from interface: RowIterator
  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.

### getParameters

    public java.lang.Object[] getParameters(boolean nullValueFlag)

  Returns an array of bind values to be used for binding to the query.

  This array is a union of the following set of bind values:

  - Bind values supplied by the application (`setWhereClauseParam`).
  - Bind values to be used for where-clause expressions built from View Links. Values are supplied by the master row.

  This method differs from `getParametersAsStorageTypes` in that, if the bind values are domain instanes, this method returns them as is, while `getParametersAsStorageTypes` returns the actual data out of the domain.

  Returns:
    an array of the bind values. `null` if there is no bind value to return.

### getProperties

    public java.util.Hashtable getProperties()

  Retrieves all properties. It is a union of properties on this View Object and those on the view definition.
  Overrides:
    getProperties in class PropertiesHelper
  Returns:
    hash table (name-value pairs) of all properties.

### printActiveObjsTab

    public void printActiveObjsTab(java.io.PrintWriter pw)

### printRUChain

    public void printRUChain(java.io.PrintWriter pw)

### printColl

    public void printColl(java.io.PrintWriter pw,
                          int printFlag)

### getCollMgmtInfo

    public int[] getCollMgmtInfo()

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