|
Oracle Fusion Middleware Java API Reference for Oracle ADF Model 11g Release 1 (11.1.1.7.0) E10653-08 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectoracle.jbo.common.PropertiesHelper
oracle.jbo.client.remote.ComponentHintsHelper
oracle.jbo.client.remote.ViewUsageImpl
public class ViewUsageImpl
Field Summary | |
---|---|
protected ApplicationModuleImpl |
mAM
|
protected ViewCriteria |
mCriteria
|
protected boolean |
mCriteriaGotten
|
protected RowSet |
mDefaultRowSet
|
protected java.lang.String |
mDefFullName
|
protected java.lang.String |
mDefName
|
protected java.lang.String |
mFullName
|
protected int |
mId
|
protected java.lang.String |
mInterfaceName
|
protected boolean |
mIsInternal
|
protected boolean |
mIsReadOnly
|
protected java.lang.String |
mName
|
protected java.lang.String |
mRowProxyClassName
|
protected StructureDefImpl |
mStruct
|
protected java.util.ArrayList |
mViewLinks
|
Fields inherited from class oracle.jbo.common.PropertiesHelper |
---|
mProperties |
Fields inherited from interface oracle.jbo.ViewObject |
---|
IMAGE_LOC, PROP_ALWAYS_USE_SORT, QUERY_MODE_SCAN_DATABASE_TABLES, QUERY_MODE_SCAN_ENTITY_ROWS, QUERY_MODE_SCAN_UNPOSTED_ENTITY_ROWS, QUERY_MODE_SCAN_VIEW_ROWS, QUERY_MODE_SKIP_WHERE, QUERY_TIMEOUT_WAIT_FOREVER, XML_ELEM_PASSIVATE_TRANSIENT |
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 |
Fields inherited from interface oracle.jbo.GenericHints |
---|
PROPERTY_LABEL, PROPERTY_LABEL_PLURAL, PROPERTY_TOOLTIP |
Fields inherited from interface oracle.jbo.ViewCriteriaManager |
---|
DFLT_VIEW_CRITERIA_NAME, IMPLICIT_VIEW_CRITERIA_NAME, QUICKSEARCH_VIEW_CRITERIA_NAME |
Constructor Summary | |
---|---|
protected |
ViewUsageImpl()
|
Method Summary | |
---|---|
AttributeDef |
addDynamicAttribute(java.lang.String attrName)
Adds a dynamic attribute (an AttributeDefImpl) to this view object's row set. |
AttributeDef |
addDynamicAttributeWithType(java.lang.String attrName,
java.lang.String javaTypeName,
java.lang.String transientExpression)
|
void |
addInternalListener(java.lang.Object target)
|
void |
addListener(java.lang.Object target)
Adds a subscriber (listener) to be notified of RowSetListener
events generated by this row set iterator. |
void |
addManagementListener(RowSetManagementListener target)
Adds a subscriber (listener) to be notified of RowSetManagementListener
events generated by this Row Set Iterator. |
void |
addQueryMode(int queryMode)
Adds query mode for the view object. |
protected void |
addViewLink(ViewLink viewLink)
|
AttributeDef |
addViewLinkAccessor(java.lang.String accrName)
|
void |
applyViewCriteria(ViewCriteria criteria)
Applies the view criteria to this view object. |
void |
applyViewCriteria(ViewCriteria criteria,
boolean bAppend)
Applied the view criteria to this view object. |
CriteriaClauses |
buildViewCriteriaClauses(ViewCriteria vc)
This method is used by the framework to generate a query clause for a particular view criteria. |
boolean |
cancelQuery()
Cancels a running query. |
void |
clearCache()
Clears the view object cache. |
void |
clearViewCriterias()
Clear all view criteria, both applied and unapplied help by this manager |
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 voName,
java.lang.String linkDefName)
Create a row set for the view link. |
Key |
createKey(AttributeList nvp)
Given a set of attribute values (name-value pairs), creates a key object for this ViewObject. |
Row |
createRow()
Creates a new Row object, but does not insert it into the Row Set. |
RowSet |
createRowSet(java.lang.String name)
Creates and returns a new (secondary) row set for this view object. |
RowSetIterator |
createRowSetIterator(java.lang.String name)
Creates an iterator for the row set. |
ViewCriteria |
createViewCriteria()
View Criteria factory |
void |
criteriaChanged(ViewCriteria vc)
The criteria manager can track changes to applied view criteria. |
RowSet |
deepCopy(java.util.HashMap voAttrMap,
long options)
This method delegates to the default 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 Enumeration of all rows in the Row Set. |
void |
executeEmptyRowSet()
|
void |
executeQuery()
Executes the query. |
protected void |
finalize()
void addRowCount(Object rowHandle) { Integer entry = (Integer) mRowCount.get(rowHandle); if (entry == null) { mRowCount.put(rowHandle, new Integer(1)); } else { mRowCount.put(rowHandle, new Integer(entry.intValue() + 1)); } } boolean releaseRowCount(Object rowHandle) { Integer entry = (Integer) mRowCount.get(rowHandle); int useCount = entry.intValue(); Diagnostic.ASSERT(entry != null, "Cannot find row use entry for handle = " + ((Integer) rowHandle).intValue()); if (useCount == 1) { mRowCount.remove(rowHandle); return true; } else { mRowCount.put(rowHandle, new Integer(useCount - 1)); return false; } } |
void |
findAndSetCurrentRowByKey(Key k,
int rangeIndex)
|
AttributeDef |
findAttributeDef(java.lang.String name)
Gets an attribute definition, given its name. |
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. |
ListBindingDef |
findListBindingDef(java.lang.String name)
Return listbinding definition if defined in this ViewObject (or in the entity definitions for entities that this ViewObject constitutes of). |
OperationDefinitions |
findOperationDefinitions()
|
RowSet |
findRowSet(java.lang.String name)
Gets the named row set that was created at runtime for this view object. |
RowSetIterator |
findRowSetIterator(java.lang.String name)
Gets the named row set iterator that was created at runtime for this row set. |
AttributeDef |
findViewLinkAccessor(ViewLink vl)
Finds the view link accessor attribute. |
Row |
first()
Gets the first row in the iterator. |
byte |
getAccessMode()
|
int |
getActivationMode()
|
Row[] |
getAllRowsInRange()
Extracts the rows in the range. |
java.lang.String[] |
getAllViewCriteriaNames()
Returns a list of both applied and unapplied view criterias managed by this object. |
ViewCriteria[] |
getAllViewCriterias()
Returns a list of both applied and unapplied view criterias managed by this object. |
ApplicationModule |
getApplicationModule()
Gets the row set's application module that contains this row set. |
protected ApplicationModuleImpl |
getApplicationModuleProxy()
|
java.lang.String[] |
getApplyViewCriteriaNames()
|
ViewCriteria[] |
getApplyViewCriterias(int criteriaMode)
Return a list of applied view criteria that have the mode passed in the argument turned on. |
AttributeDef[] |
getAttrDefsForEntityAttr(java.lang.String eoName,
java.lang.String eoAttrName)
This method performs the same operation as getAttrIndicesForEntityAttr , except that it
return an array of attribute definitions, not just indices. |
int |
getAttributeCount()
Returns the number of defined attributes. |
AttributeDef |
getAttributeDef(int index)
Gets an attribute definition, given its index. |
AttributeDef[] |
getAttributeDefs()
Gets the defined attributes. |
int |
getAttributeIndexOf(java.lang.String name)
Finds the index (0-based) of the named attribute. |
int[] |
getAttrIndicesForEntityAttr(java.lang.String eoName,
java.lang.String eoAttrName)
Returns an array of indices of view attributes that are mapped to the entity attribute identified by the entity name (the eoName parameter) and the entity attribute name
(the eoAttrName ). |
java.lang.String[] |
getAvailableViewCriteriaNames()
Returns a list of view criteria names that are unapplied and managed by this object |
long |
getCappedRowCount(long cap)
|
SvcMsgIteratorState |
getCliIteratorState()
|
java.lang.String |
getColumnNameForQuery(int index)
|
AttributeHints |
getCriteriaItemAttributeHints(ViewCriteriaItem vci)
|
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. |
SortCriteria[] |
getDBSortCriteria()
|
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. |
java.lang.String |
getDefFullName()
Returns the fully qualified name of the structure's base definition. |
java.lang.String |
getDefName()
Returns the structure's base definition name (short form). |
RowSet[] |
getDetailRowSets()
Get all detail Row Sets for this View Object. |
int |
getDynamicAttributeCount()
|
int |
getDynamicAttributeOffset()
|
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 . |
java.util.List |
getForwardDependencyAttributes(java.lang.String attrName)
|
java.lang.String |
getFullName()
Returns the structure's fully qualified name. |
java.lang.String |
getImageLoc(boolean bOpen)
|
static oracle.jbo.client.remote.RowSetIteratorImpl |
getImplObject(java.lang.Object rsi)
|
java.lang.String |
getInterfaceName()
|
int |
getIterMode()
Gets the current iteration mode. |
AttributeDef[] |
getKeyAttributeDefs()
Returns the attribute definitions that make up the constituents of the key object for rows returned from this view object. |
java.lang.String |
getLabel(LocaleContext locale)
Retrieves the label to be used in any attribute prompts |
RowSetIterator[] |
getMasterRowSetIterators()
Return all controlling masters of this row set. |
int |
getMaxFetchSize()
Maximum number of rows to fetch for this view object. |
java.lang.Class |
getMessageBundleClass()
|
java.lang.String |
getName()
Returns the structure's name (short form). |
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. |
protected ObjectMarshaller |
getObjectMarshaller()
|
java.lang.String |
getOrderByClause()
Returns the query's ORDER BY clause. |
java.lang.Object |
getParent()
|
protected byte[] |
getPiggyback()
|
Row[] |
getPreviousRangeSet()
Gets the previous set of rows in the range. |
java.util.Hashtable |
getProperties()
Gets the table of properties. |
java.lang.String |
getQuery()
Returns the query statement. |
int |
getQueryMode()
Gets the current query mode of this view object. |
java.lang.String |
getQueryOptimizerHint()
Returns query optimizer Hint set for this ViewObject or for its definition object. |
int |
getQueryTimeOut()
Returns the current query time out value. |
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. |
int |
getRemoteId()
|
ViewCriteria |
getRequiredViewCriteria()
This method returns a reference to the required view criteria if one exists on this View Object. |
ResourceBundleDef |
getResourceBundleDef()
|
byte |
getROTEntryType()
|
Row |
getRow(Key key)
Locates and returns a row by its unique 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. |
java.lang.Object[] |
getRowFilterValues()
|
RowMatch |
getRowMatch()
Gets the in-memory filter ( RowMatch ) for the view object. |
RowSet |
getRowSet()
Gets the Row Set that this Iterator belongs to. |
RowSetIterator |
getRowSetIterator()
|
RowSetIterator[] |
getRowSetIterators()
Gets all row set iterators that belong to this row set. |
RowSet[] |
getRowSets()
Get all Row Sets that belong to this View Object. |
protected ServiceMessage |
getServiceMessage()
|
java.lang.String |
getSortBy()
|
SortCriteria[] |
getSortCriteria()
|
StructureDef |
getStructDef()
|
java.lang.String[] |
getSubstitutedDefNames()
Returns an array of fully qualified view definition names that are substituted by this view object's definition. |
java.lang.Object |
getSyncLock()
Gets the locking object for this Row Set Iterator. |
VariableValueManager |
getVariableManager()
Returns this object's current Variable Value Manager. |
java.util.ArrayList |
getVariableOpers()
|
ViewCriteria |
getViewCriteria()
Gets the view criteria. |
ViewCriteria |
getViewCriteria(java.lang.String name)
Returns a reference to the view criteria with a specific name if it is found. |
java.lang.String |
getViewCriteriaClause(boolean forQuery)
This method is used by the framework to generate a query clause for the applied view criterias. |
ViewCriteriaManager |
getViewCriteriaManager()
|
java.lang.String[] |
getViewLinkNames()
Constructs an array of names of view links that involve this view object. |
protected ViewLink[] |
getViewLinks()
|
ViewObject |
getViewObject()
Gets the view object that owns this row set. |
java.lang.String |
getWhereClause()
Gets the query's where-clause. |
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. |
protected void |
init(ApplicationModuleImpl appModule,
int voId,
java.lang.String name,
java.lang.String fullName,
java.lang.String defName,
java.lang.String defFullName,
java.lang.String[] substitutedDefNames,
ResourceBundleDef resBundleDef,
boolean isRO)
|
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 |
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 |
isInternal()
Returns whether this view object was created internally by BC4J or by an explicit user request. |
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 |
isPolymorphicDefinition()
|
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 |
isReadOnly()
Tests if the view object is read-only. |
boolean |
isRowValidation()
Gets the validation flag on this iterator. |
Row |
last()
Gets the last row in the iterator. |
AttributeDef |
lookupAttributeDef(java.lang.String name)
Gets an attribute definition, given its name. |
ListBindingDef |
lookupListBindingDef(java.lang.String lbName)
Return listbinding definition if defined in this ViewObject (or in the entity definitions for entities that this ViewObject constitutes of). |
void |
mergeVariableValues(Variable[] vars,
java.lang.Object[] varVals)
|
void |
navigated(NavigationEvent event)
Invoked when the current-row designation changes. |
boolean |
needsRefresh()
|
Row |
next()
Gets the next row in the iterator. |
void |
prepareForBatchMode(SvcMsgIteratorState iteratorState,
boolean setCurrentRow)
|
Row |
previous()
Gets the previous row in the iterator. |
protected void |
processPiggyback(byte[] pb)
|
protected java.util.ArrayList |
processServiceMessage(ServiceMessage svcMsg)
|
void |
putViewCriteria(java.lang.String name,
ViewCriteria vc)
Add a view criteria to be managed by this object |
void |
rangeRefreshed(RangeRefreshEvent event)
Invoked when the range changes. |
void |
rangeScrolled(ScrollEvent event)
Invoked when the range is scrolled. |
void |
readRowXML(Element elem,
int depthCount)
Reads the data in XML form (in the format as generated by writeXML()) by finding a row that matches the key in the given XML and then reading in that row. |
void |
readRowXML(Element elem,
int depthCount,
XSLStylesheet xslt)
|
void |
readXML(Element elem,
int depthCount)
|
void |
readXML(Element elem,
int depthCount,
XSLStylesheet xslt)
|
java.util.Hashtable |
refreshProperties()
|
java.lang.Object |
refreshProperty(java.lang.String hintName)
Retrieves the specified property, if it exists. |
void |
remove()
Deletes this component. |
boolean |
removeApplyViewCriteriaName(java.lang.String name)
Unapplied the view criteria if it is applied. |
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 |
removeInternalListener(java.lang.Object target)
|
void |
removeListener(java.lang.Object target)
Removes a subscriber (listener) for RowSetListener
events generated by this row set iterator. |
void |
removeManagementListener(RowSetManagementListener target)
Removes a subscriber (listener) for RowSetManagementListener
events generated by this row set iterator. |
boolean |
removeMasterRowSetIterator(RowSetIterator masterRS)
Removes a master row set iterator. |
void |
removeNamedWhereClauseParam(java.lang.String name)
Removes a named where-clause parameter. |
ViewCriteria |
removeViewCriteria(java.lang.String name)
Removes the view criteria from this manager. |
protected void |
removeViewLink(ViewLinkImpl viewLink)
|
void |
reset()
Moves the currency to the slot before the first row. |
void |
resetCriteria(ViewCriteria vc)
Resets a view criteria to the state as defined in the View Definition. |
void |
resetExecuted()
This method delegates to the default RowSet . |
void |
resetVariableOpers()
|
void |
rowDeleted(DeleteEvent event)
Invoked when a row has been deleted. |
void |
rowInserted(InsertEvent event)
Invoked when a row has been inserted. |
void |
rowUpdated(UpdateEvent event)
Invoked when an attribute of the row has been changed. |
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 |
setApplyViewCriteriaName(java.lang.String name)
Apply the view criteria name passed as the argument. |
void |
setApplyViewCriteriaName(java.lang.String name,
boolean bAppend)
Apply the view crtieria name passed as the argument. |
void |
setApplyViewCriteriaNames(java.lang.String[] names)
Apply a set of view criteria names passed as the argument. |
void |
setAssociationConsistent(boolean isConsistent)
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 |
setCurrentUnionViewCriteriaName(java.lang.String vcName)
|
void |
setDBSortCriteria(SortCriteria[] sortCriteria)
Set declarative sort criteria for database queries. |
void |
setForwardOnly(boolean isForwardOnly)
Constrains the row set to sequential access. |
void |
setIterMode(int mode)
Sets the iteration mode for this Row Iterator. |
void |
setListBindingsInternal(java.util.HashMap al)
|
boolean |
setMasterRowSetIterator(RowSetIterator masterRS)
Sets the master iterator. |
void |
setMaxFetchSize(int max)
Maximum number of rows to fetch for this view object. |
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 |
setOrderByClause(java.lang.String expr)
Sets the ORDER BY clause of the view object's query statement. |
java.lang.String |
setOrderByOrSortBy(SortCriteria[] sortCriteria)
Set declarative sort criteria for either database query or in-memory sort. |
void |
setProperty(java.lang.String hintName,
java.lang.Object hintValue)
|
void |
setQueryMode(int queryMode)
Sets query mode for the view object. |
void |
setQueryOptimizerHint(java.lang.String hintText)
If this ViewObject does not have an expert mode query, then this hint is added to the select clause of the SQL for this ViewObject before the columns are listed e.g., SELECT \/*+ |
void |
setQueryTimeOut(int queryTimeOut)
Sets the query time out value for the view object. |
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 |
setRequiredViewCriteria(ViewCriteria vc)
Setting a view criteria as required will enforce the criteria whenever the view object's query is executed. |
void |
setRowFilterValues(java.lang.Object[] rowFilterValues)
|
void |
setRowMatch(RowMatch rowMatch)
Sets an in-memory filter ( RowMatch ) for the view object. |
void |
setRowValidation(boolean flag)
Sets the validation flag on this iterator. |
void |
setSortBy(java.lang.String sortBy)
Specify a clause to perform in-memory sorting. |
void |
setSortCriteria(SortCriteria[] sortCriteria)
Set declarative sort criteria for in-memory sort. |
void |
setWhereClause(java.lang.String cond)
Sets a where-clause bind value of the view object's query statement. |
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)
|
Methods inherited from class oracle.jbo.client.remote.ComponentHintsHelper |
---|
getHintValue, getLabelPlural, getTooltip |
Methods inherited from class oracle.jbo.common.PropertiesHelper |
---|
closeObject, getProperty, getProperty, setName |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface oracle.jbo.GenericHints |
---|
getHintValue, getLabelPlural, getTooltip |
Methods inherited from interface oracle.jbo.Properties |
---|
getProperty, getProperty |
Field Detail |
---|
protected java.lang.String mName
protected java.lang.String mFullName
protected java.lang.String mDefName
protected java.lang.String mDefFullName
protected int mId
protected ApplicationModuleImpl mAM
protected StructureDefImpl mStruct
protected RowSet mDefaultRowSet
protected boolean mIsInternal
protected boolean mIsReadOnly
protected java.util.ArrayList mViewLinks
protected ViewCriteria mCriteria
protected boolean mCriteriaGotten
protected java.lang.String mRowProxyClassName
protected java.lang.String mInterfaceName
Constructor Detail |
---|
protected ViewUsageImpl()
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 final boolean isInternal()
ViewObject
isInternal
in interface ViewObject
public java.lang.String getInterfaceName()
protected void init(ApplicationModuleImpl appModule, int voId, java.lang.String name, java.lang.String fullName, java.lang.String defName, java.lang.String defFullName, java.lang.String[] substitutedDefNames, ResourceBundleDef resBundleDef, boolean isRO)
public java.lang.String getName()
StructureDef
getName
in interface ClientComponentObject
getName
in interface ComponentObject
getName
in interface RowSet
getName
in interface RowSetIterator
getName
in interface StructureDef
getName
in interface VariableManagerOwner
public java.lang.String getFullName()
StructureDef
getFullName
in interface ClientComponentObject
getFullName
in interface ComponentObject
getFullName
in interface StructureDef
public java.lang.String getImageLoc(boolean bOpen)
getImageLoc
in class PropertiesHelper
public java.lang.String getDefName()
StructureDef
getName()
returns the VO's
instance name and getDefName()
returns the
View definition's name.
getDefName
in interface ComponentObject
getDefName
in interface StructureDef
public java.lang.String getDefFullName()
StructureDef
getFullName()
returns the VO's
full instance name and getDefFullName()
returns the
View definition's full name.
getDefFullName
in interface ComponentObject
getDefFullName
in interface StructureDef
public java.lang.String[] getSubstitutedDefNames()
ViewObject
This method finds substituted def names recursively. That is, If A is substituted by B, and B by C, calling this method on a view object of C returns B and A.
getSubstitutedDefNames
in interface ViewObject
public int getActivationMode()
getActivationMode
in interface WSViewObjectMarshaller
public java.lang.String getLabel(LocaleContext locale)
GenericHints
getLabel
in interface GenericHints
getLabel
in class ComponentHintsHelper
public void remove()
ComponentObject
remove
in interface ComponentObject
public int getRemoteId()
getRemoteId
in interface ClientComponentObject
public byte getROTEntryType()
getROTEntryType
in interface ClientComponentObject
public void setListBindingsInternal(java.util.HashMap al)
public StructureDef getStructDef()
public OperationDefinitions findOperationDefinitions()
findOperationDefinitions
in interface OperationContainer
public AttributeDef[] getAttributeDefs()
StructureDef
getAttributeDefs
in interface StructureDef
public int getAttributeCount()
StructureDef
getAttributeCount
in interface StructureDef
public AttributeDef findAttributeDef(java.lang.String name)
StructureDef
findAttributeDef
in interface StructureDef
name
- the name of an AttributeDef
.
public AttributeDef lookupAttributeDef(java.lang.String name)
StructureDef
lookupAttributeDef
in interface StructureDef
name
- the name of an AttributeDef
.
public AttributeDef getAttributeDef(int index)
StructureDef
getAttributeDef
in interface StructureDef
index
- the index of an AttributeDef
, where the leftmost
attribute has index zero.
public int getAttributeIndexOf(java.lang.String name)
StructureDef
getAttributeIndexOf
in interface StructureDef
name
- the attribute's name.
0
to getAttributeCount() - 1
.
If the named attribute is not found, it returns -1.public java.lang.String getColumnNameForQuery(int index)
getColumnNameForQuery
in interface StructureDef
public AttributeDef[] getKeyAttributeDefs()
ViewObject
This method is used to pass AttributeDef[] to the
Key.Key(String, AttributeDef[])
constructor to parse the constituent-bytes and convert them into
value-objects that make up the key.
Use this method to find out how the key is composed for the view row. The view object's key is a composite key, consisting of view attributes mapped to the primary keys of its entity objects.
getKeyAttributeDefs
in interface ViewObject
public AttributeDef[] getAttrDefsForEntityAttr(java.lang.String eoName, java.lang.String eoAttrName)
getAttrIndicesForEntityAttr
, except that it
return an array of attribute definitions, not just indices.
getAttrDefsForEntityAttr
in interface ViewObject
eoName
- fully qualified name of the entity object.eoAttrName
- entity object attribute name.
getAttrIndicesForEntityAttr(String, String)
public int[] getAttrIndicesForEntityAttr(java.lang.String eoName, java.lang.String eoAttrName)
eoName
parameter) and the entity attribute name
(the eoAttrName
).
Note that it returns an array because more than one view object attribute may be mapped to one entity attribute.
This method can be used to identify view attributes that map into a particular entity object attribute. In particular, if a validation error fails on an entity attribute, this method can be used to find view attributes that map into that entity attribute.
eoName
- fully qualified name of the entity object.eoAttrName
- entity object attribute name.
public void setWhereClause(java.lang.String cond)
ViewObject
Bind variables can be specified using '?' as a place-holder for the value.
The new where-clause does not take effect until
RowSet.executeQuery()
is called. If the where-clause
contains where-clause parameters,
RowSet.setWhereClauseParam(int, Object)
or
RowSet.setWhereClauseParams(Object[])
needs to be called before executeQuery()
.
Note that calling
setWhereClause() does not clear the previous settings of where-clause
parameters. To reset where-clause parameters in the middle tier, call
RowSet.setWhereClauseParams(Object[])
explicitly with a null value. For example:
vo.setWhereClauseParams(null);This method should not be overridden.
setWhereClause
in interface ViewObject
cond
- a where-clause, but excluding the 'WHERE' keyword.public java.lang.String getWhereClause()
ViewObject
This where-clause is obtained from the
view object instance. In the middle tier, to get the complete where-clause built from the view object
instance, the view definition, the view criteria, and the view links use
ViewObjectImpl.buildWhereClause(java.lang.StringBuffer, int)
getWhereClause
in interface ViewObject
public void setNamedWhereClauseParams(AttributeList attrlist)
RowSet
Setting a named where-clause parameter
does not automatically execute the query. You must call
to apply the new bind
value.
RowSet.executeQuery()
setNamedWhereClauseParams
in interface RowSet
attrlist
- is a Name, value pair of bind variables.public AttributeList getNamedWhereClauseParams()
RowSet
It uses the method getNamedWhereClauseParam to return all the name,value pairs from VariableValueManager.
getNamedWhereClauseParams
in interface RowSet
public 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
to apply the new bind
values.
RowSet.executeQuery()
setWhereClauseParams
in interface RowSet
values
- an array of bind values. If the view object
is using the JDBC style bindings ("?"
for bind
variable), values[n]
is bound to
the bind variable that appears in the n-th
order (0 based indexing). If the view object
is using the Oracle style bindings (":1", ":2",
etc.
for bind variable), values[n]
is
bound to the bind variable :(n+1)
, i.e.,
values[0]
is bound to :1
,
values[1]
is bound to :2
, etc.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
to apply the new bind
values.
RowSet.executeQuery()
setWhereClauseParam
in interface RowSet
index
- the index identifying the bind variable. If the view object
is using the JDBC style bindings ("?"
for bind
variable), value
is bound to
the bind variable that appears in the index-th
order (0 based indexing). If the view object
is using the Oracle style bindings (":1", ":2",
etc.
for bind variable), value
is
bound to the bind variable :(index+1)
.
If index
is 0, value
is bound to :1
.
If index
is 1, value
is bound to :2
.value
- the bind variable value.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()
RowSet
getWhereClauseParams
in interface RowSet
public void setOrderByClause(java.lang.String expr)
ViewObject
RowSet.executeQuery()
is called.
This method should not be overridden.
setOrderByClause
in interface ViewObject
expr
- a ORDER BY clause, but excluding the 'ORDER BY' keywords.public java.lang.String getOrderByClause()
ViewObject
This method should not be overridden.
getOrderByClause
in interface ViewObject
public java.lang.String getQuery()
ViewObject
ViewObjectImpl.getUserDefinedQuery()
this method will return a SQL statement regardless of whether the query
was created in expert or non-expert Mode.
getQuery
in interface ViewObject
public void setDBSortCriteria(SortCriteria[] sortCriteria)
ViewObject
setDBSortCriteria
in interface ViewObject
sortCriteria
- an array of database sort criteria with an element
for each attribute to sort withpublic SortCriteria[] getDBSortCriteria()
getDBSortCriteria
in interface ViewObject
ViewObject.setDBSortCriteria(SortCriteria[])
.public void setSortCriteria(SortCriteria[] sortCriteria)
ViewObject
setSortCriteria
in interface ViewObject
sortCriteria
- an array of database sort criteria with an element
for each attribute to sort withpublic SortCriteria[] getSortCriteria()
getSortCriteria
in interface ViewObject
ViewObject.setDBSortCriteria(SortCriteria[])
.public java.lang.String setOrderByOrSortBy(SortCriteria[] sortCriteria)
ViewObject
PROP_ALWAYS_USE_SORT
property
is set to true
, it will always use in-memory sort. If the
property is not true
and all attrs are db attrs, it
will use db order by.
setOrderByOrSortBy
in interface ViewObject
sortCriteria
- an array of sort criteria with an element
for each attribute to sort with.
null
.public void setRowMatch(RowMatch rowMatch)
ViewObject
RowMatch
) for the view object.
While the where-clause is used when a database query is issued,
the row match is used for qualifying rows in memory.
Calling this method does not cause filtering of rows by the
row match. To filter, RowSet.executeQuery()
must be called.
setRowMatch
in interface ViewObject
rowMatch
- the new row match.public RowMatch getRowMatch()
ViewObject
RowMatch
) for the view object.
While the where-clause is used when a database query is issued,
the row match is used for qualifying rows in memory.
getRowMatch
in interface ViewObject
public void setSortBy(java.lang.String sortBy)
ViewObject
setSortBy
in interface ViewObject
sortBy
- in-memory sort clausepublic java.lang.String getSortBy()
getSortBy
in interface ViewObject
ViewObject.setSortBy(String)
public void setQueryMode(int queryMode)
ViewObject
The queryMode
parameter may be an OR'ed flag of
QUERY_MODE_SCAN_...
constants. See these constants
for further details.
Calling this method does not cause automatically cause the new
query mode to go into effect. Call
RowSet.executeQuery()
to apply the new query
mode.
The default query mode is QUERY_MODE_SCAN_DATABASE_TABLES
.
setQueryMode
in interface ViewObject
queryMode
- the new query mode.public void addQueryMode(int queryMode)
ViewObject
The queryMode
parameter may be an OR'ed flag of
QUERY_MODE_SCAN_...
constants. This method
OR'es in the incoming queryMode
to the view object's
current query mode. See these constants for further details.
Calling this method does not cause automatically cause the new
query mode to go into effect. Call
RowSet.executeQuery()
to apply the new query
mode.
addQueryMode
in interface ViewObject
queryMode
- the new query mode to be added (OR'ed).public int getQueryMode()
ViewObject
The returning value may be an OR'ed flag of
QUERY_MODE_SCAN_...
constants. See these constants
for further details.
The default query mode is QUERY_MODE_SCAN_DATABASE_TABLES
.
getQueryMode
in interface ViewObject
public boolean isPolymorphicDefinition()
isPolymorphicDefinition
in interface ViewObject
public java.util.Hashtable refreshProperties()
refreshProperties
in class PropertiesHelper
public java.util.Hashtable getProperties()
Properties
getProperties
in interface Properties
getProperties
in class PropertiesHelper
public void setProperty(java.lang.String hintName, java.lang.Object hintValue)
setProperty
in class PropertiesHelper
public java.lang.Object refreshProperty(java.lang.String hintName)
Properties
getProperty
.
refreshProperty
in interface Properties
refreshProperty
in class PropertiesHelper
hintName
- Property name.
null
.public boolean isDefaultRowSet()
isDefaultRowSet
in interface RowSet
public boolean isExecuted()
RowSet
isExecuted
in interface RowSet
true
if query has been executed.public void executeQuery()
RowSet
executeQuery
in interface RowSet
public void executeEmptyRowSet()
executeEmptyRowSet
in interface RowSet
public java.lang.String[] getViewLinkNames()
ViewObject
A view link may use this view object as either its source or destination. This method should not be overridden.
getViewLinkNames
in interface ViewObject
public void clearCache()
ViewObject
clearCache
in interface ViewObject
public RowSet getRowSet()
RowSetIterator
getRowSet
in interface RowSetIterator
public RowSetIterator getRowSetIterator()
public Row next()
RowIterator
next()
is called on an iterator whose Row Set has
not yet been RowSet.executeQuery()
'ed, the
Row Set's query is executed. Thus, the user does not need to call
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
for details.
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
will 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
).
If the currency is changed, it generates a
and sends it to
NavigationEvent
.
RowSetListener.navigated(oracle.jbo.NavigationEvent)
next
in interface RowIterator
Row
object, or null
if there is no next row.public Row previous()
RowIterator
previous()
is called on an iterator whose Row Set has
not yet been RowSet.executeQuery()
'ed, the
Row Set's query is executed. Thus, the user does not need to call
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
will 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
).
If the currency is changed, it generates a
and sends it to
NavigationEvent
.
RowSetListener.navigated(oracle.jbo.NavigationEvent)
previous
in interface RowIterator
Row
object, or null
if there is no previous row.public Row first()
RowIterator
first()
is called on an iterator whose Row Set has
not yet been RowSet.executeQuery()
'ed, the
Row Set's query is executed. Thus, the user does not need to call
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
. Note that the act of
resetting the currency may cause the range to scroll upward.
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.,
and/or ScrollEvent
.
See NavigationEvent
for details.
RowIterator.next()
first
in interface RowIterator
Row
object, or null
if there is no first row. In that case (null
return),
the current slot status will be RowIterator.SLOT_BEYOND_LAST
.public Row last()
RowIterator
last()
is called on an iterator whose Row Set has
not yet been RowSet.executeQuery()
'ed, the
Row Set's query is executed. Thus, the user does not need to call
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
for details.
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
will 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
).
If the currency is changed, it generates a
and sends it to
NavigationEvent
.
RowSetListener.navigated(oracle.jbo.NavigationEvent)
last
in interface RowIterator
Row
object, or null
if there is no last row.public void reset()
RowIterator
After this method, the current slot status will be
except in cases where this iterator is associated to an iterator binding in an ADF
application which sets the currency to the first row in the iterator if available.
A subsequent invocation of RowIterator.SLOT_BEFORE_FIRST
will cause the first
row to become the current row.
RowIterator.next()
It sends a
to
ScrollEvent
if the currency was not on the first row or on the slot before the first row.
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
).
reset
in interface RowIterator
public boolean hasNext()
RowIterator
hasNext
in interface RowIterator
true
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_LAST
),
it returns false
. Otherwise, true
.public boolean hasPrevious()
RowIterator
If the Row Set is forward-only, it returns false
.
hasPrevious
in interface RowIterator
true
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_FIRST
),
it returns false
. Otherwise, true
.public boolean isRangeAtBottom()
RowIterator
isRangeAtBottom
in interface RowIterator
true
if the last row of the range is
the last row of the result set.public boolean isRangeAtTop()
RowIterator
isRangeAtTop
in interface RowIterator
true
if the first row of the range is
the first row of the result set.public int getFetchedRowCount()
RowIterator
getFetchedRowCount
in interface RowIterator
public int getRowCount()
RowIterator
Note that this method retrieves all rows from the database then returns the number of rows in the Row Set collection.
getRowCount
in interface RowIterator
public long getEstimatedRowCount()
RowSet
This 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 RowSet
public long getDeferredEstimatedRowCount()
RowSet
getDeferredEstimatedRowCount
in interface RowSet
public long getCappedRowCount(long cap)
getCappedRowCount
in interface RowSet
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)
RowIterator
This method takes effect when the next set of data is fetched. For an example usage of setRangeSize, see setRangeStart.
setRangeSize
in interface RowIterator
size
- 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()
RowIterator
getRangeSize
in interface RowIterator
public int getRangeStart()
RowIterator
The absolute index is 0-based, and is the row's index relative to the entire result set.
getRangeStart
in interface RowIterator
public int setRangeStart(int start)
RowIterator
Note that the index is 0-based. When you call setRangeStart(1), the range start will be positioned at the second table row.
Another behavior of setRangeStart (and also setRangeSize) is that it tries to position the range, so as to fill up the range as much as possible. For example, assume you have View Object vo focused on a table with four rows (A, B, C, D), and you execute the following code:
vo.setRangeStart(4); vo.setRangeSize(3); Row[] rows = vo.getAllRowsInRange();
In this case, rows contains the last 3 rows (B, C, D). When you call setRangeStart(4), it will try to position you at row 4. Since the index is 0-based, it finds that there is no row. Since the default range size is 1, it will position you to the last row (row index 3).
Then, when you call getRangeSize(3), it tries to fill up the range from the bottom. This is why you get (B, C, D).
setRangeStart
in interface RowIterator
start
- the absolute index of the new first row in the Row Set Iterator range.public int scrollRange(int amount)
RowIterator
scrollRange
in interface RowIterator
amount
- the number of rows to scroll.
A negative value scrolls upward.
public int getEstimatedRangePageCount()
RowSetIterator
This number may fluxuate when the View Object is syncronized with its Entity Object.
getEstimatedRangePageCount
in interface RowSetIterator
public int scrollToRangePage(int pageIndex)
RowSetIterator
(rangeSize * (pageSize-1)) - getRangeStart();
scrollToRangePage
in interface RowSetIterator
pageIndex
- the page number to go to in the result set.
public int scrollRangeTo(Row row, int index)
RowIterator
scrollRangeTo
in interface RowIterator
row
- the row.index
- the range index at which the row is to be found.
public Row getRow(Key key)
RowIterator
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
contains the
row handle.)
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
in that both methods return Row(s) that match the given key. However,
the user should understand the differences. First, findByKey() performs
random search. getKey() only performs random search if the key
has the row handle portion and if the row with that handle is currently
in the Row Set collection. Otherwise, getKey() does a linear search.
Hence, findByKey() is generally faster.
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 RowIterator
key
- the key.
public Row getRowAtRangeIndex(int index)
RowIterator
getRowAtRangeIndex
in interface RowIterator
index
- an index in the range: 0
to getRangeSize() - 1
.
null
if the index is out of range.public Row getCurrentRow()
RowIterator
getCurrentRow
in interface RowIterator
public int getCurrentRowIndex()
RowIterator
getCurrentRowIndex
in interface RowIterator
public int getCurrentRowSlot()
RowIterator
getCurrentRowSlot
in interface RowIterator
SLOT_
.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 isRowValidation()
RowIterator
isRowValidation
in interface RowIterator
public void setRowValidation(boolean flag)
RowIterator
setRowValidation
in interface RowIterator
flag
- Whether to turn row validation off or not.public boolean setCurrentRow(Row row)
RowIterator
setCurrentRow
in interface RowIterator
row
- the new current row.
true
if the operation succeeded.public boolean setCurrentRowAtRangeIndex(int index)
RowIterator
setCurrentRowAtRangeIndex
in interface RowIterator
index
- the index of the new current row.
true
if the operation succeeded.public Row createAndInitRow(AttributeList nvp)
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
nvp
- a list of name-value pairs.
public Row createRow()
RowIterator
createRow
in interface RowIterator
public void insertRow(Row row)
RowIterator
insertRow
in interface RowIterator
row
- the Row object to be added.public void insertRowAtRangeIndex(int index, Row row)
RowIterator
index
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 RowIterator
index
- the point where row
is to be added.row
- the Row object to be added.public void removeCurrentRow()
RowIterator
removeCurrentRow
in interface RowIterator
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 int getRangeIndexOf(Row row)
RowIterator
getRangeIndexOf
in interface RowIterator
row
- a Row object.
or -1
if the row is not in range.
row
,public java.util.Enumeration enumerateRowsInRange()
RowIterator
Enumeration
of all rows in the Row Set.
enumerateRowsInRange
in interface RowIterator
Enumeration
interface.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 Row[] getAllRowsInRange()
RowIterator
getAllRowsInRange
in interface RowIterator
setViewSize()
.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 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.
indicates whether
the view object is internal or not. Even if a view link is
defined between the master and detail view object, and even
if an instance of them are included in the application module's
data model, calling the view link by default uses a separate
view object instance from the one in the AM's data model.
To access the view link accessor's ViewObject, use the following
code snippet (assuming that the detail side is called "MyDetail"):
ViewObject.isInternal()
RowSet detailRS = (RowSet) masterViewRow.getMyDetail(); ViewObject detailVO = detailRS.getViewObject();
getViewObject
in interface RowSet
public boolean setMasterRowSetIterator(RowSetIterator masterRS)
RowSet
setMasterRowSetIterator
in interface RowSet
masterRS
- the new master row set iterator for this row set.
true
if the operation succeeded.public boolean removeMasterRowSetIterator(RowSetIterator masterRS)
RowSet
removeMasterRowSetIterator
in interface RowSet
masterRS
- the iterator to be removed.
true
if masterRS
was found,
false
otherwise.public RowSetIterator[] getMasterRowSetIterators()
RowSet
getMasterRowSetIterators
in interface RowSet
public AttributeDef addDynamicAttribute(java.lang.String attrName)
ViewObject
Dynamic attributes are typeless, in that the application can set the attribute
value to any object.
You can use a dynamic attribute to store information created at runtime
that you want to store with the row data. It is used only by the view
object that created it. Attributes can be any serializable
(java.io.Serializable
) object.
This method should not be overridden.
addDynamicAttribute
in interface ViewObject
attrName
- the name of the dynamic attribute.
public AttributeDef addDynamicAttributeWithType(java.lang.String attrName, java.lang.String javaTypeName, java.lang.String transientExpression)
addDynamicAttributeWithType
in interface ViewObject
public java.lang.Object getParent()
getParent
in interface ClientComponentObject
public ApplicationModule getApplicationModule()
RowSet
Strictly speaking, a row set belongs to a view object and the view object to an application module. This method returns the application module that cotains the view object, which contains this row set.
If this row set is the result of calling a View Link accessor,
this row set belongs to an internal view object (see
).
Such an internal view object belongs to the root application module.
Put differently, if you call this method on a row set which is the result
of calling a View Link accessor, it will return the root application module.
ViewObject.isInternal()
getApplicationModule
in interface RowSet
ApplicationModule
to which this row set belongs.public void addListener(java.lang.Object target)
NavigatableRowIterator
RowSetListener
events generated by this row set iterator.
addListener
in interface NavigatableRowIterator
target
- the subscriber to be added. It should implement
RowSetListener
.public void addInternalListener(java.lang.Object target)
addInternalListener
in interface InternalListenerManager
public void removeInternalListener(java.lang.Object target)
removeInternalListener
in interface InternalListenerManager
public void removeListener(java.lang.Object target)
NavigatableRowIterator
RowSetListener
events generated by this row set iterator.
removeListener
in interface NavigatableRowIterator
target
- the subscriber to be removed.public void addManagementListener(RowSetManagementListener target)
RowSetIterator
RowSetManagementListener
events generated by this Row Set Iterator.
addManagementListener
in interface RowSetIterator
target
- the subscriber to be added. It should implement
RowSetManagementListener
.public void removeManagementListener(RowSetManagementListener target)
RowSetIterator
RowSetManagementListener
events generated by this row set iterator.
removeManagementListener
in interface RowSetIterator
target
- the subscriber to be removed.public void rangeRefreshed(RangeRefreshEvent event)
RowSetListener
rangeRefreshed
in interface RowSetListener
event
- a description of the new ranges.public void rangeScrolled(ScrollEvent event)
RowSetListener
rangeScrolled
in interface RowSetListener
event
- a description of the new range.public void rowInserted(InsertEvent event)
RowSetListener
rowInserted
in interface RowSetListener
event
- a description of the new Row object.public void rowDeleted(DeleteEvent event)
RowSetListener
rowDeleted
in interface RowSetListener
event
- a description of the deleted Row object.public void rowUpdated(UpdateEvent event)
RowSetListener
rowUpdated
in interface RowSetListener
event
- a description of the modified Row object.public void navigated(NavigationEvent event)
RowSetListener
navigated
in interface RowNavigationListener
navigated
in interface RowSetListener
event
- a description of the new and previous current rows.public RowSet createRowSet(java.lang.String name)
ViewObject
createRowSet
in interface ViewObject
name
- the name for the new RowSet
.
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 RowSet[] getRowSets()
getRowSets
in interface ViewObject
public RowSet findRowSet(java.lang.String name)
ViewObject
findRowSet
in interface ViewObject
name
- a row set name. If null
, it returns the
the view object.
null
if the named row set is not
not found.public RowSetIterator createRowSetIterator(java.lang.String name)
RowSet
createRowSetIterator
in interface RowSet
name
- the name to be given to the iterator.
this
.public RowSetIterator[] getRowSetIterators()
RowSet
getRowSetIterators
in interface RowSet
public RowSetIterator findRowSetIterator(java.lang.String name)
RowSet
findRowSetIterator
in interface RowSet
name
- 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 int getRowCountInRange()
RowIterator
getRowCountInRange
in interface RowIterator
public boolean isReadOnly()
ViewObject
A view is read-only if it does not have primary keys or if all its entity references are reference-only.
This method should not be overridden.
isReadOnly
in interface ViewObject
isReadOnly
in class PropertiesHelper
true
if this view object is
read-only; false if it is updateable.protected void addViewLink(ViewLink viewLink)
protected void removeViewLink(ViewLinkImpl viewLink)
protected ViewLink[] getViewLinks()
public RowSet[] getDetailRowSets()
getDetailRowSets
in interface RowSetIterator
public RowSet createDetailRowSet(java.lang.String voName, java.lang.String linkDefName)
createDetailRowSet
in interface RowSetIterator
voName
- the name of the new detail Row Set.linkDefName
- the name of a View Link definition.
This View Link chooses the relationship in which
this Iterator is the master and the new Row Set
is the detail. It must be a fully qualified
name (including the package name).
public ViewCriteriaManager getViewCriteriaManager()
getViewCriteriaManager
in interface ViewObject
public ViewCriteria createViewCriteria()
createViewCriteria
in interface ViewObject
ViewCriteria
,
ViewObject.applyViewCriteria(ViewCriteria)
public ViewCriteria getViewCriteria(java.lang.String name)
ViewCriteriaManager
getViewCriteria
in interface ViewCriteriaManager
name
- view criteria name
public ViewCriteria[] getAllViewCriterias()
ViewCriteriaManager
getAllViewCriterias
in interface ViewCriteriaManager
public java.lang.String[] getAllViewCriteriaNames()
ViewCriteriaManager
getAllViewCriteriaNames
in interface ViewCriteriaManager
public java.lang.String[] getAvailableViewCriteriaNames()
ViewCriteriaManager
getAvailableViewCriteriaNames
in interface ViewCriteriaManager
public void putViewCriteria(java.lang.String name, ViewCriteria vc)
ViewCriteriaManager
putViewCriteria
in interface ViewCriteriaManager
name
- Name of the view criteriavc
- view criteria referencepublic void clearViewCriterias()
ViewCriteriaManager
clearViewCriterias
in interface ViewCriteriaManager
public ViewCriteria removeViewCriteria(java.lang.String name)
ViewCriteriaManager
removeApplyViewCriteriaName
API.
removeViewCriteria
in interface ViewCriteriaManager
name
- The view criteria name that needs to be removed
public boolean removeApplyViewCriteriaName(java.lang.String name)
ViewCriteriaManager
removeApplyViewCriteriaName
in interface ViewCriteriaManager
name
- The view criteria name that need to be unapplied.
true
if the view criteria was found to be applied,
false
otherwise.public ViewCriteria getViewCriteria()
getViewCriteria
in interface ViewCriteriaManager
getViewCriteria
in interface ViewObject
null
if none was applied.public void applyViewCriteria(ViewCriteria criteria)
ViewObject
applyViewCriteria
in interface ViewCriteriaManager
applyViewCriteria
in interface ViewObject
criteria
- view criteria to be appliedpublic void applyViewCriteria(ViewCriteria criteria, boolean bAppend)
ViewObject
bAppend
is true
view criteria is appended to the list of already
applied view criteria. If bAppend
is false
the
applied view criteria list is cleared prior to applying the passed view
criteria.
applyViewCriteria
in interface ViewCriteriaManager
applyViewCriteria
in interface ViewObject
criteria
- view criteria to be appliedbAppend
- flag to indicate if the applied view criteria list needs to
be cleared before applying the view criteria.public void setApplyViewCriteriaName(java.lang.String name)
ViewCriteriaManager
setApplyViewCriteriaName
in interface ViewCriteriaManager
name
- the criteria to be applied.public void setApplyViewCriteriaName(java.lang.String name, boolean bAppend)
ViewCriteriaManager
bAppend
is true the passed view criteria will be applied in addition
to the existing ones. If bAppend
is false this method is
identical to ViewCriteriaManager.setApplyViewCriteriaName(String)
setApplyViewCriteriaName
in interface ViewCriteriaManager
name
- the criteria to be appliedbAppend
- pass true
if the view criteria needs to be appended to
the applied list otherwise the list is cleared out.public void setApplyViewCriteriaNames(java.lang.String[] names)
ViewCriteriaManager
setApplyViewCriteriaNames
in interface ViewCriteriaManager
names
- the criterias to be applied.public ViewCriteria[] getApplyViewCriterias(int criteriaMode)
ViewCriteriaManager
ViewCriteria.CRITERIA_MODE_CACHE
and
ViewCriteria.CRITERIA_MODE_QUERY
for more information. View criterias
that have both modes turned on are also qualified.
getApplyViewCriterias
in interface ViewCriteriaManager
criteriaMode
- the mode to match the criteria.
public java.lang.String[] getApplyViewCriteriaNames()
getApplyViewCriteriaNames
in interface ViewCriteriaManager
public void setCurrentUnionViewCriteriaName(java.lang.String vcName)
setCurrentUnionViewCriteriaName
in interface ViewCriteriaManager
public java.lang.String getViewCriteriaClause(boolean forQuery)
ViewCriteriaManager
getViewCriteriaClause
in interface ViewCriteriaManager
forQuery
- true
if the clause is needed for a database
query, false
for in-memory filtering.
public CriteriaClauses buildViewCriteriaClauses(ViewCriteria vc)
ViewCriteriaManager
ViewCriteriaManager.getViewCriteriaClause(boolean)
buildViewCriteriaClauses
in interface ViewCriteriaManager
vc
- the view criteria whose criteria needs to be generated
public void criteriaChanged(ViewCriteria vc)
ViewCriteriaManager
criteriaChanged
in interface ViewCriteriaManager
vc
- the view criteria that has changedpublic void resetCriteria(ViewCriteria vc)
ViewCriteriaManager
resetCriteria
in interface ViewCriteriaManager
vc
- View Criteria to be resetpublic Key createKey(AttributeList nvp)
createKey
in interface RowIterator
public Row[] findByKey(Key key, int maxNumOfRows)
RowIterator
If 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
.
For example, suppose we have a View Object with 5 attributes where
attribute 0 and 2 are to be its key attributes.
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
) and
the Row Set has fetched all the rows out of database into its
collection. If this is the case, we return the array
even if the requested number of rows have not been found.
This is because these conditions imply that all rows have
been brought into Row Set collection and no further search is
necessary.
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
with one
of them. Care is applied to make sure the same row is not added to
the Row Set collection multiple times.
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
for comparison between this
method and RowIterator.getRow(Key)
getRow(Key)
.
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 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 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 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.
protected byte[] getPiggyback()
protected ServiceMessage getServiceMessage()
protected void processPiggyback(byte[] pb)
protected java.util.ArrayList processServiceMessage(ServiceMessage svcMsg)
public boolean isForwardOnly()
RowSet
isForwardOnly
in interface RowSet
true
if the row set is restricted to forward-only processing.RowSet.setForwardOnly(boolean)
public void setForwardOnly(boolean isForwardOnly)
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 RowSet
isForwardOnly
- true
restricts the row set to forward-only processing,
false
otherwise.public byte getAccessMode()
getAccessMode
in interface RowSet
RowSet.setAccessMode(byte)
public void setAccessMode(byte mode)
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
mode
- 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 boolean isAssociationConsistent()
RowSet
isAssociationConsistent
in interface RowSet
true
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 setAssociationConsistent(boolean isConsistent)
RowSet
Association-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
and requery
the row set through Transaction.postChanges()
to see the new row.
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 RowSet
isConsistent
- indicates whether association-consistency
should be on or not.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 AttributeDef addViewLinkAccessor(java.lang.String accrName)
protected void finalize()
finalize
in class java.lang.Object
public AttributeDef findViewLinkAccessor(ViewLink vl)
ViewObject
findViewLinkAccessor
in interface ViewObject
vl
- the view link whose accessor is being sought.
null
if not.protected ObjectMarshaller getObjectMarshaller()
public Node writeXML(long options, java.util.HashMap voAttrMap)
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 writeXMLvoAttrMap
- 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 void readXML(Element elem, int depthCount)
readXML
in interface XMLInterface
public Node writeXML(long options, java.util.HashMap voAttrMap, 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 void readRowXML(Element elem, int depthCount)
ViewObject
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.
readRowXML
in interface ViewObject
public void readRowXML(Element elem, int depthCount, XSLStylesheet xslt)
readRowXML
in interface ViewObject
public int getMaxFetchSize()
ViewObject
getMaxFetchSize
in interface ViewObject
public void setMaxFetchSize(int max)
ViewObject
Passing -1 to this method will retrieve an unlimited number of rows. This is the default.
Passing 0 to this method will cause the database query not to be executed. The view object will initially work with an empty row set. If you want to execute query later, call setMaxFetchSize again with a non-zero argument, then call executeQuery().
setMaxFetchSize
in interface ViewObject
max
- the maximum number of rows to fetch. The default, -1,
retrieves an unlimited number of rows. 0 causes the query not to
be executed, and row set is empty.public static oracle.jbo.client.remote.RowSetIteratorImpl getImplObject(java.lang.Object rsi)
public void setQueryOptimizerHint(java.lang.String hintText)
setQueryOptimizerHint
in interface ViewObject
public java.lang.String getQueryOptimizerHint()
ViewObject
getQueryOptimizerHint
in interface ViewObject
protected ApplicationModuleImpl getApplicationModuleProxy()
public void findAndSetCurrentRowByKey(Key k, int rangeIndex)
findAndSetCurrentRowByKey
in interface WSRowSetIteratorMarshaller
public boolean needsRefresh()
needsRefresh
in interface WSRowSetIteratorMarshaller
public int getDynamicAttributeOffset()
getDynamicAttributeOffset
in interface ViewObjectDynAttr
public int getDynamicAttributeCount()
getDynamicAttributeCount
in interface ViewObjectDynAttr
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.util.ArrayList getVariableOpers()
getVariableOpers
in interface WSVariableValueManagerMarshaller
public void resetVariableOpers()
resetVariableOpers
in interface WSVariableValueManagerMarshaller
public void mergeVariableValues(Variable[] vars, java.lang.Object[] varVals)
mergeVariableValues
in interface WSVariableValueManagerMarshaller
public java.lang.Class getMessageBundleClass()
getMessageBundleClass
in interface VariableManagerOwnerBase
public ResourceBundleDef getResourceBundleDef()
getResourceBundleDef
in interface VariableManagerOwnerBase
public int getQueryTimeOut()
ViewObject
QUERY_TIMEOUT_WAIT_FOREVER
.
getQueryTimeOut
in interface ViewObject
public void setQueryTimeOut(int queryTimeOut)
ViewObject
QUERY_TIMEOUT_WAIT_FOREVER
(-1),
which means that the query will not time out. The user will be able to
cancel the long running query by calling cancelQuery()
If a positive timeout value is specified, the query is monitored
by a global monitor thread. The monitor thread waits the specified
amount of time (approximately) in milli-seconds, and cancels the query by
calling JDBC's Statement.cancel()
.
setQueryTimeOut
in interface ViewObject
queryTimeOut
- if non-negative, number of milli-seconds before the
query is timed out. Or, it can be the
QUERY_TIMEOUT_WAIT_FOREVER
constants.public boolean cancelQuery()
RowSet
cancelQuery
in interface RowSet
false
if the JDBC statement is not executing a query.public ListBindingDef lookupListBindingDef(java.lang.String lbName)
ViewObject
lookupListBindingDef
in interface ViewObject
public ListBindingDef findListBindingDef(java.lang.String name)
ViewObject
ViewObject.lookupListBindingDef(String)
throws an exception if a listbinding definition of name lbName
is not found.
findListBindingDef
in interface ViewObject
name
- listbinding name
public RowSet deepCopy(java.util.HashMap voAttrMap, long options)
RowSet
.
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
RowSet.deepCopy(java.util.HashMap, long)
public void resetExecuted()
RowSet
.
resetExecuted
in interface RowSet
RowSet.resetExecuted()
public void setRequiredViewCriteria(ViewCriteria vc)
ViewObject
getViewCriteriaManager().clearViewCriterias
or
getViewCriteriaManager().removeViewCriteria
API.
setRequiredViewCriteria
in interface ViewObject
vc
- Set the criteria as required view criteria for this view object instance.public ViewCriteria getRequiredViewCriteria()
ViewObject
ViewObject.setRequiredViewCriteria(oracle.jbo.ViewCriteria)
getRequiredViewCriteria
in interface ViewObject
public AttributeHints getCriteriaItemAttributeHints(ViewCriteriaItem vci)
getCriteriaItemAttributeHints
in interface ViewObject
public java.util.List getForwardDependencyAttributes(java.lang.String attrName)
getForwardDependencyAttributes
in interface ViewObject
|
Oracle Fusion Middleware Java API Reference for Oracle ADF Model 11g Release 1 (11.1.1.7.0) E10653-08 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |