public class EntityCacheOverRowSet extends EntityCache implements RowSet
mFullName, mObjName, mParent, mProperties, RES_ID_SUFFIX, RESID_SUFFIXCOPY_OPT_ALL_ROWS, COPY_OPT_LIMIT_RANGE, FORWARD_ONLY, RANGE_PAGING, RANGE_PAGING_AUTO_POST, RANGE_PAGING_INCR, SCROLLABLEITER_MODE_LAST_PAGE_FULL, ITER_MODE_LAST_PAGE_PARTIAL, SLOT_BEFORE_FIRST, SLOT_BEYOND_LAST, SLOT_DELETED, SLOT_VALIDXML_IGNORE_DEPTH_COUNT, XML_OPT_ALL_ROWS, XML_OPT_ASSOC_CONSISTENT, XML_OPT_CHANGES_ONLY, XML_OPT_LIMIT_RANGE, XML_PASSIVATION_USEDEFINITION_STATE_ACTIVE, DEFINITION_STATE_DEPRECATED, PROPERTY_DEFINITION_STATE, PROPERTY_LABEL, PROPERTY_LABEL_PLURAL, PROPERTY_TOOLTIP| Constructor and Description | 
|---|
| EntityCacheOverRowSet() | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addListener(java.lang.Object listener)Adds a subscriber (listener) to be notified of  RowSetListenerevents generated by this row set iterator. | 
| void | addManagementListener(RowSetManagementListener listener)Adds a subscriber (listener) to be notified of  RowSetManagementListenerevents generated by this Row Set Iterator. | 
| boolean | cancelQuery()Cancels a running query. | 
| void | closeRowSet()Closes the row set. | 
| void | closeRowSetIterator()Closes this row set iterator. | 
| Row | createAndInitRow(AttributeList nvp)Creates and initializes a new Row object, but does not insert it into
 the Row Set. | 
| RowSet | createDetailRowSet(java.lang.String rsName,
                  java.lang.String viewLinkDefName)Creates a detail Row Set. | 
| 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. | 
| RowSetIterator | createRowSetIterator(java.lang.String name)Creates an iterator for the row set. | 
| RowSet | deepCopy(java.util.HashMap voAttrMap,
        long options)This method performs a copy of view rows and the Entity
 row references of the view rows that belong 
 to this  RowSet. | 
| void | defineNamedWhereClauseParam(java.lang.String name,
                           java.lang.Object defaultValue,
                           int[] indices)Defines a named bind variable to use with the
 view object's where-clause. | 
| VariableValueManager | ensureVariableManager()Returns this object's Variable Value Manager. | 
| java.util.Enumeration | enumerateRowsInRange()Gets an  Enumerationof all rows in the Row Set. | 
| void | executeEmptyRowSet()Executes the row set as an empty row set. | 
| void | executeQuery()Executes the query. | 
| RowIterator | findByAltKey(java.lang.String keyName,
            Key key,
            int maxNumOfRows,
            boolean skipWhere)Same as  with a few extra
 functionalities. | 
| 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. | 
| RowIterator | findByViewCriteria(ViewCriteria criteria,
                  int maxNumOfRows,
                  int queryMode)Finds and returns View rows that match the specified View Criteria. | 
| RowSetIterator | findRowSetIterator(java.lang.String rsiName)Gets the named row set iterator that was created at runtime for this row set. | 
| Row | first()Gets the first row in the iterator. | 
| byte | getAccessMode() | 
| Row[] | getAllRowsInRange()Extracts the rows in the range. | 
| ApplicationModule | getApplicationModule()Gets the parent Application Module that contains this component object. | 
| long | getCappedRowCount(long cap) | 
| 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. | 
| long | getDeferredEstimatedRowCount()If this ViewObject is marked to not perform the estimatedRowCount query, 
 then return -1 until either the estimatedRowCount is called and the 
 count is known or the RowSet is fetched completely in which case the
 actual row count is known. | 
| RowSet[] | getDetailRowSets()Gets an array of detail Row Sets for which this Iterator is the master. | 
| protected EntityDefOverRowSet | getEntityDefOverRowSet() | 
| int | getEstimatedRangePageCount()Returns getEstimatedRowCount()/rangePageSize, if rangeSize > 0. | 
| long | getEstimatedRowCount()Counts the number of rows in the collection defined by the
 view object's query. | 
| int | getFetchedRowCount()Counts the number of rows fetched from database into the Row Set collection
 up to this point. | 
| Row[] | getFilteredRows(java.lang.String attrName,
               java.lang.Object attrValue)Returns all rows in this collection whose attribute value matches
 the value being passed in  attrValue. | 
| Row[] | getFilteredRowsInRange(java.lang.String attrName,
                      java.lang.Object attrValue)Returns all rows in this range whose attribute value matches
 the value being passed in  attrValue. | 
| int | getIterMode()Gets the current iteration mode. | 
| RowSetIterator[] | getMasterRowSetIterators()Return all controlling masters of this row set. | 
| java.lang.Class | getMessageBundleClass() | 
| java.lang.Object | getNamedWhereClauseParam(java.lang.String name)Gets the value of a named where-clause parameter for this row set. | 
| AttributeList | getNamedWhereClauseParams()Gets all the Name, value pairs  of a named where-clause parameter of the viewObject. | 
| Row[] | getNextRangeSet()Gets the next set of rows in the range. | 
| Row[] | getPreviousRangeSet()Gets the previous set of rows in the range. | 
| java.util.Hashtable | getProperties()Gets this object's properties. | 
| java.lang.Object | getProperty(java.lang.String hintName)Retrieves the specified property, if it exists. | 
| int | getRangeIndexOf(Row row)Get the index of the given row relative to the beginning of the range. | 
| int | getRangePagingCacheFactor() | 
| int | getRangeSize()Gets the size of the Row Set Iterator range. | 
| int | getRangeStart()Gets the absolute row index of the first row in the Row Set Iterator range. | 
| Row | getRow(Key key)Returns the first row whose key matches  key. | 
| Row | getRowAtRangeIndex(int index)Accesses a row through its range index. | 
| int | getRowCount()Counts the total number of rows in the Row Set. | 
| int | getRowCountInRange()Gets the size of the Row Set Iterator 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. | 
| VariableValueManager | getVariableManager()Returns this object's current Variable Value Manager. | 
| ViewObject | getViewObject()Gets the view object that owns this row set. | 
| java.lang.Object[] | getWhereClauseParams()Gets the bind variable values to be used with the
 view object's where-clause. | 
| 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. | 
| boolean | hasVariables()Returns a flag indicating whether this object has
 Variables or not. | 
| void | insertRow(Row row)Inserts a row to the Row Set, before the current row. | 
| void | insertRowAtRangeIndex(int index,
                     Row row)Inserts a row to the Row Set at the given range index. | 
| boolean | isAssociationConsistent()Returns the flag indicating whether association-consistent mode is on or not. | 
| boolean | isDefaultRowSet()Internal: Applications should not use this method. | 
| boolean | isExecuted()Returns true if the current ViewObject's query has been executed for this 
 row set. | 
| boolean | isExecutedEmpty()Returns true if the current ViewObject's query has been executed with empty 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 | isNameGenerated()Tests if the Iterator's name was generated by the system. | 
| boolean | isRangeAtBottom()Tests if the Row Set Iterator range is at the end of the result set. | 
| boolean | isRangeAtTop()Tests if the Row Set Iterator range is at the beginning of the result set. | 
| boolean | isRowValidation()Gets the validation flag on this iterator. | 
| protected java.util.Iterator | iterator()Return an Iterator for the EntityCache. | 
| Row | last()Gets the last row in the iterator. | 
| Row | next()Gets the next row in the iterator. | 
| Row | previous()Gets the previous row in the iterator. | 
| void | readXML(Element elem,
       int depthCount) | 
| void | readXML(Element elem,
       int depthCount,
       XSLStylesheet xslt) | 
| java.lang.Object | refreshProperty(java.lang.String hintName)Retrieves the specified property, if it exists. | 
| void | removeCurrentRow()Removes the current Row object from the Row Set. | 
| Row | removeCurrentRowAndRetain()Removes the current Row object from the collection and retain it for
 insertion into another location. | 
| void | removeCurrentRowFromCollection()Removes the current Row object from the collection. | 
| void | removeListener(java.lang.Object listener)Removes a subscriber (listener) for  RowSetListenerevents generated by this row set iterator. | 
| void | removeManagementListener(RowSetManagementListener listener)Removes a subscriber (listener) for  RowSetManagementListenerevents generated by this row set iterator. | 
| boolean | removeMasterRowSetIterator(RowSetIterator masterRSI)Removes a master row set iterator. | 
| void | removeNamedWhereClauseParam(java.lang.String name)Removes a named where-clause parameter. | 
| void | reset()Moves the currency to the slot before the first row. | 
| void | resetExecuted()This methods invalidates all the iterators on this rowset and marks the
 rowset as not executed. | 
| int | scrollRange(int amount)Moves the Row Set Iterator 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 range index. | 
| int | scrollToRangePage(int pageIndex)Moves the row set range start to the given page index
 where every page consists of RangeSize number of rows. | 
| void | setAccessMode(byte mode)Constrains the row access based on the following settings: | 
| void | setAssociationConsistent(boolean consistent)Sets the association-consistent flag for this row set. | 
| boolean | setCurrentRow(Row row)Designates a given row as the current row. | 
| boolean | setCurrentRowAtRangeIndex(int index)Designates a given index as the current row. | 
| void | setForwardOnly(boolean forwardOnly)Constrains the row set to sequential access. | 
| void | setIterMode(int mode)Sets the iteration mode for this Row Iterator. | 
| boolean | setMasterRowSetIterator(RowSetIterator masterRSI)Sets the master iterator. | 
| void | setNamedWhereClauseParam(java.lang.String name,
                        java.lang.Object value)Sets the value of a named where-clause parameter for this row set. | 
| void | setNamedWhereClauseParams(AttributeList attrlist)Sets the value of a named where-clause parameters for the entire viewObject. | 
| void | setRangePagingCacheFactor(int f) | 
| int | setRangeSize(int size)Modifies the size of the Row Set Iterator range. | 
| int | setRangeStart(int start)Moves the Row Set Iterator 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. | 
| void | skipNamedWhereClauseParam(java.lang.String name)Skips the named where-clause parameter for this row set. | 
| 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,
        java.util.HashMap voAttrMap)Renders data in a canonical XML-format. | 
| Node | writeXML(long options,
        java.util.HashMap voAttrMap,
        XSLStylesheet xslt) | 
add, addDynamicAttribute, addEntityListener, addEventAttr, addForAltKey, addForwardDependency, addRowByDeletedPK, addTrigger, addValidator, clearCache, closeStatements, createEffDtDateDayAddStatement, createPreparedStatement, createPrepStmtForAltKey, deliverEntityEvent, findAttributeDef, findOrCreateLocalViewObject, findViewAccessorDef, get, getAttributeCount, getAttributeDef, getAttributeDefImpls, getAttributeDefs, getAttributeIndexOf, getBackwardDependencies, getBackwardDependencyAttributes, getBaseAttributeCount, getColumnNameForQuery, getComparator, getCreateEvents, getCurrentDbTime, getDBTransactionImpl, getDefFullName, getDefName, getDeleteEvents, getEffDtDateDayAddStatement, getEntityDef, getEventDef, getEventNamespace, getEventPayloadNamespace, getExprVarVal, getForAltKey, getForwardDependencies, getForwardDependencyAttributes, getFullName, getLOBAttrs, getName, getPreparedSelectStatement, getPrepSelStmtForAltKey, getRSI, getTriggersOfType, getUpdateEvents, getValidators, getWithHandle, hasLOBAttrs, hasRows, init, isAssociationAccessorRetained, isBatchable, isBatchMode, iterator, lookupAttributeDef, lookupRawAttributeDef, lookupTrigger, lookupValidator, lookupViewAccessorDef, personalizeTrigger, pin, removeEntityListener, removeRow, removeRowByDeletedPK, removeRowByOldPK, removeRowForAltKey, removeValidator, replace, replace, replaceForAltKey, setAssociationAccessorRetained, setExprVarVal, unpin, validateaddListener, applyPersonalization, applyPersonalization, create, createRef, createVariableValueManager, findOperationDefinitions, findPersDefObject, getAdfmConfigStartupProperty, getAllProperties, getBooleanAdfmConfigProperty, getCompListeners, getCompListenersList, getDefinitionManager, getDefinitionState, getFullNameForPersDef, getHintValue, getLabel, getLabelPlural, getProxyClassName, getProxyClassName, getResourceBundleDef, getRootApplicationModule, getStringFromMessageBundle, getTooltip, isDead, isPersonalized, isRegWithPiggyMan, remove, resolvePropertyRaw, setName, setParent, setProxyClassNameisPropertyExpression, setParent, setPropertiesMapallocatePropertyMap, getParent, getPropertiesAsStrings, getPropertiesMap, getProperty, getPropertyExpressionsMap, getPropertyMap, getRawPropertyValue, getResourcesFromBundle, mergePropertyMap, removeProperty, removeProperty, requiresNamePrefixedResId, resolveObjectProperty, setFullName, setPropertiesMap2, setProperty, setProperty, setPropertyExpression, setPropertyMapclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetResourceBundleDefgetPropertygetResourceBundleDefprotected java.util.Iterator iterator()
EntityCacheiterator in class EntityCacheprotected EntityDefOverRowSet getEntityDefOverRowSet()
public boolean setMasterRowSetIterator(RowSetIterator masterRSI)
RowSetsetMasterRowSetIterator in interface RowSetmasterRSI - the new master row set iterator for this row set.true if the operation succeeded.public boolean isDefaultRowSet()
isDefaultRowSet in interface RowSetpublic ViewObject getViewObject()
RowSet
 If this row set is the result of calling a view link accessor,
 the returned view object is an internal view object.
 ViewObject.isInternal()
    RowSet detailRS = (RowSet) masterViewRow.getMyDetail();
    ViewObject detailVO = detailRS.getViewObject();
 getViewObject in interface RowSetpublic void setNamedWhereClauseParams(AttributeList attrlist)
RowSet
 Setting a named where-clause parameter
 does not automatically execute the query.  You must call
 RowSet.executeQuery()
setNamedWhereClauseParams in interface RowSetattrlist - is a Name, value pair of bind variables.public AttributeList getNamedWhereClauseParams()
RowSetIt uses the method getNamedWhereClauseParam to return all the name,value pairs from VariableValueManager.
getNamedWhereClauseParams in interface RowSetpublic void setWhereClauseParams(java.lang.Object[] values)
RowSet
 Setting the where-clause bind values through this method
 does not automatically execute the query.  You must call
 RowSet.executeQuery()
setWhereClauseParams in interface RowSetvalues - 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.public void setWhereClauseParam(int index,
                       java.lang.Object value)
RowSet
 Setting the where-clause bind values through this method
 does not automatically execute the query.  You must call
 RowSet.executeQuery()
setWhereClauseParam in interface RowSetindex - 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.public void defineNamedWhereClauseParam(java.lang.String name,
                               java.lang.Object defaultValue,
                               int[] indices)
RowSetThis named where-clause parameter will be defined as a variable on the view object. That is, if a named where-clause parameter is defined through one row set, all other row sets that belongs to the same parent view object will "see" that parameter.
 Through the defaultValue, one can specify the
 default value for this where-clause parameter.  If no
 default value is supplied, null will be used
 as the parameter value.
 
 The indices parameter specifies where-clause
 parameter indices into which this named parameter will be
 bound.  The same value can be bound into multiple indices.
 For example, if { 1, 2 } is specified for
 indices, the value will be bound for where-clause
 parameter indices of 1 and 2.  I.e., this parameter will produce
 setWhereClauseParam(1, value) and
 setWhereClauseParam(2, value).
 
This method can be invoked to redefine an existing named where-clause paramter (to change the default value and the indices) only if the named parameter is found on the view object. If the named parameter/variable is found on one of the parent objects, a new where-clause parameter definition is still added to the view object.
 When redefining, a check is made to ensure that the existing variable
 has no kind specification (null) or is of the
 "where" kind (which means that the existing variable
 is a where-clause parameter).  If not, an InvalidParamException
 is thrown.
 
 Defining a named where-clause parameter
 does not automatically execute the query.  You must call
 RowSet.executeQuery()
defineNamedWhereClauseParam in interface RowSetname - the name of the where-clause parameter.defaultValue - specifies the default value for this where-clause
                     parameter.  This default value can be overridden
                     through a call to setNamedWhereClauseParam().indices - where-clause indices into which this parameter value should
                be bound.  See above.public void removeNamedWhereClauseParam(java.lang.String name)
RowSet
 This method removes previously defined named where-clause parameter.
 A check is made to ensure that the variable being removed is a
 where-clause parameter (variable kind = "where").  If not, 
 an InvalidParamException is thrown.
 
 If the named where-clause parameter is found but it does not belong to the view object
 that owns this row set, an InvalidOperException is thrown.
 This means one is disallowed from removing a named where-clause parameter
 that belongs to the View definition, for example.
 
 Removing a named where-clause parameter
 does not automatically execute the query.  You must call
 RowSet.executeQuery()
removeNamedWhereClauseParam in interface RowSetname - the name of the where-clause parameter to remove.public java.lang.Object getNamedWhereClauseParam(java.lang.String name)
RowSetIf the view object owns multiple row sets, each row set may have its own (different) named where-clause parameter value.
getNamedWhereClauseParam in interface RowSetname - the name of the where-clause parameter.public void setNamedWhereClauseParam(java.lang.String name,
                            java.lang.Object value)
RowSetIf the view object owns multiple row sets, each row set may have its own (different) named where-clause parameter value.
 Setting a named where-clause parameter
 does not automatically execute the query.  You must call
 RowSet.executeQuery()
setNamedWhereClauseParam in interface RowSetname - the name of the where-clause parameter.value - the where-clause parameter value for this row set.public void skipNamedWhereClauseParam(java.lang.String name)
RowSet
 Skipping a named where-clause parameter
 does not automatically execute the query.  You must call
 RowSet.executeQuery()
skipNamedWhereClauseParam in interface RowSetname - the name of the where-clause parameter.public java.lang.Object[] getWhereClauseParams()
RowSetgetWhereClauseParams in interface RowSetpublic void executeQuery()
RowSet
 This method does not necessarily retrieve data.  The View Object's
 fetch mode determines whether the rows are retrieved immediately
 or not.  If FETCH_AS_NEEDED is specified, the ResultSet
 is left open, and the rows are retrieved as the user navigates through
 the row set.
 
Calling this method will ensure that the user will see the latest data from the database, as well as the data changes that the user has made in the current transaction.
If the user changes the SQL statement, or modifies attributes used by it, view rows that were visible may "disappear" after this method is invoked, and the new WHERE clause takes effect.
When a row set is first instantiated and the application calls a navigational method such as, next(), previous(), first(), or last(), this method is implicitly called.
 Upon successful execution of the query, this method fires a
 RangeRefreshEvent event to RowSetListener's
 registered with this object, by calling
 RowSetListener.rangeRefreshed().
executeQuery in interface RowSetpublic void executeEmptyRowSet()
RowSetexecuteEmptyRowSet in interface RowSetpublic boolean cancelQuery()
RowSetcancelQuery in interface RowSetfalse if the JDBC statement is not executing a query.public boolean isExecuted()
RowSetisExecuted in interface RowSettrue if query has been executed.public boolean isExecutedEmpty()
RowSetisExecutedEmpty in interface RowSettrue if query has been executed with empty row set.public RowSetIterator createRowSetIterator(java.lang.String name)
RowSetcreateRowSetIterator in interface RowSetname - the name to be given to the iterator.this.public RowSetIterator[] getRowSetIterators()
RowSetgetRowSetIterators in interface RowSetpublic RowSetIterator findRowSetIterator(java.lang.String rsiName)
RowSetfindRowSetIterator in interface RowSetrsiName - a row set iterator name. If null, it returns the
                the row set.null if the named row set iterator is not
         not found.public boolean removeMasterRowSetIterator(RowSetIterator masterRSI)
RowSetremoveMasterRowSetIterator in interface RowSetmasterRSI - the iterator to be removed.true if masterRS was found,
 false otherwise.public RowSetIterator[] getMasterRowSetIterators()
RowSetgetMasterRowSetIterators in interface RowSetpublic ApplicationModule getApplicationModule()
ComponentObjectImplnull.  For example,
 if you call this method on a root AM, it will return null.getApplicationModule in interface RowSetgetApplicationModule in class ComponentObjectImplnull if the component object
 has no parent.public long getEstimatedRowCount()
RowSetThis method uses a "SELECT COUNT(1) FROM (<query-statement>)" query to obtained the initial count. After that, changes to row count (such as insertion and deletion of rows) is kept up to date.
 However, since the row counting query and the query to retrieve
 actual rows are issued at two different times, it is possible for
 the accurate count to change between these two points.
 This is why this method is named getEstimatedRowCount().
 
getEstimatedRowCount in interface RowSetpublic long getDeferredEstimatedRowCount()
RowSetgetDeferredEstimatedRowCount in interface RowSetpublic long getCappedRowCount(long cap)
getCappedRowCount in interface RowSetpublic boolean isForwardOnly()
RowSetisForwardOnly in interface RowSettrue if the row set is restricted to forward-only processing.RowSet.setForwardOnly(boolean)public void setForwardOnly(boolean forwardOnly)
RowSet
 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.
setForwardOnly in interface RowSetforwardOnly - true restricts the row set to forward-only processing,
 false otherwise.public byte getAccessMode()
getAccessMode in interface RowSetRowSet.setAccessMode(byte)public void setAccessMode(byte mode)
RowSetSwitching access modes for a rowset will not take effect until the next explicit call to executeQuery. Switching accessmode back to SCROLLABLE from any other mode is not allowed.
setAccessMode in interface RowSetmode - One of the four enumerated values RowSet.SCROLLABLERowSet.FORWARD_ONLYRowSet.RANGE_PAGINGRowSet.RANGE_PAGING_AUTO_POSTpublic int getRangePagingCacheFactor()
getRangePagingCacheFactor in interface RowSetpublic void setRangePagingCacheFactor(int f)
setRangePagingCacheFactor in interface RowSetpublic void setAssociationConsistent(boolean consistent)
RowSetAssociation-consistent mode allows the user to see new rows created/inserted through another view object. Note that this mode is effective only for view objects that are entity based. If the view object has no entity base, this mode has no effect.
Suppose we have an entity named E. Suppose two view objects, V1 and V2 are based on E. (V1 and V2 do not have to come from the same view definition.) Suppose the user creates a new row through V1. This creates an instance of E as well. The new entity row is registered only when its primary key is attribute set. At this time, an event is sent out to all view objects based on E, i.e., V1 and V2.
 When V2 receives this event, it enumerates through all its
 collections (essentially its row sets--strictly speaking its
 query collections) looking for those whose
 isAssociationConsistent() value is true.
 For each row set whose flag value is true (say R2), it checks to see
 if it has any view row mapped to the new entity row.  If
 not, it create a new view row and maps it to the new entity row.
 A rowInserted event fires.
 
 Thus, from the user's view point, R2 is "seeing" the new row,
 although the row has not yet been posted to database.  Hence,
 setting this flag to true enables the user to
 see new rows before the row is posted/queried when the view
 object is entity based.
 
 If flag is false or if the view object is not entity based,
 the user needs to post the new row through
 Transaction.postChanges()RowSet.executeQuery()
 The default value for this flag can be globally controlled
 through the jbo.viewlink.consistent property.
 Its value can be true, false, or
 DEFAULT.  If the property is not specified,
 the default value is DEFAULT.
 A similar property jbo.assoc.consistent controls
 whether the new-row-appearing behavior should be supported
 for row sets returned from entity association accessor calls.
 For jbo.assoc.consistent, supported values are
 true or false.
 
 If the property value is set to true, all
 row sets will have true for its initial
 isAssociationConsistent() value.
 If the property value is set to false, all
 row sets will have false for its initial value.
 If the property value is set to DEFAULT (which
 is the default), the view object will use the following logic
 to compute its initial isAssociationConsistent() value:
 if the view object has multiple entity bases that are updateable,
 then the initial value is false.  If the view object
 has a where-clause, then the initial value is false.
 Otherwise, it is true.
 
Once this method is called to set the flag value manually, neither the property setting nor the view object's initial flag value has an effect.
setAssociationConsistent in interface RowSetconsistent - indicates whether association-consistency
                     should be on or not.public boolean isAssociationConsistent()
RowSetisAssociationConsistent in interface RowSettrue if un-posted new rows are to appear,
          false otherwise.  This flag has no effect if
          the view object is not entity based.RowSet.setAssociationConsistent(boolean)public void closeRowSet()
RowSetcloseRowSet removes
 this row set from the master row set iterator.closeRowSet in interface RowSetpublic boolean isFetchComplete()
RowSetisFetchComplete in interface RowSettrue if the result set has been
          fetched to the end.public boolean isMaxFetchSizeExceeded()
RowSetisMaxFetchSizeExceeded in interface RowSettrue if the result set has been
          fetched to the maxFetchSize limit and there
          are still more rows in the database.public boolean isNameGenerated()
RowSetIteratorisNameGenerated in interface RowSetIteratortrue if the name was generated by the system.
          false if the name was given by the user and
          not generated by the system.public Row[] getNextRangeSet()
RowSetIteratorgetNextRangeSet() will return rows 10 through 19.
 
 If the next range set does not have enough rows to fill up the range,
 getNextRangeSet() returns a partially filled range.
 That is, this method operates as if the iteration mode is
 RowIterator.ITER_MODE_LAST_PAGE_PARTIAL
If there is no more rows, this method returns an empty array (an array of length 0).
 While obtaining the next range set, the range will be scrolled.
 This causes a ScrollEventRowSetListener.rangeScrolled(oracle.jbo.ScrollEvent)RowSetListenerNavigatableRowIterator.addListener(Object)addListener).
 
 After the next range set is obtained, the method sets the first
 Row of the range as the current row.  This may fire a
 NavigationEventRowSetListener.navigated(oracle.jbo.NavigationEvent)
getNextRangeSet in interface RowSetIteratorpublic Row[] getPreviousRangeSet()
RowSetIteratorgetPreviousRangeSet() will return rows 0 through 9.
 If there is no more rows, this method returns an empty array (an array of length 0).
 While obtaining the previous range set, the range will be scrolled.
 This causes a ScrollEventRowSetListener.rangeScrolled(oracle.jbo.ScrollEvent)RowSetListenerNavigatableRowIterator.addListener(Object)addListener).
 
 After the previous range set is obtained, the method sets the first
 Row of the range as the current row.  This may fire a
 NavigationEventRowSetListener.navigated(oracle.jbo.NavigationEvent)
getPreviousRangeSet in interface RowSetIteratorpublic RowSet getRowSet()
RowSetIteratorgetRowSet in interface RowSetIteratorpublic int getEstimatedRangePageCount()
RowSetIteratorThis number may fluxuate when the View Object is syncronized with its Entity Object.
getEstimatedRangePageCount in interface RowSetIteratorpublic int scrollToRangePage(int pageIndex)
RowSetIterator(rangeSize * (pageSize-1)) - getRangeStart();
scrollToRangePage in interface RowSetIteratorpageIndex - the page number to go to in the result set.public RowSet[] getDetailRowSets()
RowSetIteratorIn 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.
getDetailRowSets in interface RowSetIteratorRowSet.public RowSet createDetailRowSet(java.lang.String rsName, java.lang.String viewLinkDefName)
RowSetIteratorRowSetIterator.getDetailRowSets()This method creates a new detail Row Set for this Iterator.
createDetailRowSet in interface RowSetIteratorrsName - the name of the new detail Row Set.viewLinkDefName - 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).public void addManagementListener(RowSetManagementListener listener)
RowSetIteratorRowSetManagementListener
 events generated by this Row Set Iterator.
 addManagementListener in interface RowSetIteratorlistener - the subscriber to be added.  It should implement
                  RowSetManagementListener.public void removeManagementListener(RowSetManagementListener listener)
RowSetIteratorRowSetManagementListener
 events generated by this row set iterator.
 removeManagementListener in interface RowSetIteratorlistener - the subscriber to be removed.public void closeRowSetIterator()
RowSetIteratorcloseRowSetIterator
 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.
closeRowSetIterator in interface RowSetIteratorpublic java.lang.Object getSyncLock()
RowSetIteratorApplicationModule.getSyncLock()
 for details.getSyncLock in interface RowSetIteratorpublic Row[] getFilteredRows(java.lang.String attrName, java.lang.Object attrValue)
RowSetIteratorattrValue.
 
 Note that this method does not affect the current RowSetIterator.
getFilteredRows in interface RowSetIteratorattrName - name of the attribute to be used for filtering.attrValue - attribute value for filtering.public Row[] getFilteredRowsInRange(java.lang.String attrName, java.lang.Object attrValue)
RowSetIteratorattrValue.
 
 This method uses getAllRowsInRange() to retrieve
 all rows and then match the rows.
getFilteredRowsInRange in interface RowSetIteratorattrName - name of the attribute to be used for filtering.attrValue - attribute value for filtering.public void addListener(java.lang.Object listener)
NavigatableRowIteratorRowSetListener
 events generated by this row set iterator.addListener in interface NavigatableRowIteratorlistener - the subscriber to be added.  It should implement
                  RowSetListener.public void removeListener(java.lang.Object listener)
NavigatableRowIteratorRowSetListener
 events generated by this row set iterator.removeListener in interface NavigatableRowIteratorlistener - the subscriber to be removed.public Row next()
RowIteratornext() is called on an iterator whose Row Set has
 not yet been RowSet.executeQuery()executeQuery() himself before calling next().
 We refer to this as implicit query execution or
 implicit Row Set execution.
 
 Before moving to the next row, next() validates the current row
 (if the iterator has a current row) through a call to Row.validate()
 If the currency is on the last row of the range and next() is
 called, the range is scolled down by one row to bring the next row into
 the visible range.  In particular, if the range size is 1, next()
 scrolls the range down by 1 row.
 
 
 When this method is called, the current row of the iterator
 may be outside the range.  (Note that the current row does not
 have to be within the range.)  If so, next() will
 scroll the range, so that the row that will be the current row
 at the conclusion of this method will be positioned in the middle
 of the range.
 
 If the iterator is just opened or reset (see RowIterator.reset()next() will return the first row if one exists.
 In this situation, next() is functionally equivalent
 to RowIterator.first()
 If the iterator is at the last row of the Row Set, next()
 push the currency into the imaginary slot after the last row.
 This will set the current slot status to SLOT_BEYOND_LAST.
 
 When the next row is required, a check is made to see if the row
 has already been brought into the collection.  If not, the row is fetched from
 database.  Note that the View Object's fetch mode affects how rows
 are fetched from database into the collection.  See
 ViewObjectImpl.getFetchMode()
If successful, this method designates the next row as the current row (the currency finally moves).
 This method generates events to notify the changes to the iterator.
 If scrolling occurs because of conditions described above, a
 ScrollEventRowSetListener.rangeScrolled(oracle.jbo.ScrollEvent)RowSetListenerNavigatableRowIterator.addListener(Object)addListener).
 
 If the currency is changed, it generates a
 NavigationEventRowSetListener.navigated(oracle.jbo.NavigationEvent)
next in interface RowIteratorRownull
          if there is no next row.public Row previous()
RowIteratorprevious() is called on an iterator whose Row Set has
 not yet been RowSet.executeQuery()executeQuery() himself before calling previous().
 We refer to this as implicit query execution or
 implicit Row Set execution.
 
 Before moving to the previous row, previous() validates the current row
 (if the iterator has a current row) through a call to Row.validate()
 If the currency is on the first row of the range and previous() is
 called, the range is scolled up by one row to bring the previous row into
 the visible range.  In particular, if the range size is 1, previous()
 scrolls the range up by 1 row.
 
 
 When this method is called, the current row of the iterator
 may be outside the range.  (Note that the current row does not
 have to be within the range.)  If so, previous() will
 scroll the range, so that the row that will be the current row
 at the conclusion of this method will be positioned in the middle
 of the range.
 
 If the iterator is just opened or reset (see RowIterator.reset()previous() will null as the currency is
 already on the imaginary slot before the first row.
 
 If the iterator is at the first row of the Row Set, previous()
 push the currency into the imaginary slot before the first row.
 This will set the current slot status to SLOT_BEFORE_FIRST.
 
If successful, this method designates the previous row as the current row (the currency finally moves).
 This method generates events to notify the changes to the iterator.
 If scrolling occurs because of conditions described above, a
 ScrollEventRowSetListener.rangeScrolled(oracle.jbo.ScrollEvent)RowSetListenerNavigatableRowIterator.addListener(Object)addListener).
 
 If the currency is changed, it generates a
 NavigationEventRowSetListener.navigated(oracle.jbo.NavigationEvent)
previous in interface RowIteratorRownull
          if there is no previous row.public Row first()
RowIteratorfirst() is called on an iterator whose Row Set has
 not yet been RowSet.executeQuery()executeQuery() himself before calling first().
 We refer to this as implicit query execution or
 implicit Row Set execution.
 
 This method checks to see if the currency is not on the first row.
 If not, it resets the currency to the imaginary slot before the
 first row and then calls RowIterator.next()
 If the currency is on the slot before the first row, it
 simply calls next().  In this case, first()
 is equivalent to next().
 
If the currency is already on the first row, nothing happens.
 If first() is called on an empty Row Set (a Row Set that
 has no row), the currency is set to the slot after the last row, and
 null is returned.
 
 This method generates events to notify the changes to the iterator,
 e.g., ScrollEventNavigationEventRowIterator.next()
first in interface RowIteratorRownull
          if there is no first row.  In that case (null return),
          the current slot status will be RowIterator.SLOT_BEYOND_LASTpublic Row last()
RowIteratorlast() is called on an iterator whose Row Set has
 not yet been RowSet.executeQuery()executeQuery() himself before calling last().
 We refer to this as implicit query execution or
 implicit Row Set execution.
 
 Before moving to the last row, last() validates the current row
 (if the iterator has a current row) through a call to Row.validate()
 This method retrieves all rows from the Row Set and scrolls (if necessary)
 to the last row.  If some of these rows have not yet been fetched
 from database, it fetches them.  The View Object's fetch mode affects how rows
 are fetched from database into the collection.  See
 ViewObjectImpl.getFetchMode()
If successful, this method designates the last row as the current row.
 If last() is called on an empty Row Set, the currency moves
 to the slot beyond the last row.  The current slot status is set to
 RowIterator.SLOT_BEYOND_LAST
The caller of this method should be aware that it may take a long time to complete as all rows from the Row Set are fetched.
The number of rows in the range at the completion of this method is affected by the "iteration mode". See Iteration Modes above for details.
 This method generates events to notify the changes to the iterator.
 If scrolling occurs because of conditions described above, a
 ScrollEventRowSetListener.rangeScrolled(oracle.jbo.ScrollEvent)RowSetListenerNavigatableRowIterator.addListener(Object)addListener).
 
 If the currency is changed, it generates a
 NavigationEventRowSetListener.navigated(oracle.jbo.NavigationEvent)
last in interface RowIteratorRownull
          if there is no last row.public void reset()
RowIterator
 After this method, the current slot status will be RowIterator.SLOT_BEFORE_FIRSTRowIterator.next()
 It sends a ScrollEventRowSetListener.rangeScrolled(oracle.jbo.ScrollEvent)RowSetListenerNavigatableRowIterator.addListener(Object)addListener).
reset in interface RowIteratorpublic boolean hasNext()
RowIteratorhasNext in interface RowIteratortrue if there is a next row.
         Specifically, if the Row Set is empty or if the currency
         is on the last row or the slot after the last row
         (current slot status == RowIterator.SLOT_BEYOND_LASTfalse.  Otherwise, true.public boolean hasPrevious()
RowIterator
 If the Row Set is forward-only, it returns false.
hasPrevious in interface RowIteratortrue if there is a previous row.
         Specifically, if the Row Set is empty or forward-only or
         if the currency is on the first row or the slot before the first row
         (current slot status == RowIterator.SLOT_BEFORE_FIRSTfalse.  Otherwise, true.public int getFetchedRowCount()
RowIteratorgetFetchedRowCount in interface RowIteratorpublic int getRowCount()
RowIteratorNote that this method retrieves all rows from the database then returns the number of rows in the Row Set collection.
getRowCount in interface RowIteratorpublic Row getRow(Key key)
RowIteratorkey.
 
 If the key being passed in has the row handle, it uses the row handle
 to locate the row.  This is a quick operation.  (A key returned from
 a call to Row.getKey()
If the key does not have a row handle, or if the handle look up did not find the row in the View row cache, it performs a linear search through the Row Set collection looking for a match. Hence, this method could take quite a long time to complete.
 This method is similar to RowIterator.findByKey(Key, int)
However, findByKey() may find the matching Row(s) out of sequence. When a row is not found in the View row cache, findByKey() issues a database query. Matching rows are retrieved and appended to the Row Set collection. For example, suppose the Row Set collection has 200 rows that qualify in the database. Suppose the user retrieved only 10 rows (190 not yet retrieved). Suppose, at this time, the user issues findByKey() that locates the 200-th row (the last row in database result set). That row is appended to the Row Set collection at the 11-th spot. Thus, when you use findByKey(), you may see rows out of sequence. In contrast, getRow() always retrieves rows in sequence.
If the Row Set collection is of any non-trivial size (say over 50), we would recommend findByKey().
findByKey() allows for partial key (only for View Objects that have multiple Entity bases). When a partial key is specified, multiple rows may return. getKey() returns one and only one row (exact match).
getRow in interface RowIteratorkey - the key.public Row getRowAtRangeIndex(int index)
RowIteratorgetRowAtRangeIndex in interface RowIteratorindex - an index in the range: 0 to getRangeSize() - 1.null if the index is out of range.public Row getCurrentRow()
RowIteratorgetCurrentRow in interface RowIteratorpublic int getCurrentRowIndex()
RowIteratorgetCurrentRowIndex in interface RowIteratorpublic int getCurrentRowSlot()
RowIteratorgetCurrentRowSlot in interface RowIteratorSLOT_.public boolean setCurrentRow(Row row)
RowIteratorsetCurrentRow in interface RowIteratorrow - the new current row.true if the operation succeeded.public Row createAndInitRow(AttributeList nvp)
RowIteratorcreateRow() mainly
 in that this method allows the user to pass in a list of name-value
 pairs with which row attributes are initialized.
 
 nvp is a named value pair.  When building an nvp from
 scratch, use NameValuePairs to build a new nvp.
 Here is an example:
 
    NameValuePairs nvp = new NameValuePairs();
    nvp.setAttribute("EmpTyp", "C");
    Row row = voEmp.createAndInitRow(nvp);
 
 This method is particularly useful when creating a subclass
 View Row or Entity Row.  You can include polymorphic discriminator
 attribute values in nvp and correct subclass row
 object will be created.
 
 When this method is called, underlying entities are created.
 After the new entities are created, a new view row is created.
 After that ViewRowImpl.create(oracle.jbo.AttributeList)
 is called with this nvp.  ViewRowImpl.create(AttributeList)
 walks thru the list of entities and calls
 EntityImpl.create(AttributeList) with the same
 nvp for each entity in the view row.
 
createAndInitRow in interface RowIteratornvp - a list of name-value pairs.public Row createRow()
RowIteratorcreateRow in interface RowIteratorpublic void insertRow(Row row)
RowIteratorinsertRow in interface RowIteratorrow - the Row object to be added.public void removeCurrentRow()
RowIteratorremoveCurrentRow in interface RowIteratorpublic void removeCurrentRowFromCollection()
RowIterator
 It does not cause the row to be deleted from the database table.
 It just removes the row from the row collection.  However, once the
 row is removed, it cannot be used any more.  If you want to
 remove the current row from collection and insert it elsewhere,
 call RowIterator.removeCurrentRowAndRetain()RowIterator.insertRow(oracle.jbo.Row)
removeCurrentRowFromCollection in interface RowIteratorpublic Row removeCurrentRowAndRetain()
RowIteratorIt does not cause the row to be deleted from the database table. It just removes the row from the row collection.
 This method differs from RowIterator.removeCurrentRowFromCollection()
 To do so, call RowIterator.removeCurrentRowAndRetain()RowIterator.insertRow(oracle.jbo.Row)
removeCurrentRowAndRetain in interface RowIteratorpublic int setRangeSize(int size)
RowIteratorThis method takes effect when the next set of data is fetched. For an example usage of setRangeSize, see setRangeStart.
setRangeSize in interface RowIteratorsize - the new number of rows in the iterator range.  Size of
             0 is treated same as 1.  Size < -1 is treated same as -1.RowIterator.setRangeStart(int)public int getRangeSize()
RowIteratorgetRangeSize in interface RowIteratorpublic int getRangeStart()
RowIteratorThe absolute index is 0-based, and is the row's index relative to the entire result set.
getRangeStart in interface RowIteratorpublic int setRangeStart(int start)
RowIteratorNote 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).
setRangeStart in interface RowIteratorstart - the absolute index of the new first row in the Row Set Iterator range.public int scrollRange(int amount)
RowIteratorscrollRange in interface RowIteratoramount - the number of rows to scroll.
                A negative value scrolls upward.public int scrollRangeTo(Row row, int index)
RowIteratorscrollRangeTo in interface RowIteratorrow - the row.index - the range index at which the row is to be found.public boolean setCurrentRowAtRangeIndex(int index)
RowIteratorsetCurrentRowAtRangeIndex in interface RowIteratorindex - the index of the new current row.true if the operation succeeded.public void insertRowAtRangeIndex(int index,
                         Row row)
RowIteratorindex is
 relative to the range, i.e., index of 0 would mean to insert
 before the first row of the range.  Allowed values for index
 is 0 to range size.  If index equals range size, the row
 is inserted right after the last row in the range.  This method call does not
 alter the current position of the iterator, nor does it affect the range
 position.
 insertRowAtRangeIndex in interface RowIteratorindex - the point where row is to be added.row - the Row object to be added.public int getRangeIndexOf(Row row)
RowIteratorgetRangeIndexOf in interface RowIteratorrow - a Row object.
 or -1 if the row is not in range.row,public int getRowCountInRange()
RowIteratorgetRowCountInRange in interface RowIteratorpublic boolean isRangeAtBottom()
RowIteratorisRangeAtBottom in interface RowIteratortrue if the last row of the range is
         the last row of the result set.public boolean isRangeAtTop()
RowIteratorisRangeAtTop in interface RowIteratortrue if the first row of the range is
         the first row of the result set.public java.util.Enumeration enumerateRowsInRange()
RowIteratorEnumeration of all rows in the Row Set.
 enumerateRowsInRange in interface RowIteratorEnumeration interface.public Row[] getAllRowsInRange()
RowIteratorgetAllRowsInRange in interface RowIteratorsetViewSize().public Row[] findByKey(Key key, int maxNumOfRows)
RowIteratorIf this View Object has multiple Entity Object bases, the key need not be specified for all. However, if a key is specified for n-th Entity Object, and if this Entity Object's primary key consists of multiple parts, all parts of the key must be specified.
 If not all Entity keys are included, multiple rows may 
 match the partial key.  The maxNumOfRows parameter
 is used to specify the maximum number of rows to return.
 
For example, suppose the View Object has Emp and DeptLocation as its Entity Object bases. Suppose further that Emp has a one part primary key (employee number) and DeptLocation has a two part primary key (dept name and location).
The user can make the following call to look for all employees working in ACCOUNTING's NEW YORK office:
    // The key will consist of 3 parts.  The first part is
    // for the employee number (which is null, meaning not
    // specified).  The second part is the department name.
    // The third is the location.
    Object [] keyValues = new Object[3];
    keyValues[0] = null;  // All employees
    keyValues[1] = "ACCOUNTING";
    keyValues[4] = "NEW YORK"; // third Entity Object, key part 1
    Row[] rows = myAM.findByKey(new Key(keyValues), -1);
 In this example, if you were to include the key for DeptLocation, you must specify both key parts.
Note that the position of the key must patch the order of the Entity Object bases and their keys. In the above example, keyValues[0] is always the employee number. You cannot specify the employee number in keyValues[1] or keyValues[2].
 This method works even on a View Object which has no Entity Object
 base.  For this to work, however, the ViewObject's key
 attribute list must have been set up through a call to
 ViewObjectImpl.setKeyAttributeDefs(int[])
Then, the following code block will retrieve all rows whose attribute 0 is "PERM" and attribute 2 is 30.
    // First set up the key attributes
    myVO.setKeyAttributeDefs(new int[] { 0, 2 });
    // The key will consist of 2 parts.  The first part is
    // for attribtue 0 and the second is for attribute 2.
    Object [] keyValues = new Object[2];
    keyValues[0] = "PERM";
    keyValues[1] = new Integer(30);
    Row[] rows = myAM.findByKey(new Key(keyValues), -1);
 
 Internally, findByKey() works as follows for
 a View Object with Entity Object bases: It takes the first
 non-null entity key from key.
 It uses it to find the Entity row in the cache.  If it
 finds it, then it looks at all View rows in the Row Set collection
 that uses that Entity row and apply the remaining keys to qualify them.
 It may or may not find as many rows as requested.
 
 If the requested number of rows have been found, the array
 returns.  Otherwise, a check is made to see if the View Object's
 fetch size is unlimited (which is -1, see
 ViewObject.setMaxFetchSize(int)
 Otherwise (the requested number of rows not yet found and
 the Row Set has not yet fetched all rows or the fetch size
 is not -1), the search continues.  We now use the key
 build a where-clause for an internal View Object.  That
 where-clause is applied and qualifying rows are retrieved from
 it to find the requested number of rows.
 
For a View Object which has no Entity Object base, we simply skip the step of looking in the Entity Object cache. Other than that, the logic is applied.
 As new rows are retrieved from database they are added to the
 Row Set collection.  Thus, the user can work with these rows immediately,
 e.g., call RowIterator.setCurrentRow(Row)
This method does not fire any navigation event, nor does it move the range or the current row. Also, as rows are added to the Row Set collection, no insertion event fires (as this is analogous to fetching rows).
 See RowIterator.getRow(Key)getRow(Key).
 
findByKey in interface RowIteratorkey - the key to match.maxNumOfRows - the maximum size of the array to return,
                        or -1 to return all rows.public RowIterator findByAltKey(java.lang.String keyName, Key key, int maxNumOfRows, boolean skipWhere)
RowIteratorRowIterator.findByKey(Key, int)keyName parameter.
 
 A skipWhere parameter controls
 whether or notthe current view object's where-clause is included 
 in the db query if a db query is issued to get the row(s).  
 
 It returns a RowIterator and not a row array.  You
 can enumerate through rows of this row iterator.
 
findByAltKey in interface RowIteratorkeyName - the name of the alternate key.  If null
                        the primary key is specified, i.e., this function call
                        becomes equivalent to findByKey with
                        skipWhere = false.key - the alternate key to match.maxNumOfRows - the maximum size of the array to return,
                        or -1 to return all rows.skipWhere - A flag that controls whether, when a db query is issued
                        to get the matching row(s), the view object's current
                        where-clause is to be included in the query or not.public RowIterator findByViewCriteria(ViewCriteria criteria, int maxNumOfRows, int queryMode)
RowIteratorViewCriteria
 The queryMode parameter controls the manner in which
 the qualifying View rows are searched.  See the QUERY_MODE_...
 constants in ViewObject
 If QUERY_MODE_SCAN_VIEW_ROWS is specified,
 the existing View rows in the current Row Set are scanned for
 matching rows.
 
 If QUERY_MODE_SCAN_ENTITY_ROWS is specified,
 the Entity cache is searched for qualifying rows.  If qualifying
 rows are found, they are added to the current Row Set.  I.e.,
 they become part of the current row collection.  Internally,
 a finder View Object is created to search the Entity cache and
 to produce View rows from the Entity cache.
 
 If QUERY_MODE_SCAN_DATABASE_TABLES is specified,
 a database query is issued to find matching rows.  The View
 Criteria is converted into a where-clause.
 ViewObject.applyViewCriteria(ViewCriteria)
Upon completion of this operation, the finder View Object is closed and removed.
findByViewCriteria in interface RowIteratorcriteria - the View Criteria to be used to qualify View rows.maxNumOfRows - the maximum size of the array to return,
                        or -1 to return all rows.  If a value
                        other than -1 is specified and if the
                        specified number of rows is reached, the method
                        returns without performing any further operation.queryMode - the mode in which qualify View rows are scanned.
                        See above for further info.public Key createKey(AttributeList nvp)
RowIteratorcreateKey in interface RowIteratorpublic Row[] findByEntity(int eRowHandle, int maxNumOfRows)
RowIteratoreRowHandle.
 findByEntity in interface RowIteratoreRowHandle - the Entity row handle.maxNumOfRows - the maximum size of the row array to return,
                        or -1 to return all rows.public void setRowValidation(boolean flag)
RowIteratorsetRowValidation in interface RowIteratorflag - Whether to turn row validation off or not.public boolean isRowValidation()
RowIteratorisRowValidation in interface RowIteratorpublic int getIterMode()
RowIteratorgetIterMode in interface RowIteratorpublic void setIterMode(int mode)
RowIteratorsetIterMode in interface RowIteratormode - 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".public boolean hasVariables()
VariableManagerOwnerBasehasVariables in interface VariableManagerOwnerBasehasVariables in class ComponentObjectImplpublic VariableValueManager getVariableManager()
VariableManagerOwnerBasenull if Variable Value Manager has
 been initialized.
 When a framework object is first created, its Variable Value Manager may be null. This method does not initialize (create) the Variable Value Manager.
 VariableManagerOwnerBase.ensureVariableManager()
getVariableManager in interface VariableManagerOwnerBasegetVariableManager in class ComponentObjectImplnull if one was not yet initialized.public VariableValueManager ensureVariableManager()
VariableManagerOwnerBaseensureVariableManager in interface VariableManagerOwnerBaseensureVariableManager in class ComponentObjectImplpublic java.lang.Object getProperty(java.lang.String hintName)
NamedObjectImplgetProperty in interface PropertiesgetProperty in class NamedObjectImplhintName - a string to be used as a hash table key.hintName, if any,
     otherwise null.public java.lang.Object refreshProperty(java.lang.String hintName)
NamedObjectImplgetProperty.refreshProperty in interface PropertiesrefreshProperty in class NamedObjectImplhintName - Property name.null.public java.util.Hashtable getProperties()
NamedObjectImplgetProperties in interface PropertiesgetProperties in class NamedObjectImplpublic Node writeXML(int depthCount, long options)
XMLInterfaceViewObjectImpl 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:
EntityImpl. writeXML in interface XMLInterfacedepthCount - represents to what level the rendering should recurse.options - a set of bit flags that will control the writeXML
 behavior.public Node writeXML(int depthCount, long options, XSLStylesheet xslt)
writeXML in interface XMLInterfacepublic void readXML(Element elem, int depthCount)
readXML in interface XMLInterfacepublic void readXML(Element elem, int depthCount, XSLStylesheet xslt)
readXML in interface XMLInterfacepublic Node writeXML(long options, java.util.HashMap voAttrMap)
XMLInterfaceViewObjectImpl 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:
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.
writeXML in interface XMLInterfaceoptions - a set of bit flags that will control the writeXMLvoAttrMap - HashMap containing Definition names of ViewObjects and an
 array of AttributeDef to render for a ViewObject of that definition type.public Node writeXML(long options, java.util.HashMap voAttrMap, XSLStylesheet xslt)
writeXML in interface XMLInterfacepublic RowSet deepCopy(java.util.HashMap voAttrMap, long options)
RowSetRowSet. To avoid unique key constraint 
 violations, the values of the key attributes are not copied. 
 
 voAttrMap attribute could be used to
 specify a subset of the attributes that need to be copied.
 The map consists of name value pairs of the view object name
 and its attributes.
 
 By including the name of the Accessor in the voAttrMap
 as a key, deep copy could be used to copy rows obtained by
 traversing the view links. 
 
Example 1: Deep copy a OrderLine RowSet copying attributes value of Item ID, Order ID and Description of a OrderLine view row.
     voOrderLine     = myAM.findViewObject("OrderLine");
     attrFilter      = new HashMap();
     filterAttrDefs  = new ArrayList();
     filterAttrDefs.add("ItemID");
     filterAttrDefs.add("OrderID");
     filterAttrDefs.add("Description");
     attrFilter.put(voOrderLine.getDefFullName(), 
                   (String[]) filterAttrDefs.toArray(new String[filterAttrDefs.size()]));
     RowSet rsOrderLinesCopy = rsOrderLines.deepCopy(attrFilter, RowSet.COPY_OPT_ALL_ROWS);
 
 Row API could be used to set the primary keys
 on the newly created rows and eventually the transaction commit
 would insert the rows in the database.     
 Example 2: Deep copy a set of Orders and their Lines. Copy the Customer attribute from an Order and Item ID, Description from Order Lines.
     voOrder         = myAM.findViewObject("Order");
     voOrderLine     = myAM.findViewObject("OrderLine");
     attrFilter      = new HashMap();
     filterAttrDefs  = new ArrayList();
     filterAttrDefs.add("Customer");
     // The name of the Order Line Accessor
     filterAttrDefs.add("Lines");
     attrFilter.put(voOrder.getDefFullName(), 
                   (String[]) filterAttrDefs.toArray(new String[filterAttrDefs.size()]));
     filterAttrDefs  = new ArrayList();
     filterAttrDefs.add("ItemID");
     filterAttrDefs.add("Description");
     attrFilter.put(voOrderLine.getDefFullName(), 
                   (String[]) filterAttrDefs.toArray(new String[filterAttrDefs.size()]));
     RowSet rsCopy = rs.deepCopy(attrFilter, RowSet.COPY_OPT_ALL_ROWS);
 
 For each Order row in the copied rowset the accessor could be used to get its
 Order Lines. If there is Cascade update set on the association, setting the Order number
 on an Order row would update the foreign key in its Order Line rows.deepCopy in interface RowSetvoAttrMap - a name value pair of a View Object name and an array of its
 AttributeDef objects or an array of attribute names. 
 A null value for this parameter results in copying
 all the non-key attribute values of this RowSet. 
 View Links are not traversed for a null value.options - valid values are RowSet.COPY_OPT_ALL_ROWS and RowSet.COPY_OPT_LIMIT_RANGE.RowSetpublic void resetExecuted()
RowSetresetExecuted in interface RowSetpublic java.lang.Class getMessageBundleClass()
getMessageBundleClass in interface VariableManagerOwnerBasegetMessageBundleClass in class ComponentObjectImpl