|
Oracle Fusion Middleware Java API Reference for Oracle ADF Model 11g Release 1 (11.1.1.5.0) E10653-06 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
oracle.jbo.common.PropertiesHelper
oracle.jbo.common.RowSetHelper
oracle.jbo.server.ViewRowSetImpl
public class ViewRowSetImpl
The middle-tier class that manages collections of view rows that result from executing a query.
A view row set belongs to a View Object. An important distinction between a View Object and a row set is that the View Object manages the query statement. All row sets that belong to a View Object use the same query statement. However, each row set supplies its own set of binding values. This arrangement is ideally for managing the master-detail relationship: the detail View Object supplies the same query statement for all detail row sets, while each row set builds its own bind values from its master row.
View rows are maintained in an ordered list, and each view row is identified by an index into this list. This index is referred as the absolute row index. An application can insert a row at any valid row index, or delete any row, which will cause the indices of following rows to be adjusted.
The work horse behind ViewRowSetImpl
are internal query collections. In a master-detail relationship the detail set is identified by its foreign key value. For example, consider the View Objects Dept and TempAgency, where Dept is the master and TempAgency is the detail, which are related through a View Link <emLocation. Suppose Depts 10 and 20 are located in "New York" and Dept 30 in "San Jose", and "New York" has two temp agencies "ABC and DEF", and "San Jose" has "GHI and JKL".
This scenario has two query collections on the detail (TempAgency) side, for "New York" and "San Jose". If the application invokes the assocation/View Link accessor to get the temp agencies from Dept, each Dept produces a view row set. Two view row sets, for Depts 10 and 20 show temp agencies in "New York", and Dept 30 shows the temp agencies in "San Jose". The first two view row sets share the same query collection, and the third has its own.
An internal table of master-key/query-collection pairs, the query collection hash table, is maintained for the View Object. When a new detail view row set is created, it checks this hash table to see if a query collection of the master key value already is in the list, and if found, uses it. Otherwise, the query is executed and a new query collection is created.
The position of a row inserted in the middle of the row set is temporary in that when the data is posted to the database, this position will not be preserved in the database. If the row set is executed again, refreshing its data from the database, the new row will appear in the position returned by the database.
ViewObject
, RowSet
, ViewObjectImpl
, ViewRowSetIteratorImpl
, Serialized FormField Summary | |
---|---|
static int |
FINDER_RANGE_SIZE_DEFAULT |
static int |
FINDER_RANGE_SIZE_MAX |
static int |
FINDER_RANGE_SIZE_SKIP |
static int |
FINDER_RANGE_SIZE_UNINITIALIZED |
static int |
mDefaultFinderRangeSize |
protected ViewRowSetIteratorImpl |
mDefaultView |
static byte |
mDefaultViewLinkMode |
protected java.util.ArrayList |
mMasterViews |
protected java.lang.Object[] |
mParamValues |
protected ViewObjectImpl |
mQRef |
protected java.util.ArrayList |
mUserParams |
protected java.util.HashMap |
mViewMap |
protected java.util.ArrayList |
mViews |
protected java.util.ArrayList |
mWhereParams |
static byte |
VIEWLINK_MODE_CONSISTENT |
static byte |
VIEWLINK_MODE_DEFAULT |
static byte |
VIEWLINK_MODE_INCONSISTENT |
static byte |
VIEWLINK_MODE_UNINITIALIZED |
Fields inherited from class oracle.jbo.common.RowSetHelper |
---|
listeners, mMgmtListeners, mName |
Fields inherited from class oracle.jbo.common.PropertiesHelper |
---|
mProperties |
Fields inherited from interface oracle.jbo.RowSet |
---|
COPY_OPT_ALL_ROWS, COPY_OPT_LIMIT_RANGE, FORWARD_ONLY, RANGE_PAGING, RANGE_PAGING_AUTO_POST, RANGE_PAGING_INCR, 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, XML_PASSIVATION_USE |
Constructor Summary | |
---|---|
ViewRowSetImpl(ViewObjectImpl vo, java.lang.String name, ViewRowSetIteratorImpl masterRSI) Constructs a new secondary (non-default) view row set. |
Method Summary | |
---|---|
void |
addListener(java.lang.Object listener) Adds an event listener to this object. |
void |
addManagementListener(RowSetManagementListener listener) Adds a subscriber (listener) to be notified of RowSetManagementListener events generated by this Row Set Iterator. |
void |
addRowSetManagementListener(RowSetManagementListener listener) |
boolean |
cancelQuery() Cancels a running query. |
protected void |
close(boolean keepQC) Closes the view row set. |
void |
closeRowSet() Closes the row set. |
void |
closeRowSetIterator() Closes this row set iterator. |
Row |
createAndInitRow(AttributeList initVals) 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 linkDefName) Creates and returns an new detail row set for this row set iterator. |
Key |
createKey(AttributeList nvp) Given a list of name-value pairs, creates a Key object that matches the key structure for the ViewObject for this RowItertor. |
Row |
createRow() Creates a new view row. |
RowSetIterator |
createRowSetIterator(java.lang.String name) Creates and returns a new row set iterator on this row set. |
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. |
boolean |
doesRowFilterMatch(Row[] masterRows, java.lang.Object[] rowFilterValues) |
static void |
dumpViewRowCache(RowSetIterator rsi, java.io.Writer out) Internal: Applications should not use this method. |
VariableValueManager |
ensureVariableManager() Returns this object's Variable Value Manager. |
java.util.Enumeration |
enumerateRowsInRange() Creates and returns an enumerator of the rows in the range. |
void |
execute(boolean forceFlag, boolean notifyFlag) Executes the query. |
void |
execute(boolean forceFlag, boolean notifyFlag, Row[] masterRows) |
java.lang.Object[] |
executeDetailQuery(Row[] masterRows) |
void |
executeEmptyRowSet() |
void |
executeQuery() Executes the query. |
void |
findAndSetCurrentRowByKey(Key key, int rangeIndex) |
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. |
Row[] |
findByKey(Key key, int maxNumOfRows, boolean skipWhere) |
RowIterator |
findByViewCriteria(ViewCriteria criteria, int maxNumOfRows, int queryMode) Finds and returns View rows that match the specified View Criteria. |
RowIterator |
findByViewCriteriaWithBindVars(ViewCriteria criteria, int maxNumOfRows, int queryMode, Variable[] bindVars, java.lang.Object[] bindValues) |
RowIterator |
findInCacheByAltKey(java.lang.String keyName, Key key, int maxNumOfRows) |
Row[] |
findInCacheByKey(Key key, int maxNumOfRows) |
RowSetIterator |
findRowSetIterator(java.lang.String rsiName) Gets the named row set iterator that was created at runtime for this row set. |
Row |
first() Navigates to the first row in the row set. |
void |
forceExecuteQueryOfSharedVO() Force RowSet of the shared ViewObject to execute the query. |
byte |
getAccessMode() |
Row[] |
getAllRowsInRange() Returns an array of all rows in the iterator's range. |
ApplicationModule |
getApplicationModule() Returns the application module to which this row set's View Object belongs. |
long |
getCappedRowCount(long cap) |
SvcMsgIteratorState |
getCliIteratorState() |
int[] |
getCollMgmtInfo() |
Row |
getCurrentRow() Returns the current row of the iterator. |
int |
getCurrentRowIndex() Returns the absolute row index of the current row in the row set. |
int |
getCurrentRowSlot() Returns the current row slot status. |
ViewRowSetIteratorImpl |
getDefaultRowSetIterator() Returns the default ViewRowSetIteratorImpl . |
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. |
long |
getDetailEstimatedRowCount(Row[] masterRows) |
RowSet[] |
getDetailRowSets() Returns an array of all detail row sets for this row set iterator. |
java.lang.String |
getElementTagName() |
int |
getEstimatedRangePageCount() Returns getEstimatedRowCount()/rangePageSize, if rangeSize > 0. |
long |
getEstimatedRowCount() Returns an estimated number of rows in this row set. |
int |
getFetchedRowCount() Returns the number of rows fetched from the JDBC RestultSet . |
Row[] |
getFilteredRows(RowQualifier qualifier) |
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(RowQualifier qualifier) |
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 . |
java.lang.String |
getFullName() |
int |
getIterMode() Gets the current iteration mode. |
RowSetIterator[] |
getMasterRowSetIterators() Returns an array of all master row set iterators for this row set. |
java.util.Vector |
getMasterViewRowSetIterators() Returns a list of all master row set iterators for this row set. |
java.util.ArrayList |
getMasterViewRowSetIteratorsList() Returns a list of all master row set iterators for this row set. |
java.lang.Class |
getMessageBundleClass() Internal: Applications should not use this method. |
java.lang.Object |
getNamedWhereClauseParam(java.lang.String name) Gets the value of a named where-clause parameter for this row set. |
AttributeList |
getNamedWhereClauseParams() Gets the name, value pair of all named bind variables. |
Row[] |
getNextRangeSet() Gets the next set of rows in the range. |
java.lang.Object[] |
getParameters(boolean nullValueFlag) Returns an array of bind values to be used for binding to the query. |
java.lang.Object[] |
getParameters(boolean nullValueFlag, Row[] masterRows) |
java.lang.Object[] |
getParametersAsStorageTypes() Returns an array of bind values to be used for binding to the query. |
java.lang.Object[] |
getParametersAsStorageTypes(Row[] masterRows) |
Row[] |
getPreviousRangeSet() Gets the previous set of rows in the range. |
java.util.Hashtable |
getProperties() Gets the table of properties. |
java.lang.Object |
getProperty(java.lang.String hintName) Retrieves the specified property, if it exists. |
QueryCollection |
getQueryCollection() Internal: Applications should not use this method. |
int |
getRangeIndexOf(Row row) Returns the range index of the row specified by row . |
int |
getRangePagingCacheFactor() |
int |
getRangeSize() Returns the range size of the iterator. |
int |
getRangeStart() Returns the absolute row index of the first row in the range. |
ResourceBundleDef |
getResourceBundleDef() |
Row |
getRow(int index) Returns the row at absolute row index of index . |
Row |
getRow(Key key) Returns the first row whose key matches key . |
Row |
getRowAtRangeIndex(int index) Returns the row at range index index . |
int |
getRowCount() Returns the total number of rows in this row set. |
int |
getRowCountInRange() Returns the actual number of rows in the range. |
java.lang.Object[] |
getRowFilterValues() |
Row |
getRowFromHandle(java.lang.Object rowHandle) Internal: Applications should not use this method. |
protected Row[] |
getRows(EntityImpl entity) Returns an array of view rows that use the specified entity row. |
RowSet |
getRowSet() Implements RowSetIterator.getRowSet . |
RowSetIterator |
getRowSetIterator() Returns the row set iterator interface of this object. |
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. |
java.lang.Object |
getVariableValue(java.lang.String varName) |
byte |
getViewLinkMode() Internal: Applications should not use this method. |
ViewObject |
getViewObject() Returns this row set's View Object. |
java.lang.Object[] |
getWhereClauseParams() Returns an array of bind values currently specified for the query. |
boolean |
hasDefaultRowSetIterator() |
boolean |
hasNext() Indicates whether the iterator has a next row or not. |
boolean |
hasPrevious() Indicates whether the iterator has a previous row or not. |
boolean |
hasVariables() Returns a flag indicating whether this object has Variables or not. |
protected boolean |
initQueryCollection(int forceFlag, RowFilter rowFilter) Sets up QueryCollection for the view row set. |
void |
insertRow(Row row) Inserts the row into the row set. |
void |
insertRowAt(int index, Row row) Inserts a view row at an absolute row index specified by index . |
void |
insertRowAtRangeIndex(int index, Row row) Inserts the row into the row set at the specified range index. |
boolean |
isAllRowsFetched() |
boolean |
isAssociationConsistent() Returns the association-consistent flag for this row set. |
boolean |
isDefaultRowSet() Internal: Applications should not use this method. |
boolean |
isDefaultRS() Internal: Applications should not use this method. |
boolean |
isDirty() Indicates whether data modifications have been performed since the last database post through this row set. |
boolean |
isExecuted() Indicates whether the query for this rowset has been executed once or not. |
boolean |
isExecutedInternal() |
boolean |
isExecutedNotEmpty() |
boolean |
isFetchComplete() Tests if the query result set has been fetched to the end. |
boolean |
isForwardOnly() Indicates whether this row set is forward-only or not. |
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. |
protected boolean |
isNotifiedRefresh() Indicates whether row set refresh event has been notified to the row set's listeners or not. |
boolean |
isPassivationEnabled() |
boolean |
isRangeAtBottom() Indicates whether the iterator range contains the last row of the row set. |
boolean |
isRangeAtTop() Indicates whether the iterator range contains the first row of the row set. |
boolean |
isRangePaging() |
boolean |
isRowValidation() Gets the validation flag on this iterator. |
boolean |
isScrollable() |
Row |
last() Navigates to the last row in the row set. |
ViewRowImpl |
makeRowCopy(ViewRowImpl vr) |
boolean |
needsRefresh() |
Row |
next() Navigates to the next row in the row set. |
void |
preFetchRowsByKeys(AttributeDef[] keyAttrs, Key[] keys) |
void |
preFetchRowsByKeys(AttributeDef[] keyAttrs, Key[] keys, Row parentRow) |
void |
prepareForBatchMode(SvcMsgIteratorState iteratorState, boolean setCurrentRow) |
Row |
previous() Navigates to the previous row in the row set. |
void |
printActiveObjsTab(java.io.PrintWriter pw) |
void |
printColl(java.io.PrintWriter pw, int printFlag) |
void |
printRUChain(java.io.PrintWriter pw) |
void |
readXML(Element elem, int depthCount) |
void |
readXML(Element elem, int depthCount, XSLStylesheet xslt) |
protected void |
reduceUserParamsToSize(int newSize) |
void |
refreshCache(int queryMode) |
java.lang.Object[] |
refreshCollection(Row[] masterRows, boolean resetIter, boolean fillUpRange) |
void |
refreshWhereClauseParams() |
void |
removeCurrentRow() Removes the current row. |
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 an event listener to this object from the listener list. |
void |
removeManagementListener(RowSetManagementListener listener) Removes a subscriber (listener) for RowSetManagementListener events generated by this row set iterator. |
boolean |
removeMasterRowSetIterator(RowSetIterator masterRSI) Removes the master row set iterator in a master-detail View Link. |
void |
removeNamedWhereClauseParam(java.lang.String name) Removes a named where-clause parameter. |
void |
removeRowAndRetainAt(int index) |
void |
removeRowAt(int index) Removes a view row at an absolute row index specified by index . |
void |
removeRowFromCollectionAt(int index) |
void |
removeRowHandle(java.lang.Object rowHandle) Deprecated. Since Jdeveloper 9.0.3. No replacement. No longer used. |
void |
removeRowSetManagementListener(RowSetManagementListener listener) |
void |
reset() Resets the iterator. |
void |
resetExecuted() This methods invalidates all the iterators on this rowset and marks the rowset as not executed. |
int |
scrollRange(int amount) Scrolls the range by amount . |
int |
scrollRangeTo(Row row, int index) Scrolls the range to a specific row. |
int |
scrollToRangePage(int amount) Moves the row set range start to the given page index where every page consists of RangeSize number of rows. |
void |
setAccessMode(byte flag) Constrains the row access based on the following settings: |
void |
setAssociationConsistent(boolean isConsistent) Sets the association-consistent flag for this row set. |
void |
setCollectionForRowFilter(java.lang.Object[] rowFilterValues, byte baseViewLinkMode) Internal: Applications should not use this method. |
boolean |
setCurrentRow(Row row) Moves the iterator to the row specified by row . |
boolean |
setCurrentRowAtRangeIndex(int index) Moves the iterator to the row whose range index is index . |
void |
setExecuteParameters(java.lang.Object[] userValues, java.lang.Object[] paramValues, boolean diffParams) |
void |
setForwardOnly(boolean isForwardOnly) Sets whether this row set will be forward-only or not. |
void |
setIterMode(int mode) Sets the iteration mode for this Row Iterator. |
boolean |
setMasterRowSetIterator(RowSetIterator masterRSI) Sets the master row set iterator in a master-detail View Link. |
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 name, bind value pair passed as AttributeList attrlist . |
void |
setOwnedByQC(boolean b) |
void |
setPassivationEnabled(boolean flag) |
void |
setPassivationEnabledInternal(boolean flag) |
void |
setRangePagingCacheFactor(int f) |
int |
setRangeSize(int size) Sets the range size for the iterator. |
int |
setRangeStart(int start) Sets the range position by the absolute row index specified in start . |
void |
setReceiveAllInsertEvents(boolean b) Internal: Applications should not use this method. |
void |
setRowFilterValues(java.lang.Object[] rowFilterValues) |
void |
setRowValidation(boolean flag) Sets the validation flag on this iterator. |
void |
setViewLinkMode(byte val) Internal: Applications should not use this method. |
void |
setWhereClauseParam(int index, java.lang.Object value) Sets the bind value at a specified index . |
void |
setWhereClauseParams(java.lang.Object[] values) Sets bind values for the query. |
void |
skipNamedWhereClauseParam(java.lang.String name) Skips the named where-clause parameter for this row set. |
void |
writeAsXml(XmlOutput out, Node node, Criteria rules) |
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 voAttrRules) Renders data in a canonical XML-format. |
Node |
writeXML(long options, java.util.HashMap map, XSLStylesheet xslt) |
Methods inherited from class oracle.jbo.common.RowSetHelper |
---|
fireMgmtIteratorClosed, fireMgmtIteratorReset, fireNavigationEvent, fireRangeRefreshed, fireRangeScrolled, fireRowDeleted, fireRowInserted, fireRowUpdated, getListeners, getListenersList, getManagementListenersList, getName, hasListeners, hasManagementListeners, setName, updateNamedWhereParamValues |
Methods inherited from class oracle.jbo.common.PropertiesHelper |
---|
closeObject, getImageLoc, getProperty, isReadOnly, refreshProperties, refreshProperty, setProperty |
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.Properties |
---|
getProperty, refreshProperty |
Methods inherited from interface oracle.jbo.XMLInterface |
---|
readXML, readXML, writeXML, writeXML, writeXML, writeXML |
Field Detail |
---|
protected ViewObjectImpl mQRef
protected java.util.ArrayList mViews
protected java.util.HashMap mViewMap
protected ViewRowSetIteratorImpl mDefaultView
protected java.util.ArrayList mMasterViews
protected java.util.ArrayList mUserParams
protected java.lang.Object[] mParamValues
protected java.util.ArrayList mWhereParams
public static final byte VIEWLINK_MODE_UNINITIALIZED
public static final byte VIEWLINK_MODE_INCONSISTENT
public static final byte VIEWLINK_MODE_CONSISTENT
public static final byte VIEWLINK_MODE_DEFAULT
public static byte mDefaultViewLinkMode
public static final int FINDER_RANGE_SIZE_UNINITIALIZED
public static final int FINDER_RANGE_SIZE_MAX
public static final int FINDER_RANGE_SIZE_SKIP
public static final int FINDER_RANGE_SIZE_DEFAULT
public static int mDefaultFinderRangeSize
Constructor Detail |
---|
public ViewRowSetImpl(ViewObjectImpl vo, java.lang.String name, ViewRowSetIteratorImpl masterRSI)
vo
- the View Object to which this view row set belongs.name
- name to be given to this view row set. If null
, the view row set is assigned the default row set name, which is the View Object's name, plus "_RowSet".masterRSI
- the master row set iterator if this view row set will be detail in a master-detail relationship. null
otherwise.Method Detail |
---|
public final java.lang.Object getSyncLock()
RowSetIterator
ApplicationModule.getSyncLock()
for details.getSyncLock
in interface RowSetIterator
public final boolean isNameGenerated()
RowSetIterator
isNameGenerated
in interface RowSetIterator
true
if the name was generated by the system. false
if the name was given by the user and not generated by the system.public boolean isDefaultRS()
Indicates whether this row set is the default row set for the View Object.
public boolean isDefaultRowSet()
isDefaultRowSet
in interface RowSet
protected boolean initQueryCollection(int forceFlag, RowFilter rowFilter)
QueryCollection
for the view row set.forceFlag
- indicates whether to force-create the query collection or not. If this flag is 0, we try to find an existing in the query collection list (of the View Object). If it is 1, we force a new QC, except if the VO's max-fetch-size = 0 in which case we look for existing. If -1, we force a new QC, regardless of the VO's max-fetch-size.rowFilter
- filter to initialize the query collection.protected void close(boolean keepQC)
It closes all row set iterators, removes itself from all master row set iterators, and possibly remove the query collection from the query collection list.
public void closeRowSet()
RowSet
closeRowSet
removes this row set from the master row set iterator.closeRowSet
in interface RowSet
public void closeRowSetIterator()
RowSetIterator
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.
closeRowSetIterator
in interface RowSetIterator
public void execute(boolean forceFlag, boolean notifyFlag)
forceFlag
controls whether a new query collection should be force-created or not. If true, the query collection list is not consulted and a new query collection is created. If false, we check the query collection list to see if one with the key exists. If so, we reuse the existing one.
If forceFlag
is true, the application may see a different set of rows than before, depending on the where-clause and data modifications performed by this application or other users.
See ViewObjectImpl.executeQuery
for explanation.
forceFlag
- indicates whether to force-create the query collection.notifyFlag
- indicates whether to send notification or not. If true, each row set iterator will fire a range refreshed event.ViewObjectImpl.executeQuery()
public void execute(boolean forceFlag, boolean notifyFlag, Row[] masterRows)
public void refreshCache(int queryMode)
public void executeQuery()
See ViewObjectImpl.executeQuery
for details.
executeQuery
in interface RowSet
ViewObjectImpl.executeQuery()
public void forceExecuteQueryOfSharedVO()
public java.lang.Object[] executeDetailQuery(Row[] masterRows)
executeDetailQuery
in interface WSRowSetMarshaller
public boolean doesRowFilterMatch(Row[] masterRows, java.lang.Object[] rowFilterValues)
doesRowFilterMatch
in interface WSRowSetMarshaller
public java.lang.Object[] refreshCollection(Row[] masterRows, boolean resetIter, boolean fillUpRange)
refreshCollection
in interface WSRowSetMarshaller
public void executeEmptyRowSet()
executeEmptyRowSet
in interface WSRowSetMarshaller
executeEmptyRowSet
in interface RowSet
public RowSetIterator createRowSetIterator(java.lang.String name)
createRowSetIterator
in interface RowSet
name
- the name of the new row set iterator.public void setCollectionForRowFilter(java.lang.Object[] rowFilterValues, byte baseViewLinkMode)
public RowSetIterator[] getRowSetIterators()
RowSet
getRowSetIterators
in interface RowSet
public RowSetIterator findRowSetIterator(java.lang.String rsiName)
RowSet
findRowSetIterator
in interface RowSet
rsiName
- 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 isExecuted()
isExecuted
in interface RowSet
public boolean isExecutedNotEmpty()
public boolean isExecutedInternal()
public void resetExecuted()
RowSet
resetExecuted
in interface RowSet
public final QueryCollection getQueryCollection()
Returns the query collection for this row set.
public void setOwnedByQC(boolean b)
public boolean hasDefaultRowSetIterator()
public ViewRowSetIteratorImpl getDefaultRowSetIterator()
ViewRowSetIteratorImpl
.
The default row set iterator has the same name as this row set object.
public void addListener(java.lang.Object listener)
listener
should implement the RowSetListener
interface.
addListener
in interface NavigatableRowIterator
addListener
in class RowSetHelper
listener
- the RowSetListener
registering interest in this object's events.public void removeListener(java.lang.Object listener)
listener
should implement the RowSetListener
interface.
removeListener
in interface NavigatableRowIterator
removeListener
in class RowSetHelper
listener
- the RowSetListener
to be removed.public void addManagementListener(RowSetManagementListener listener)
RowSetIterator
RowSetManagementListener
events generated by this Row Set Iterator.addManagementListener
in interface RowSetIterator
addManagementListener
in class RowSetHelper
listener
- the subscriber to be added. It should implement RowSetManagementListener
.public void removeManagementListener(RowSetManagementListener listener)
RowSetIterator
RowSetManagementListener
events generated by this row set iterator.removeManagementListener
in interface RowSetIterator
removeManagementListener
in class RowSetHelper
listener
- the subscriber to be removed.public void addRowSetManagementListener(RowSetManagementListener listener)
public void removeRowSetManagementListener(RowSetManagementListener listener)
public java.util.ArrayList getMasterViewRowSetIteratorsList()
public java.util.Vector getMasterViewRowSetIterators()
public boolean setMasterRowSetIterator(RowSetIterator masterRSI)
See ViewObjectImpl.setMasterRowSetIterator
for details.
setMasterRowSetIterator
in interface RowSet
masterRSI
- master row set iterator.ViewObjectImpl.setMasterRowSetIterator(RowSetIterator)
public boolean removeMasterRowSetIterator(RowSetIterator masterRSI)
See ViewObjectImpl.removeMasterRowSetIterator
for details.
removeMasterRowSetIterator
in interface RowSet
masterRSI
- master row set iterator to remove.ViewObjectImpl.removeMasterRowSetIterator(RowSetIterator)
public boolean isDirty()
protected boolean isNotifiedRefresh()
public ViewRowImpl makeRowCopy(ViewRowImpl vr)
public void insertRowAt(int index, Row row)
index
.
An absolute row index is a row index in the entire row set. It starts at 0.
index
- absolute row index at which the row is to be inserted.row
- the row to inserted.public void removeRowAt(int index)
index
.
An absolute row index is a row index in the entire row set. It starts at 0.
index
- absolute row index of the row to remove.public void removeRowFromCollectionAt(int index)
public void removeRowAndRetainAt(int index)
public Row createAndInitRow(AttributeList initVals)
RowIterator
createRow()
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 RowIterator
initVals
- a list of name-value pairs.public Row createRow()
See ViewObjectImpl.createRow
for details.
createRow
in interface RowIterator
ViewObjectImpl.createRow()
public int getRowCount()
See ViewObjectImpl.getRowCount
for details.
getRowCount
in interface RowIterator
ViewObjectImpl.getRowCount()
public int getEstimatedRangePageCount()
RowSetIterator
This number may fluxuate when the View Object is syncronized with its Entity Object.
getEstimatedRangePageCount
in interface RowSetIterator
public long getEstimatedRowCount()
See ViewObjectImpl.getEstimatedRowCount
for details.
getEstimatedRowCount
in interface RowSet
ViewObjectImpl.getEstimatedRowCount()
public long getDeferredEstimatedRowCount()
RowSet
getDeferredEstimatedRowCount
in interface RowSet
public long getDetailEstimatedRowCount(Row[] masterRows)
getDetailEstimatedRowCount
in interface WSRowSetMarshaller
public long getCappedRowCount(long cap)
getCappedRowCount
in interface RowSet
public RowSetIterator[] getMasterRowSetIterators()
getMasterRowSetIterators
in interface RowSet
public ApplicationModule getApplicationModule()
getApplicationModule
in interface RowSet
public ViewObject getViewObject()
getViewObject
in interface RowSet
ViewObject
this row set belongs to.public RowSet getRowSet()
RowSetIterator.getRowSet
.getRowSet
in interface RowSetIterator
public RowSetIterator getRowSetIterator()
public java.lang.Object[] getRowFilterValues()
getRowFilterValues
in interface WSRowSetIteratorMarshaller
public void setRowFilterValues(java.lang.Object[] rowFilterValues)
setRowFilterValues
in interface WSRowSetIteratorMarshaller
public SvcMsgIteratorState getCliIteratorState()
getCliIteratorState
in interface WSRowSetIteratorMarshaller
public void prepareForBatchMode(SvcMsgIteratorState iteratorState, boolean setCurrentRow)
prepareForBatchMode
in interface WSRowSetIteratorMarshaller
public int setRangeSize(int size)
See ViewObjectImpl.setRangeSize
for details.
setRangeSize
in interface RowIterator
size
- the new range size.ViewObjectImpl.setRangeSize(int)
public int getRangeSize()
See ViewObjectImpl.getRangeSize
for details.
getRangeSize
in interface RowIterator
ViewObjectImpl.getRangeSize()
public int getRangeStart()
See ViewObjectImpl.getRangeStart
for details.
getRangeStart
in interface RowIterator
ViewObjectImpl.getRangeStart()
public int setRangeStart(int start)
start
.
See ViewObjectImpl.setRangeStart
for details.
setRangeStart
in interface RowIterator
start
- absolute row index of the row that should be positioned as the first row of the range. An absolute row index is a row index in the entire row set. It starts at 0.ViewObjectImpl.setRangeStart(int)
public int scrollRange(int amount)
amount
.
See ViewObjectImpl.scrollRange
for details.
scrollRange
in interface RowIterator
amount
- the number of rows to scroll.ViewObjectImpl.scrollRange(int)
public int scrollToRangePage(int amount)
RowSetIterator
(rangeSize * (pageSize-1)) - getRangeStart();
scrollToRangePage
in interface RowSetIterator
amount
- the page number to go to in the result set.public int scrollRangeTo(Row row, int index)
See ViewObjectImpl.scrollRangeTo
for details.
scrollRangeTo
in interface RowIterator
row
- the row to scroll the range to.index
- the range index to position the row at.ViewObjectImpl.scrollRangeTo(Row, int)
public Row[] getAllRowsInRange()
See ViewObjectImpl.getAllRowsInRange
for details.
getAllRowsInRange
in interface RowIterator
ViewObjectImpl.getAllRowsInRange()
public Row[] getNextRangeSet()
RowSetIterator
getNextRangeSet()
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
to be sent to ScrollEvent
. To pick up such an event, the listener object must implement the RowSetListener.rangeScrolled(oracle.jbo.ScrollEvent)
interface. Further, this listener must be registered through a call to RowSetListener
(the listener object passed in as the parameter to NavigatableRowIterator.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
and sends it to NavigationEvent
.RowSetListener.navigated(oracle.jbo.NavigationEvent)
getNextRangeSet
in interface RowSetIterator
public Row[] getPreviousRangeSet()
RowSetIterator
getPreviousRangeSet()
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
to be sent to ScrollEvent
. To pick up such an event, the listener object must implement the RowSetListener.rangeScrolled(oracle.jbo.ScrollEvent)
interface. Further, this listener must be registered through a call to RowSetListener
(the listener object passed in as the parameter to NavigatableRowIterator.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
and sends it to NavigationEvent
.RowSetListener.navigated(oracle.jbo.NavigationEvent)
getPreviousRangeSet
in interface RowSetIterator
public java.util.Enumeration enumerateRowsInRange()
enumerateRowsInRange
in interface RowIterator
public int getFetchedRowCount()
RestultSet
.getFetchedRowCount
in interface RowIterator
public boolean isRangeAtBottom()
See ViewObjectImpl.isRangeAtBottom
for details.
isRangeAtBottom
in interface RowIterator
true
if the range contains the last row, false
if not.ViewObjectImpl.isRangeAtBottom()
public boolean isRangeAtTop()
See ViewObjectImpl.isRangeAtTop
for details.
isRangeAtTop
in interface RowIterator
true
if the range contains the first row, false
if not.ViewObjectImpl.isRangeAtTop()
public void insertRow(Row row)
This method does change currency. It sets the inserted row to be the current row (for the RSI through which the row is inserted). From an events standpoint, insertRow will generate two events: insert followed by navigated.
See ViewObjectImpl.insertRow
for details.
insertRow
in interface RowIterator
row
- the view row to insert.ViewObjectImpl.insertRow(Row)
public void insertRowAtRangeIndex(int index, Row row)
See ViewObjectImpl.insertRowAtRangeIndex
for details.
insertRowAtRangeIndex
in interface RowIterator
index
- the range index into which the row is to be inserted.row
- the view row to insert.ViewObjectImpl.insertRowAtRangeIndex(int, Row)
public Row getRowFromHandle(java.lang.Object rowHandle)
Returns the row with a handle specified by hdl
.
See ViewObjectImpl#getRowFromHandle(Object)
for details.
rowHandle
- the row handle.ViewObjectImpl.getRowFromHandle(Object)
public void removeRowHandle(java.lang.Object rowHandle)
Removes the row handle from the row handle hash table.
See ViewObjectImpl.removeRowHandle
for details.
rowHandle
- the row handle to remove.ViewObjectImpl.removeRowHandle(Object)
public Row getRow(Key key)
key
.
See ViewObjectImpl.getRow
for details.
getRow
in interface RowIterator
key
- key to match.null
if no match.ViewObjectImpl.getRow(Key)
public int getRangeIndexOf(Row row)
row
.
See ViewObjectImpl.getRangeIndexOf
for details.
getRangeIndexOf
in interface RowIterator
row
- the row in question.ViewObjectImpl.getRangeIndexOf(Row)
public void removeCurrentRow()
See ViewObjectImpl.removeCurrentRow
for details.
removeCurrentRow
in interface RowIterator
ViewObjectImpl.removeCurrentRow()
public 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
, change currency to the desired location, and then call RowIterator.removeCurrentRowAndRetain()
with that row.RowIterator.insertRow(oracle.jbo.Row)
removeCurrentRowFromCollection
in interface RowIterator
public Row removeCurrentRowAndRetain()
RowIterator
It 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
in that after the current row is removed from the collection, it can be inserted back into the collection at another location.RowIterator.removeCurrentRowFromCollection()
To do so, call
, and get the returning row. Then, change currency to the desired location, and call RowIterator.removeCurrentRowAndRetain()
with that row.RowIterator.insertRow(oracle.jbo.Row)
removeCurrentRowAndRetain
in interface RowIterator
public void setRowValidation(boolean flag)
RowIterator
setRowValidation
in interface RowIterator
flag
- Whether to turn row validation off or not.public boolean isRowValidation()
RowIterator
isRowValidation
in interface RowIterator
public boolean setCurrentRow(Row row)
row
.
See ViewObjectImpl.setCurrentRow
for details.
setCurrentRow
in interface RowIterator
row
- the new current row.ViewObjectImpl.setCurrentRow(Row)
public boolean setCurrentRowAtRangeIndex(int index)
index
.
See ViewObjectImpl.setCurrentRowAtRangeIndex
for details.
setCurrentRowAtRangeIndex
in interface RowIterator
index
- range index to which to move the current row.ViewObjectImpl.setCurrentRowAtRangeIndex(int)
public Row getCurrentRow()
See ViewObjectImpl.getCurrentRow
for details.
getCurrentRow
in interface RowIterator
null
if no current row.ViewObjectImpl.getCurrentRow()
public int getCurrentRowIndex()
See ViewObjectImpl.getCurrentRowIndex
for details.
getCurrentRowIndex
in interface RowIterator
reset
.ViewObjectImpl.getCurrentRowIndex()
public int getCurrentRowSlot()
See ViewObjectImpl.getCurrentRowSlot
for details.
getCurrentRowSlot
in interface RowIterator
ViewObjectImpl.getCurrentRowSlot()
public int getIterMode()
RowIterator
getIterMode
in interface RowIterator
public void setIterMode(int mode)
RowIterator
setIterMode
in interface RowIterator
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".public boolean hasNext()
See ViewObjectImpl.hasNext
for details.
hasNext
in interface RowIterator
true
if there is a next row, false
if not.ViewObjectImpl.hasNext()
public boolean hasPrevious()
See ViewObjectImpl.hasPrevious
for details.
hasPrevious
in interface RowIterator
true
if there is a previous row, false
if not.ViewObjectImpl.hasPrevious()
public Row first()
See ViewObjectImpl.first
for details.
first
in interface RowIterator
null
if the row set has no rows.ViewObjectImpl.first()
public Row last()
See ViewObjectImpl.last
for details.
last
in interface RowIterator
null
if the row set has no rows.ViewObjectImpl.last()
public Row next()
See ViewObjectImpl.next
for details.
next
in interface RowIterator
null
if no next row. If no next row, the current row is not moved.ViewObjectImpl.next()
public Row previous()
See ViewObjectImpl.previous
for details.
previous
in interface RowIterator
null
if no previous row. If no previous row, the current row is not moved.ViewObjectImpl.previous()
public void reset()
See ViewObjectImpl.reset
for details.
reset
in interface RowIterator
ViewObjectImpl.reset()
public RowSet[] getDetailRowSets()
ViewObjectImpl.getDetailRowSets
for details.getDetailRowSets
in interface RowSetIterator
ViewObjectImpl.getDetailRowSets()
public RowSet createDetailRowSet(java.lang.String rsName, java.lang.String linkDefName)
See ViewObjectImpl.createDetailRowSet
for details.
createDetailRowSet
in interface RowSetIterator
rsName
- the name of the row set to be assigned to the new detail row set.linkDefName
- identifies the View Link definition that defines the master-detail relationship between this row set iterator and the new detail row set.ViewObjectImpl.createDetailRowSet(String, String)
public void setForwardOnly(boolean isForwardOnly)
See ViewObjectImpl.setForwardOnly
for details.
setForwardOnly
in interface RowSet
isForwardOnly
- indicates whether the row set should be forward-only or not.ViewObjectImpl.setForwardOnly(boolean)
public final boolean isForwardOnly()
See ViewObjectImpl.isForwardOnly
for details.
isForwardOnly
in interface RowSet
ViewObjectImpl.isForwardOnly()
public final boolean isRangePaging()
public final boolean isScrollable()
public final byte getAccessMode()
getAccessMode
in interface RowSet
RowSet.setAccessMode(byte)
public void setAccessMode(byte flag)
RowSet
Switching 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 RowSet
flag
- One of the four enumerated values RowSet.SCROLLABLE
, RowSet.FORWARD_ONLY
, RowSet.RANGE_PAGING
, RowSet.RANGE_PAGING_AUTO_POST
.public int getRangePagingCacheFactor()
getRangePagingCacheFactor
in interface RowSet
public void setRangePagingCacheFactor(int f)
setRangePagingCacheFactor
in interface RowSet
public byte getViewLinkMode()
public void setViewLinkMode(byte val)
public void setAssociationConsistent(boolean isConsistent)
See ViewObjectImpl.setAssociationConsistent
for details.
setAssociationConsistent
in interface RowSet
isConsistent
- indicates whether association-consistency should be on or not.ViewObjectImpl.setAssociationConsistent(boolean)
public final boolean isMaxFetchSizeExceeded()
RowSet
isMaxFetchSizeExceeded
in interface RowSet
true
if the result set has been fetched to the maxFetchSize limit and there are still more rows in the database.public boolean isFetchComplete()
RowSet
isFetchComplete
in interface RowSet
true
if the result set has been fetched to the end.public boolean isAllRowsFetched()
public boolean isAssociationConsistent()
See ViewObjectImpl.isAssociationConsistent
for details.
isAssociationConsistent
in interface RowSet
ViewObjectImpl.isAssociationConsistent()
public int getRowCountInRange()
See ViewObjectImpl.getRowCountInRange
for details.
getRowCountInRange
in interface RowIterator
ViewObjectImpl.getRowCountInRange()
protected void reduceUserParamsToSize(int newSize)
public void setWhereClauseParams(java.lang.Object[] values)
See ViewObjectImpl.setWhereClauseParams
for details.
setWhereClauseParams
in interface RowSet
values
- an array of bind values.ViewObjectImpl.setWhereClauseParams(Object[])
public void setExecuteParameters(java.lang.Object[] userValues, java.lang.Object[] paramValues, boolean diffParams)
public void setWhereClauseParam(int index, java.lang.Object value)
index
.
See ViewObjectImpl.setWhereClauseParam
for details.
setWhereClauseParam
in interface RowSet
index
- index of the bind value.value
- the bind value.ViewObjectImpl.setWhereClauseParam(int, Object)
public void setNamedWhereClauseParams(AttributeList attrlist)
AttributeList attrlist
.
See ViewObjectImpl.setNamedWhereClauseParams
for details.
setNamedWhereClauseParams
in interface RowSet
attrlist
- having the name, bind value pairs.public AttributeList getNamedWhereClauseParams()
See ViewObjectImpl.getNamedWhereClauseParams
for details.
getNamedWhereClauseParams
in interface RowSet
public void refreshWhereClauseParams()
refreshWhereClauseParams
in interface WSRowSetMarshaller
public void defineNamedWhereClauseParam(java.lang.String name, java.lang.Object defaultValue, int[] indices)
RowSet
This 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
to apply the new bind value.RowSet.executeQuery()
defineNamedWhereClauseParam
in interface RowSet
name
- 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
for the removal to take effect.RowSet.executeQuery()
removeNamedWhereClauseParam
in interface RowSet
name
- the name of the where-clause parameter to remove.public java.lang.Object getNamedWhereClauseParam(java.lang.String name)
RowSet
If the view object owns multiple row sets, each row set may have its own (different) named where-clause parameter value.
getNamedWhereClauseParam
in interface RowSet
name
- the name of the where-clause parameter.public void setNamedWhereClauseParam(java.lang.String name, java.lang.Object value)
RowSet
If 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
to apply the new bind value.RowSet.executeQuery()
setNamedWhereClauseParam
in interface RowSet
name
- 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
for the skip to take effect.RowSet.executeQuery()
skipNamedWhereClauseParam
in interface RowSet
name
- the name of the where-clause parameter.public java.lang.Object[] getWhereClauseParams()
ViewObjectImpl.getWhereClauseParams
for details.getWhereClauseParams
in interface RowSet
ViewObjectImpl.getWhereClauseParams()
public java.lang.Object getVariableValue(java.lang.String varName)
public java.lang.Object[] getParametersAsStorageTypes()
See ViewObjectImpl.getParametersAsStorageTypes
for details.
null
if there is no bind value to return.ViewObjectImpl.getParametersAsStorageTypes()
public java.lang.Object[] getParametersAsStorageTypes(Row[] masterRows)
public Row getRow(int index)
index
.
An absolute row index is a row index in the entire row set. It starts at 0.
index
- the absolute row index.null
if the index is invalid.public Row getRowAtRangeIndex(int index)
index
.
Range index is a 0 based index within the range.
getRowAtRangeIndex
in interface RowIterator
index
- range index of the row.null
if the index is outside the range, or if there is no row at the specified index.public static void dumpViewRowCache(RowSetIterator rsi, java.io.Writer out)
Debug routine that prints the view row cache content for the query collection.
View row cache manages mapping between entity rows and view rows. If a View Object consists of entities A, B, C, each view row consists of three entity rows (from A, B, and C, respectively). For this, the view row cache manages three hash tables, each mapping the entity row to view rows that use it as a constituent entity row.
This method dumps the content of that mapping to out
.
rsi
- the row set iterator whose view row cache is to be dumped.out
- where to dump the output.protected Row[] getRows(EntityImpl entity)
A view row consists of entity rows. This method returns all view rows (so far retrieved) that use the entity row specified by entity
entity
. null
if no view row uses entity
.public Row[] findInCacheByKey(Key key, int maxNumOfRows)
public RowIterator findInCacheByAltKey(java.lang.String keyName, Key key, int maxNumOfRows)
public Row[] findByKey(Key key, int maxNumOfRows)
See
for details.RowIterator.findByKey(oracle.jbo.Key, int)
findByKey
in interface RowIterator
key
- the key to match.maxNumOfRows
- the maximum size of the array to return, or -1 to return all rows.public Row[] findByKey(Key key, int maxNumOfRows, boolean skipWhere)
public RowIterator findByAltKey(java.lang.String keyName, Key key, int maxNumOfRows, boolean skipWhere)
RowIterator
RowIterator.findByKey(Key, int)
with a few extra functionalities. The key is for an alternate key. You can specifcy the alternate key name through the 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 RowIterator
keyName
- 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 void findAndSetCurrentRowByKey(Key key, int rangeIndex)
findAndSetCurrentRowByKey
in interface WSRowSetIteratorMarshaller
public boolean needsRefresh()
needsRefresh
in interface WSRowSetIteratorMarshaller
public RowIterator findByViewCriteria(ViewCriteria criteria, int maxNumOfRows, int queryMode)
RowIterator
ViewCriteria
for details on how to build and use a View Criteria.
The queryMode
parameter controls the manner in which the qualifying View rows are searched. See the QUERY_MODE_...
constants in
for different contants that can be specified (they can be OR'ed together).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.
on the finder View Object is invoked and the query executed.ViewObject.applyViewCriteria(ViewCriteria)
Upon completion of this operation, the finder View Object is closed and removed.
findByViewCriteria
in interface RowIterator
criteria
- 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 RowIterator findByViewCriteriaWithBindVars(ViewCriteria criteria, int maxNumOfRows, int queryMode, Variable[] bindVars, java.lang.Object[] bindValues)
public Key createKey(AttributeList nvp)
RowIterator
createKey
in interface RowIterator
public Row[] findByEntity(int eRowHandle, int maxNumOfRows)
RowIterator
eRowHandle
.findByEntity
in interface RowIterator
eRowHandle
- the Entity row handle.maxNumOfRows
- the maximum size of the row array to return, or -1 to return all rows.public java.lang.Object[] getParameters(boolean nullValueFlag)
This array is a union of the following set of bind values:
setWhereClauseParam
).This method differs from getParametersAsStorageTypes
in that, if the bind values are domain instanes, this method returns them as is, while getParametersAsStorageTypes
returns the actual data out of the domain.
null
if there is no bind value to return.public java.lang.Object[] getParameters(boolean nullValueFlag, Row[] masterRows)
public void printActiveObjsTab(java.io.PrintWriter pw)
public void printRUChain(java.io.PrintWriter pw)
public void printColl(java.io.PrintWriter pw, int printFlag)
public int[] getCollMgmtInfo()
public Row[] getFilteredRows(RowQualifier qualifier)
public Row[] getFilteredRowsInRange(RowQualifier qualifier)
public Row[] getFilteredRows(java.lang.String attrName, java.lang.Object attrValue)
RowSetIterator
attrValue
.
Note that this method does not affect the current RowSetIterator
.
getFilteredRows
in interface RowSetIterator
attrName
- 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)
RowSetIterator
attrValue
.
This method uses getAllRowsInRange()
to retrieve all rows and then match the rows.
getFilteredRowsInRange
in interface RowSetIterator
attrName
- name of the attribute to be used for filtering.attrValue
- attribute value for filtering.public void setPassivationEnabled(boolean flag)
public boolean isPassivationEnabled()
public void setPassivationEnabledInternal(boolean flag)
public void setReceiveAllInsertEvents(boolean b)
public VariableValueManager getVariableManager()
VariableManagerOwnerBase
null
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.
in contrast, ensures that the Variable Value Manager is initialized (created).VariableManagerOwnerBase.ensureVariableManager()
getVariableManager
in interface VariableManagerOwnerBase
null
if one was not yet initialized.public boolean hasVariables()
VariableManagerOwnerBase
hasVariables
in interface VariableManagerOwnerBase
public VariableValueManager ensureVariableManager()
VariableManagerOwnerBase
ensureVariableManager
in interface VariableManagerOwnerBase
public java.lang.Class getMessageBundleClass()
RowSetHelper
Returns the class of the reference object.
getMessageBundleClass
in interface VariableManagerOwnerBase
getMessageBundleClass
in class RowSetHelper
public ResourceBundleDef getResourceBundleDef()
getResourceBundleDef
in interface VariableManagerOwnerBase
public boolean cancelQuery()
RowSet
cancelQuery
in interface RowSet
false
if the JDBC statement is not executing a query.public RowSet deepCopy(java.util.HashMap voAttrMap, long options)
RowSet
RowSet
. 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 RowSet
voAttrMap
- 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
.RowSet
public java.lang.Object getProperty(java.lang.String hintName)
Properties
getProperty
in interface Properties
hintName
- Property name.null
.public java.util.Hashtable getProperties()
Properties
getProperties
in interface Properties
public void preFetchRowsByKeys(AttributeDef[] keyAttrs, Key[] keys)
public void preFetchRowsByKeys(AttributeDef[] keyAttrs, Key[] keys, Row parentRow)
public java.lang.String getFullName()
public final Node writeXML(long options, java.util.HashMap voAttrRules)
XMLInterface
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:
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 XMLInterface
options
- a set of bit flags that will control the writeXMLvoAttrRules
- HashMap containing Definition names of ViewObjects and an array of AttributeDef to render for a ViewObject of that definition type.public Node writeXML(int depthCount, long options)
XMLInterface
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:
EntityImpl
.writeXML
in interface XMLInterface
depthCount
- represents to what level the rendering should recurse.options
- a set of bit flags that will control the writeXML behavior.public Node writeXML(long options, java.util.HashMap map, XSLStylesheet xslt)
writeXML
in interface XMLInterface
public Node writeXML(int depthCount, long options, XSLStylesheet xslt)
writeXML
in interface XMLInterface
public void readXML(Element elem, int depthCount, XSLStylesheet xslt)
readXML
in interface XMLInterface
public java.lang.String getElementTagName()
getElementTagName
in interface XmlSerializable
public void writeAsXml(XmlOutput out, Node node, Criteria rules)
writeAsXml
in interface XmlSerializable
public void readXML(Element elem, int depthCount)
readXML
in interface XMLInterface
|
Oracle Fusion Middleware Java API Reference for Oracle ADF Model 11g Release 1 (11.1.1.5.0) E10653-06 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |