Oracle9i Business Components for Java API Reference
Oracle9i Jdeveloper (9.0.4)
B10391-01


oracle.jbo.common.ws
Class WSRowSetImpl

java.lang.Object
  |
  +--oracle.jbo.common.ws.WSObject
        |
        +--oracle.jbo.common.ws.WSRowSetIteratorBase
              |
              +--oracle.jbo.common.ws.WSRowSetImpl
All Implemented Interfaces:
NavigatableRowIterator, Properties, RowIterator, RowSet, RowSetIterator, java.io.Serializable, XMLInterface

public class WSRowSetImpl
extends WSRowSetIteratorBase
implements RowSet, java.io.Serializable
See Also:
Serialized Form

Field Summary

 

Fields inherited from interface oracle.jbo.RowSet
FORWARD_ONLY, RANGE_PAGING, RANGE_PAGING_AUTO_POST, SCROLLABLE

 

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

 

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

 

Method Summary
 void closeRowSet()
          Closes the row set.
 void closeRowSetIterator()
          Closes this row set iterator.
 RowSet createDetailRowSet(java.lang.String rsName, java.lang.String linkDefName)
          Creates a detail Row Set.
 RowSetIterator createRowSetIterator(java.lang.String name)
          Creates an iterator for the row set.
 void executeQuery()
          Executes the View Object's query.
 RowSetIterator findRowSetIterator(java.lang.String name)
          Gets the named Row Set Iterator that was created at runtime for this Row Set.
 WSRowSetIteratorImpl findWSRowSetIterator(java.lang.String name)
           
 byte getAccessMode()
           
 ApplicationModule getApplicationModule()
          Gets the row set's Application Module.
 RowSet[] getDetailRowSets()
          Gets an array of detail Row Sets for which this Iterator is the master.
 long getEstimatedRowCount()
          Counts the number of rows in the collection defined by the View Object's query.
 java.lang.Object getImplObject()
           
 int getIterMode()
          Gets the current iteration mode.
 RowSetIterator[] getMasterRowSetIterators()
          Return all controlling masters of this row set.
 WSObject getParent()
           
 java.util.Hashtable getProperties()
          Gets the table of properties.
 java.lang.Object getProperty(java.lang.String hintName)
          Retrieves the specified property, if it exists.
 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.
 RowSet getRowSet()
          Gets the Row Set that this Iterator belongs to.
 RowSetIterator[] getRowSetIterators()
          Gets all Row Set Iterators that belong to this row set.
 java.lang.Object getSyncLock()
          Gets the locking object for this Row Set Iterator.
 ViewObject getViewObject()
          Gets the View Object that contains this Row Set.
 java.lang.Object[] getWhereClauseParams()
          Gets the bind variable values to be used with the View Object's where-clause.
 boolean isAssociationConsistent()
          Tests if association-consistent mode is on.
 boolean isExecuted()
          Returns true if the current ViewObject's query has been executed for this Row Set.
 boolean isFetchComplete()
          Tests if the query result set has been fetched to the end.
 boolean isForwardOnly()
          Tests if the row set is constrained to sequential access.
 boolean isMaxFetchSizeExceeded()
          Tests if the query result has been fetched to the end and the end was reached due to hitting the maxFetchSize limit
 boolean isOnLine()
           
 void readXML(Element elem, int depthCount)
           
 void readXML(Element elem, int depthCount, XSLStylesheet xslt)
           
 void refreshDataModel()
           
 java.lang.Object refreshProperty(java.lang.String hintName)
          Retrieves the specified property, if it exists.
 boolean removeMasterRowSetIterator(RowSetIterator masterRS)
          Removes a master row set iterator.
 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.
 void setAccessMode(byte mode)
          Constrains the row access based on the following settings:
 void setAssociationConsistent(boolean isAssociationConsistent)
          Sets the association-consistent flag for this row set.
 void setForwardOnly(boolean isForwardOnly)
          Constrains the row set to sequential access.
 void setImplObject(java.lang.Object o)
           
 void setIterMode(int mode)
          Sets the iteration mode for this Row Iterator.
 boolean setMasterRowSetIterator(RowSetIterator masterRS)
          Sets the master iterator.
 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.
 void setWhereClauseParam(int index, java.lang.Object value)
          Specifies a single bind variable value to use with the View Object's where-clause.
 void setWhereClauseParams(java.lang.Object[] values)
          Specifies the bind variable values to use with the View Object's where-clause.
 Node writeXML(int depthCount, long options)
          Renders data in a canonical XML-format.
 Node writeXML(int depthCount, long options, XSLStylesheet xslt)
           
 Node writeXML(long options, com.sun.java.util.collections.HashMap voAttrMap)
          Renders data in a canonical XML-format.
 Node writeXML(long options, com.sun.java.util.collections.HashMap voAttrMap, XSLStylesheet xslt)
           

 

Methods inherited from class oracle.jbo.common.ws.WSRowSetIteratorBase
addListener, addManagementListener, createAndInitRow, createKey, createRow, enumerateRowsInRange, findByEntity, findByKey, first, getAllRowsInRange, getCurrentRow, getCurrentRowIndex, getCurrentRowSlot, getEstimatedRangePageCount, getFetchedRowCount, getName, getNextRangeSet, getPreviousRangeSet, getRangeIndexOf, getRow, getRowAtRangeIndex, getRowCount, getRowCountInRange, hasNext, hasPrevious, insertRow, insertRowAtRangeIndex, isConnected, isNameGenerated, isRangeAtBottom, isRangeAtTop, last, next, previous, removeCurrentRow, removeCurrentRowFromCollection,

 

Methods inherited from class oracle.jbo.common.ws.WSObject
getFullName, getId

 

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

 

Methods inherited from interface oracle.jbo.RowSet
getName

 

Methods inherited from interface oracle.jbo.RowSetIterator
addManagementListener, getEstimatedRangePageCount, getNextRangeSet, getPreviousRangeSet, isNameGenerated, removeManagementListener, scrollToRangePage

 

Methods inherited from interface oracle.jbo.NavigatableRowIterator
addListener, removeListener

 

Methods inherited from interface oracle.jbo.RowIterator
createAndInitRow, createKey, createRow, enumerateRowsInRange, findByEntity, findByKey, first, getAllRowsInRange, getCurrentRow, getCurrentRowIndex, getCurrentRowSlot, getFetchedRowCount, getRangeIndexOf, getRow, getRowAtRangeIndex, getRowCount, getRowCountInRange, hasNext, hasPrevious, insertRow, insertRowAtRangeIndex, isRangeAtBottom, isRangeAtTop, last, next, previous, removeCurrentRow, removeCurrentRowFromCollection, reset, setCurrentRow, setCurrentRowAtRangeIndex

 

Method Detail

isOnLine

public boolean isOnLine()

getParent

public WSObject getParent()
Specified by:
getParent in class WSObject

getImplObject

public java.lang.Object getImplObject()
Specified by:
getImplObject in class WSObject

setImplObject

public void setImplObject(java.lang.Object o)
Specified by:
setImplObject in class WSObject

setMasterRowSetIterator

public boolean setMasterRowSetIterator(RowSetIterator masterRS)
Description copied from interface: RowSet
Sets the master iterator.
Specified by:
setMasterRowSetIterator in interface RowSet
Parameters:
masterRS - a master row set iterator.
Returns:
true if the operation succeeded.

getViewObject

public ViewObject getViewObject()
Description copied from interface: RowSet
Gets the View Object that contains this Row Set.
Specified by:
getViewObject in interface RowSet
Returns:
the parent View Object.

setWhereClauseParams

public void setWhereClauseParams(java.lang.Object[] values)
Description copied from interface: RowSet
Specifies the bind variable values to use with the View Object's where-clause.

Setting the where-clause bind values through this method does not automatically execute the query. You must call RowSet.executeQuery() to apply the new bind values.

Specified by:
setWhereClauseParams in interface RowSet
Parameters:
values - an array of bind values. If the View Object is using the JDBC style bindings ("?" for bind variable), values[n] is bound to the bind variable that appears in the n-th order (0 based indexing). If the View Object is using the Oracle style bindings (":1", ":2", etc. for bind variable), values[n] is bound to the bind variable :(n+1), i.e., values[0] is bound to :1, values[1] is bound to :2, etc.

setWhereClauseParam

public void setWhereClauseParam(int index,
                                java.lang.Object value)
Description copied from interface: RowSet
Specifies a single bind variable value to use with the View Object's where-clause.

Setting the where-clause bind values through this method does not automatically execute the query. You must call RowSet.executeQuery() to apply the new bind values.

Specified by:
setWhereClauseParam in interface RowSet
Parameters:
index - the index identifying the bind variable. If the View Object is using the JDBC style bindings ("?" for bind variable), value is bound to the bind variable that appears in the index-th order (0 based indexing). If the View Object is using the Oracle style bindings (":1", ":2", etc. for bind variable), value is bound to the bind variable :(index+1). If index is 0, value is bound to :1. If index is 1, value is bound to :2.
value - the bind variable value.

getWhereClauseParams

public java.lang.Object[] getWhereClauseParams()
Description copied from interface: RowSet
Gets the bind variable values to be used with the View Object's where-clause.
Specified by:
getWhereClauseParams in interface RowSet
Returns:
an array of bind-variable values.

executeQuery

public void executeQuery()
Description copied from interface: RowSet
Executes the View Object's query.
Specified by:
executeQuery in interface RowSet

refreshDataModel

public void refreshDataModel()

isExecuted

public boolean isExecuted()
Description copied from interface: RowSet
Returns true if the current ViewObject's query has been executed for this Row Set.
Specified by:
isExecuted in interface RowSet
Returns:
true if query has been executed.

createRowSetIterator

public RowSetIterator createRowSetIterator(java.lang.String name)
Description copied from interface: RowSet
Creates an iterator for the row set.
Specified by:
createRowSetIterator in interface RowSet
Parameters:
name - the name to be given to the iterator.
Returns:
an iterator for this.

getRowSetIterators

public RowSetIterator[] getRowSetIterators()
Description copied from interface: RowSet
Gets all Row Set Iterators that belong to this row set.
Specified by:
getRowSetIterators in interface RowSet
Returns:
the array of Row Set Iterators.

findRowSetIterator

public RowSetIterator findRowSetIterator(java.lang.String name)
Description copied from interface: RowSet
Gets the named Row Set Iterator that was created at runtime for this Row Set.
Specified by:
findRowSetIterator in interface RowSet
Parameters:
name - a Row Set Iterator name. If null, it returns the the Row Set.
Returns:
the Row Set Iterator. null if the named Row Set Iterator is not not found.

findWSRowSetIterator

public WSRowSetIteratorImpl findWSRowSetIterator(java.lang.String name)

removeMasterRowSetIterator

public boolean removeMasterRowSetIterator(RowSetIterator masterRS)
Description copied from interface: RowSet
Removes a master row set iterator.
Specified by:
removeMasterRowSetIterator in interface RowSet
Returns:
true if masterRS was found, false otherwise.

getMasterRowSetIterators

public RowSetIterator[] getMasterRowSetIterators()
Description copied from interface: RowSet
Return all controlling masters of this row set.
Specified by:
getMasterRowSetIterators in interface RowSet
Returns:
An array of master iterators.

getApplicationModule

public ApplicationModule getApplicationModule()
Description copied from interface: RowSet
Gets the row set's Application Module.
Specified by:
getApplicationModule in interface RowSet
Returns:
the ApplicationModule to which this belongs.

getEstimatedRowCount

public long getEstimatedRowCount()
Description copied from interface: RowSet
Counts the number of rows in the collection defined by the View Object's query.

This number may fluxuate when the View Object is syncronized with its Entity Object.

Specified by:
getEstimatedRowCount in interface RowSet
Returns:
the number of rows.

isForwardOnly

public boolean isForwardOnly()
Description copied from interface: RowSet
Tests if the row set is constrained to sequential access.
Specified by:
isForwardOnly in interface RowSet
Returns:
true if the row set is restricted to forward-only processing.
See Also:
RowSet.setForwardOnly(boolean)

setForwardOnly

public void setForwardOnly(boolean isForwardOnly)
Description copied from interface: RowSet
Constrains the row set to sequential access.

When set to true, a row preceeding the current row cannot be designated as the new current row. This restriction allows performance to be optimized.

Specified by:
setForwardOnly in interface RowSet
Parameters:
isForwardOnly - true restricts the row set to forward-only processing, false otherwise.

getAccessMode

public byte getAccessMode()
Specified by:
getAccessMode in interface RowSet
Returns:
Returns the current access mode for this RowSet.
See Also:
RowSet.setAccessMode(byte)

setAccessMode

public void setAccessMode(byte mode)
Description copied from interface: RowSet
Constrains the row access based on the following settings:
  • SCROLLABLE - if this RowSet should fetch rows and cache the ViewRows in a collection. This is the most flexible mode for accessing rows and working with a RowSet.
  • FORWARD_ONLY - if this RowSet should only provide sequential access to Rows in its collection. The iterators on this RowSet will not allow scrolling back.
  • RANGE_PAGING - if this RowSet should fetch rows in ranges (set using setRangeSize()), such that on scroll to the the next range or to fetch a row that's not in the current range, it's fetched back from the database using ROWNUM query and the row at the desired index is placed as the first row in the current range.

    New rows inserted in this mode will be inserted at the beginning of the rowset to maintain their row indices if the new-rows are scrolled out of the current set.

Switching access modes for a rowset will not take effect until the next explicit call to executeQuery.

Specified by:
setAccessMode in interface RowSet
Parameters:
mode - One of the three enumerated values SCROLLABLE, FORWARD_ONLY, RANGE_PAGING

setAssociationConsistent

public void setAssociationConsistent(boolean isAssociationConsistent)
Description copied from interface: RowSet
Sets the association-consistent flag for this row set.

Association-consistent mode allows the user to see data that includes changes not yet posted to database, but at the cost of degraded performance.

When association-consistency is on the row set will reflect rows with modified foreign keys, newly created rows, and removed (deleted) rows. When association-consistency is off the user must post pending changes to database to make them visible.

This method is relevant only if this row set was one returned from a call to an entity association accessor.

Specified by:
setAssociationConsistent in interface RowSet

isAssociationConsistent

public boolean isAssociationConsistent()
Description copied from interface: RowSet
Tests if association-consistent mode is on.
Specified by:
isAssociationConsistent in interface RowSet
Returns:
true if un-posted changes are visible, false otherwise.
See Also:
RowSet.setAssociationConsistent(boolean)

closeRowSet

public void closeRowSet()
Description copied from interface: RowSet
Closes the row set. It closes all row set iterators that belong to this row set. If this row set is a detail row set in a master-detail relationship, closeRowSet removes this row set from the master row set iterator.
Specified by:
closeRowSet in interface RowSet

isFetchComplete

public boolean isFetchComplete()
Description copied from interface: RowSet
Tests if the query result set has been fetched to the end.
Specified by:
isFetchComplete in interface RowSet
Returns:
true if the result set has been fetched to the end.

isMaxFetchSizeExceeded

public boolean isMaxFetchSizeExceeded()
Description copied from interface: RowSet
Tests if the query result has been fetched to the end and the end was reached due to hitting the maxFetchSize limit
Specified by:
isMaxFetchSizeExceeded in interface RowSet
Returns:
true if the result set has been fetched to the maxFetchSize limit and there are still more rows in the database.

getProperty

public java.lang.Object getProperty(java.lang.String hintName)
Description copied from interface: Properties
Retrieves the specified property, if it exists.
Specified by:
getProperty in interface Properties
Parameters:
hintName - Property name.
Returns:
the value of the property, if any, otherwise null.

refreshProperty

public java.lang.Object refreshProperty(java.lang.String hintName)
Description copied from interface: Properties
Retrieves the specified property, if it exists. If the application running in a 3 tier environment, it retrieves the property from the middle-tier server, refreshing the value on the client side. If the application is running in a 2 tier environment, it is equivalent to getProperty.
Specified by:
refreshProperty in interface Properties
Parameters:
hintName - Property name.
Returns:
the value of the property, if any, otherwise null.

getProperties

public java.util.Hashtable getProperties()
Description copied from interface: Properties
Gets the table of properties.
Specified by:
getProperties in interface Properties
Returns:
a hashtable of properties.

writeXML

public Node writeXML(int depthCount,
                     long options)
Description copied from interface: XMLInterface
Renders data in a canonical XML-format. The classes ViewObjectImpl and ViewRowImpl implement this method to render data in XML.

Use this method whenever data is required in XML format, either to present a UI (after converting XML data into some HTTP format using a stylesheet) or to pass the data as payload for messages via JMS.

The depthcount parameter represents to what level the rendering should recurse. A depthcount of zero (0) means do not traverse any View Links while rendering. One (1) means traverse the View Links on this object but no View Links thereafter, and so on.

The options parameter represents a set of bit flags that will control the writeXML behavior. The following bit flags have been defined:

  • public static long XML_OPT_LIMIT_RANGE = 0x00000001 - Controls whether writeXML will only write rows in the range. If this flag is off, all rows in the row set will be written. If this flag is on, only rows in the current range will be written.
  • public static long XML_OPT_CHANGES_ONLY = 0x00000002 - Controls whether only changed attribute values of an entity row is written. If this is on, only the attributes whose value has been marked as "changed" will be written. If this is off, all attributes (regardless of whether the attribute value has been changed or not) will be written. This flag is relevant only when writing EntityImpl.
Specified by:
writeXML in interface XMLInterface
Parameters:
depthCount - represents to what level the rendering should recurse.
options - a set of bit flags that will control the writeXML behavior.

writeXML

public Node writeXML(int depthCount,
                     long options,
XSLStylesheet xslt)
Specified by:
writeXML in interface XMLInterface

readXML

public void readXML(Element elem,
                    int depthCount)
Specified by:
readXML in interface XMLInterface

readXML

public void readXML(Element elem,
                    int depthCount,
XSLStylesheet xslt)
Specified by:
readXML in interface XMLInterface

writeXML

public Node writeXML(long options,
                     com.sun.java.util.collections.HashMap voAttrMap)
Description copied from interface: XMLInterface
Renders data in a canonical XML-format. The classes ViewObjectImpl and ViewRowImpl implement this method to render data in XML.

Use this method whenever data is required in XML format, either to present a UI (after converting XML data into some HTTP format using a stylesheet) or to pass the data as payload for messages via JMS.

The options parameter represents a set of bit flags that will control the writeXML behavior. The following bit flags have been defined:

  • public static long XML_OPT_LIMIT_RANGE = 0x00000001 - Controls whether writeXML will only write rows in the range. If this flag is off, all rows in the row set will be written. If this flag is on, only rows in the current range will be written.
  • public static long XML_OPT_CHANGES_ONLY = 0x00000002 - Controls whether only changed attribute values of an entity row is written. If this is on, only the attributes whose value has been marked as "changed" will be written. If this is off, all attributes (regardless of whether the attribute value has been changed or not) will be written. This flag is relevant only when writing EntityImpl.

The voAttrMap parameter represents in a hashmap, the mapping between a given ViewObject's definition type and the corresponding Attributes/accessors to render. A null entry in the hashmap means, render all attributes and accessors of that viewobject type.

Specified by:
writeXML in interface XMLInterface
Parameters:
options - a set of bit flags that will control the writeXML
voAttrMap - HashMap containing Definition names of ViewObjects and an array of AttributeDef to render for a ViewObject of that definition type.

writeXML

public Node writeXML(long options,
                     com.sun.java.util.collections.HashMap voAttrMap,
XSLStylesheet xslt)
Specified by:
writeXML in interface XMLInterface

getRowSet

public RowSet getRowSet()
Description copied from interface: RowSetIterator
Gets the Row Set that this Iterator belongs to.
Specified by:
getRowSet in interface RowSetIterator
Specified by:
getRowSet in class WSRowSetIteratorBase
Returns:
the owning Row Set.

getDetailRowSets

public RowSet[] getDetailRowSets()
Description copied from interface: RowSetIterator
Gets an array of detail Row Sets for which this Iterator is the master.

In a master-detail relationship in an Application Module, the master in reality is a Row Set Iterator. (Though we often speak of master View Object, in reality, it is the Iterator behind the View Object which is playing the role of the master). Whenever the currency of this master Iterator moves, the detail Row Sets are re-executed to show related Rows.

Calling this method returns an array of Row Sets that are related to this Iterator as detail Row Sets.

Specified by:
getDetailRowSets in interface RowSetIterator
Specified by:
getDetailRowSets in class WSRowSetIteratorBase
Returns:
an array of detail RowSet.

createDetailRowSet

public RowSet createDetailRowSet(java.lang.String rsName,
                                 java.lang.String linkDefName)
Description copied from interface: RowSetIterator
Creates a detail Row Set. See RowSetIterator.getDetailRowSets() for explanation of detail Row Sets.

This method creates a new detail Row Set for this Iterator.

Specified by:
createDetailRowSet in interface RowSetIterator
Specified by:
createDetailRowSet in class WSRowSetIteratorBase
Parameters:
rsName - the name of the new detail Row Set.
linkDefName - the name of a View Link definition. This View Link chooses the relationship in which this Iterator is the master and the new Row Set is the detail. It must be a fully qualified name (including the package name).
Returns:
the new detail Row Set.

closeRowSetIterator

public void closeRowSetIterator()
Description copied from interface: RowSetIterator
Closes this row set iterator. If this row set iterator is a master in a master-detail relationship, closeRowSetIterator closes all detail row sets.

After that, it fires a RowSetManagementListener.iteratorClosed() event to its RowSetManagementListener's.

Then, it deregisters this row set iterator from the owning row set, and deregisters all its listeners.

Specified by:
closeRowSetIterator in interface RowSetIterator
Specified by:
closeRowSetIterator in class WSRowSetIteratorBase

getSyncLock

public java.lang.Object getSyncLock()
Description copied from interface: RowSetIterator
Gets the locking object for this Row Set Iterator. Actually, this method locks the Application Module to which this Row Set Iterator belongs. See ApplicationModule.getSyncLock() for details.
Specified by:
getSyncLock in interface RowSetIterator
Specified by:
getSyncLock in class WSRowSetIteratorBase
Returns:
the locking object.

setRangeSize

public int setRangeSize(int size)
Description copied from interface: RowIterator
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.

Specified by:
setRangeSize in interface RowIterator
Specified by:
setRangeSize in class WSRowSetIteratorBase
Parameters:
size - the new number of rows in the row set range. Size of 0 is treated same as 1. Size < -1 is treated same as -1.
Returns:
the new size of the range.
See Also:
RowIterator.setRangeStart(int)

getRangeSize

public int getRangeSize()
Description copied from interface: RowIterator
Gets the size of the row set range.
Specified by:
getRangeSize in interface RowIterator
Specified by:
getRangeSize in class WSRowSetIteratorBase
Returns:
the number of rows in the range.

getRangeStart

public int getRangeStart()
Description copied from interface: RowIterator
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.

Specified by:
getRangeStart in interface RowIterator
Specified by:
getRangeStart in class WSRowSetIteratorBase
Returns:
an index.

setRangeStart

public int setRangeStart(int start)
Description copied from interface: RowIterator
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).

Specified by:
setRangeStart in interface RowIterator
Specified by:
setRangeStart in class WSRowSetIteratorBase
Parameters:
start - the absolute index of the new first row in the row set range.

scrollRange

public int scrollRange(int amount)
Description copied from interface: RowIterator
Moves the row set range up or down a given number of rows.
Specified by:
scrollRange in interface RowIterator
Specified by:
scrollRange in class WSRowSetIteratorBase
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)
Description copied from interface: RowIterator
Scrolls the range to place a given row at a given row set index.
Specified by:
scrollRangeTo in interface RowIterator
Specified by:
scrollRangeTo in class WSRowSetIteratorBase
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.

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.
Specified by:
setRowValidation in interface RowIterator
Specified by:
setRowValidation in class WSRowSetIteratorBase
Parameters:
flag - Whether to turn row validation off or not.

getIterMode

public int getIterMode()
Description copied from interface: RowIterator
Gets the current iteration mode. See Iteration Modes above for details on iteration mode which controls how the range behaves when it reaches the end of the Row Set.
Specified by:
getIterMode in interface RowIterator
Specified by:
getIterMode in class WSRowSetIteratorBase
Returns:
ITER_MODE_LAST_PAGE_PARTIAL if the iteration mode is "partial-last-page", ITER_MODE_LAST_PAGE_FULL if it is "full-last-page".

setIterMode

public void setIterMode(int mode)
Description copied from interface: RowIterator
Sets the iteration mode for this Row Iterator. See Iteration Modes above for details on iteration mode which controls how the range behaves when it reaches the end of the Row Set.
Specified by:
setIterMode in interface RowIterator
Specified by:
setIterMode in class WSRowSetIteratorBase
Parameters:
mode - should be ITER_MODE_LAST_PAGE_PARTIAL if the iteration mode is to be "partial-last-page", ITER_MODE_LAST_PAGE_FULL if it is to be "full-last-page".

Oracle9i Business Components for Java API Reference
Oracle9i Jdeveloper (9.0.4)
B10391-01


 

Copyright © 1997, 2003, Oracle. All rights reserved.