Oracle Fusion Middleware Java API Reference for Oracle ADF Model
11g Release 1 (11.1.1.4.0)

E10653-05

oracle.jbo.common.ws
Class WSViewObjectImpl

java.lang.Object
  extended by java.util.AbstractMap
      extended by oracle.jbo.common.JboAbstractMap
          extended by oracle.jbo.common.ws.WSObject
              extended by oracle.jbo.common.ws.WSAMComponent
                  extended by oracle.jbo.common.ws.WSRowSetIteratorBase
                      extended by oracle.jbo.common.ws.WSViewObjectImpl
All Implemented Interfaces:
java.io.Serializable, java.util.Map, WSRowSet, ComponentObject, Exportable, GenericHints, NavigatableRowIterator, Properties, RowIterator, RowSet, RowSetIterator, StructureDef, VariableManagerOwner, VariableManagerOwnerBase, ViewObject, XMLInterface

public class WSViewObjectImpl
extends WSRowSetIteratorBase
implements ViewObject, WSRowSet, java.io.Serializable, Exportable

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.AbstractMap
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Field Summary
 
Fields inherited from class oracle.jbo.common.ws.WSRowSetIteratorBase
mListeners, mMgmtListeners, mName
 
Fields inherited from class oracle.jbo.common.ws.WSObject
mVariableOpers
 
Fields inherited from class oracle.jbo.common.JboAbstractMap
MAP_NULL_VALUE
 
Fields inherited from interface oracle.jbo.ViewObject
IMAGE_LOC, 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.GenericHints
PROPERTY_LABEL, PROPERTY_LABEL_PLURAL, PROPERTY_TOOLTIP
 
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
 
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 addQueryMode(int queryMode)
          Adds query mode for the view object.
 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.
 boolean cancelQuery()
          Cancels a running query.
 void clearCache()
          Clears the view object cache.
 void closeRowSet()
          Closes the row set.
 void closeRowSetIterator()
          Closes this row set iterator.
 RowSet createDetailRowSet(java.lang.String rsName, java.lang.String linkDefName)
          Creates a detail Row Set.
 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()
          Creates a new view criteria (that is, "Query by Example") object for this view object.
 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.
 void executeEmptyRowSet()
           
 void executeQuery()
          Executes the query.
 void executeQuery2(boolean resetCurrency, boolean force, boolean emptyRowSet)
           
 AttributeDef findAttributeDef(java.lang.String name)
          Gets an attribute definition, given its name.
 ListBindingDef findListBindingDef(java.lang.String lbName)
          Return listbinding definition if defined in this ViewObject (or in the entity definitions for entities that this ViewObject constitutes of).
 RowSetIterator findOrCreateRowSetIterator(java.lang.String name)
           
 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.
 WSRowSetImpl findWSRowSet(java.lang.String name)
           
 byte getAccessMode()
           
 AccTravDef getAccessorTraversalDef()
           
 ApplicationModule getApplicationModule()
          Gets the row set's application module that contains this row set.
 AttributeDef[] getAttrDefsForEntityAttr(java.lang.String eoName, java.lang.String eoAttrName)
          Returns the definitions 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).
 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.
 long getCappedRowCount(long cap)
           
 java.lang.String getColumnNameForQuery(int index)
           
 AttributeHints getCriteriaItemAttributeHints(ViewCriteriaItem vci)
          By default return null.
 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()
          Gets an array of detail Row Sets for which this Iterator is the master.
 long getEstimatedRowCount()
          Counts the number of rows in the collection defined by the view object's query.
 java.util.List getForwardDependencyAttributes(java.lang.String attName)
           
 java.lang.String getFullName()
          Returns the structure's fully qualified name.
 java.lang.String getHintValue(LocaleContext locale, java.lang.String sHintName)
          Return hint value based on the hint name
 java.lang.Object getImplObject()
           
 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
 java.lang.String getLabelPlural(LocaleContext locale)
          Retrives the LabelPlural text to be used for this attribute
 RowSetIterator[] getMasterRowSetIterators()
          Return all controlling masters of this row set.
 int getMaxFetchSize()
          Maximum number of rows to fetch for this view object.
 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.
 java.lang.String getOrderByClause()
          Returns the query's ORDER BY clause.
 WSObject getParent()
           
 java.util.Hashtable getProperties()
          Gets the table of properties.
 java.lang.Object getProperty(java.lang.String hintName)
          Retrieves the specified property, if it exists.
 java.lang.Object getProperty(java.lang.String hintName, LocaleContext locale)
           
 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 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.
 ViewCriteria getRequiredViewCriteria()
          This method returns a reference to the required view criteria if one exists on this View Object.
 RowMatch getRowMatch()
          Gets the in-memory filter (RowMatch) for the view object.
 RowSet getRowSet()
          Gets the Row Set that this Iterator belongs to.
 RowSetIterator[] getRowSetIterators()
          Gets all row set iterators that belong to this row set.
 RowSet[] getRowSets()
          Gets all row sets that belong to this view object.
 java.lang.String getSortBy()
           
 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.
 java.lang.String getTooltip(LocaleContext locale)
          Retrives the tooltip text to be used for this attribute
 ViewCriteria getViewCriteria()
          Gets the currently applied view criteria of this view object.
 ViewCriteriaManager getViewCriteriaManager()
           
 java.lang.String[] getViewLinkNames()
          Constructs an array of names of view links that involve this view object.
 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 hasAccessorTraversalDef()
           
 java.lang.Object invokeExportedMethod(java.lang.String methodName, java.lang.String[] argTypes, java.lang.Object[] args)
           
 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 isExecuteQuery()
           
 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 isOnLine()
           
 boolean isReadOnly()
          Tests if the view object is read-only.
 boolean isRefreshDataModel()
           
 boolean isRowValidation()
          Gets the validation flag on this 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 markForError(java.lang.Exception ex, boolean hasImplObject)
           
 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)
           
 void refreshDataModel()
           
 void refreshDataModel2(boolean resetCurrency, boolean force)
           
 java.lang.Object refreshProperty(java.lang.String hintName)
          Retrieves the specified property, if it exists.
 void remove()
          Deletes this component.
 boolean removeMasterRowSetIterator(RowSetIterator masterRSI)
          Removes a master row set iterator.
 void removeNamedWhereClauseParam(java.lang.String name)
          Removes a named where-clause parameter.
 void requestEstimatedRowCount()
           
 void resetExecuted()
          This method delegates to the default RowSet.
 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 amount)
          Moves the row set range start to the given page index where every page consists of RangeSize number of rows.
 void setAccessMode(byte accessMode)
          Constrains the row access based on the following settings:
 void setAccessorTraversalByNamePaths(java.lang.String[] namePaths)
           
 void setAccessorTraversalDef(AccTravDef accTravDef)
           
 void setAssociationConsistent(boolean isAssociationConsistent)
          Sets the association-consistent flag for this row set.
 void setDBSortCriteria(SortCriteria[] sortCriteria)
          Set declarative sort criteria for database queries.
 void setForwardOnly(boolean isForwardOnly)
          Constrains the row set to sequential access.
 void setImplObject(java.lang.Object o)
           
 void setIterMode(int mode)
          Sets the iteration mode for this Row Iterator.
 boolean setMasterRowSetIterator(RowSetIterator masterRSI)
          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.
 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 \/*+ <hintText> *\/ columns...
 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 criteria)
          Setting a view criteria as required will enforce the criteria whenever the view object's query is executed.
 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 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.common.ws.WSRowSetIteratorBase
addListener, addManagementListener, createAndInitRow, createKey, createRow, enumerateRowsInRange, findAndSetCurrentRowByKey, findByAltKey, findByEntity, findByKey, findByViewCriteria, first, getAllRowsInRange, getCurrentRow, getCurrentRowIndex, getCurrentRowSlot, getEstimatedRangePageCount, getFetchedRowCount, getFilteredRows, getFilteredRowsInRange, getName, getNextRangeSet, getPreviousRangeSet, getRangeIndexOf, getRow, getRowAtRangeIndex, getRowCount, getRowCountInRange, hasNext, hasPrevious, insertRow, insertRowAtRangeIndex, isConnected, isNameGenerated, isRangeAtBottom, isRangeAtTop, last, next, previous, registerWSListeners, removeCurrentRow, removeCurrentRowAndRetain, removeCurrentRowFromCollection, removeListener, removeManagementListener, reset, setCurrentRow, setCurrentRowAtRangeIndex
 
Methods inherited from class oracle.jbo.common.ws.WSAMComponent
getMessageBundleClass, getResourceBundleDef
 
Methods inherited from class oracle.jbo.common.ws.WSObject
closeObject, ensureVariableManager, get, getId, getImageLoc, getVariableManager, hasVariables, setName
 
Methods inherited from class oracle.jbo.common.JboAbstractMap
entrySet, equals, hashCode, internalGet, internalPut, put, setThrowIfPropertyNotFoundOnGet
 
Methods inherited from class java.util.AbstractMap
clear, clone, containsKey, containsValue, isEmpty, keySet, putAll, remove, size, toString, values
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface oracle.jbo.StructureDef
getName
 
Methods inherited from interface oracle.jbo.ComponentObject
getName
 
Methods inherited from interface oracle.jbo.RowSet
getName
 
Methods inherited from interface oracle.jbo.RowSetIterator
addManagementListener, getEstimatedRangePageCount, getFilteredRows, getFilteredRowsInRange, getNextRangeSet, getPreviousRangeSet, isNameGenerated, removeManagementListener
 
Methods inherited from interface oracle.jbo.NavigatableRowIterator
addListener, removeListener
 
Methods inherited from interface oracle.jbo.RowIterator
createAndInitRow, createKey, createRow, enumerateRowsInRange, findByAltKey, findByEntity, findByKey, findByViewCriteria, first, getAllRowsInRange, getCurrentRow, getCurrentRowIndex, getCurrentRowSlot, getFetchedRowCount, getRangeIndexOf, getRow, getRowAtRangeIndex, getRowCount, getRowCountInRange, hasNext, hasPrevious, insertRow, insertRowAtRangeIndex, isRangeAtBottom, isRangeAtTop, last, next, previous, removeCurrentRow, removeCurrentRowAndRetain, removeCurrentRowFromCollection, reset, setCurrentRow, setCurrentRowAtRangeIndex
 
Methods inherited from interface oracle.jbo.VariableManagerOwnerBase
ensureVariableManager, getMessageBundleClass, getResourceBundleDef, getVariableManager, hasVariables
 

Method Detail

isOnLine

public boolean isOnLine()

getParent

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

getImplObject

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

setImplObject

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

markForError

public void markForError(java.lang.Exception ex,
                         boolean hasImplObject)
Specified by:
markForError in class WSObject

addDynamicAttribute

public AttributeDef addDynamicAttribute(java.lang.String attrName)
Description copied from interface: ViewObject
Adds a dynamic attribute (an AttributeDefImpl) to this view object's row set.

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.

Specified by:
addDynamicAttribute in interface ViewObject
Parameters:
attrName - the name of the dynamic attribute.
Returns:
the attribute definition the newly added dynamic attribute.

addDynamicAttributeWithType

public AttributeDef addDynamicAttributeWithType(java.lang.String attrName,
                                                java.lang.String javaTypeName,
                                                java.lang.String transientExpression)
Specified by:
addDynamicAttributeWithType in interface ViewObject

setWhereClause

public void setWhereClause(java.lang.String cond)
Description copied from interface: ViewObject
Sets a where-clause bind value of the view object's query statement.

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.

Specified by:
setWhereClause in interface ViewObject
Parameters:
cond - a where-clause, but excluding the 'WHERE' keyword.

getWhereClause

public java.lang.String getWhereClause()
Description copied from interface: ViewObject
Gets the query's where-clause. If the query does not have a where-clause, this method returns null.

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)

Specified by:
getWhereClause in interface ViewObject
Returns:
the where-clause, excluding the 'WHERE' keyword; null if no where-clause exists.

getLabel

public java.lang.String getLabel(LocaleContext locale)
Description copied from interface: GenericHints
Retrieves the label to be used in any attribute prompts

Specified by:
getLabel in interface GenericHints

getLabelPlural

public java.lang.String getLabelPlural(LocaleContext locale)
Description copied from interface: GenericHints
Retrives the LabelPlural text to be used for this attribute

Specified by:
getLabelPlural in interface GenericHints

getTooltip

public java.lang.String getTooltip(LocaleContext locale)
Description copied from interface: GenericHints
Retrives the tooltip text to be used for this attribute

Specified by:
getTooltip in interface GenericHints

getHintValue

public java.lang.String getHintValue(LocaleContext locale,
                                     java.lang.String sHintName)
Description copied from interface: GenericHints
Return hint value based on the hint name

Specified by:
getHintValue in interface GenericHints

setOrderByClause

public void setOrderByClause(java.lang.String expr)
Description copied from interface: ViewObject
Sets the ORDER BY clause of the view object's query statement. Bind variables can be specified using '?' as a place-holder for the value. The new ORDER BY clause does not take effect until RowSet.executeQuery() is called.

This method should not be overridden.

Specified by:
setOrderByClause in interface ViewObject
Parameters:
expr - a ORDER BY clause, but excluding the 'ORDER BY' keywords.

getOrderByClause

public java.lang.String getOrderByClause()
Description copied from interface: ViewObject
Returns the query's ORDER BY clause. If the query does not have an ORDER BY clause, this method returns null.

This method should not be overridden.

Specified by:
getOrderByClause in interface ViewObject
Returns:
a ORDER BY clause, but excluding the 'ORDER BY' keyword. null if the SQL statement has no ORDER BY clause.

getQuery

public java.lang.String getQuery()
Description copied from interface: ViewObject
Returns the query statement. Unlike ViewObjectImpl.getUserDefinedQuery() this method will return a SQL statement regardless of whether the query was created in expert or non-expert Mode.

Specified by:
getQuery in interface ViewObject
Returns:
the user-defined SQL query if one exists, otherwise, a query statement is assembled from defined from, where, and order by clauses.

setRowMatch

public void setRowMatch(RowMatch rowMatch)
Description copied from interface: ViewObject
Sets an in-memory filter (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.

Specified by:
setRowMatch in interface ViewObject
Parameters:
rowMatch - the new row match.

getRowMatch

public RowMatch getRowMatch()
Description copied from interface: ViewObject
Gets the in-memory filter (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.

Specified by:
getRowMatch in interface ViewObject
Returns:
the current row match.

setSortBy

public void setSortBy(java.lang.String sortBy)
Description copied from interface: ViewObject
Specify a clause to perform in-memory sorting. The string is parsed and the collection of rows is ordered by the in-memory parser.

Specified by:
setSortBy in interface ViewObject
Parameters:
sortBy - in-memory sort clause

getSortBy

public java.lang.String getSortBy()
Specified by:
getSortBy in interface ViewObject
Returns:
in-memory sort clause. See ViewObject.setSortBy(String)

setDBSortCriteria

public void setDBSortCriteria(SortCriteria[] sortCriteria)
Description copied from interface: ViewObject
Set declarative sort criteria for database queries. Each sort criteria is based on one view object attribute with an option to sort in a case or case-insensitive fashion and ascending or descending order. These criteria will be used to generate an orderby clause during database query.

Specified by:
setDBSortCriteria in interface ViewObject
Parameters:
sortCriteria - an array of database sort criteria with an element for each attribute to sort with

getDBSortCriteria

public SortCriteria[] getDBSortCriteria()
Specified by:
getDBSortCriteria in interface ViewObject
Returns:
Get the applied declarative sort criteria for database queries. See ViewObject.setDBSortCriteria(SortCriteria[]).

setQueryMode

public void setQueryMode(int queryMode)
Description copied from interface: ViewObject
Sets query mode for the view object. Query mode controls how qualifying rows are formulated for each row set in the view object.

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.

Specified by:
setQueryMode in interface ViewObject
Parameters:
queryMode - the new query mode.

addQueryMode

public void addQueryMode(int queryMode)
Description copied from interface: ViewObject
Adds query mode for the view object. Query mode controls how qualifying rows are formulated for each row set in the view object.

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.

Specified by:
addQueryMode in interface ViewObject
Parameters:
queryMode - the new query mode to be added (OR'ed).

getQueryMode

public int getQueryMode()
Description copied from interface: ViewObject
Gets the current query mode of this view object. Query mode controls how qualifying rows are formulated for each row set in the view object.

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.

Specified by:
getQueryMode in interface ViewObject
Returns:
query mode.

isReadOnly

public boolean isReadOnly()
Description copied from interface: ViewObject
Tests if the view object is read-only.

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.

Specified by:
isReadOnly in interface ViewObject
Overrides:
isReadOnly in class WSObject
Returns:
true if this view object is read-only; false if it is updateable.

createRowSet

public RowSet createRowSet(java.lang.String name)
Description copied from interface: ViewObject
Creates and returns a new (secondary) row set for this view object.

Specified by:
createRowSet in interface ViewObject
Parameters:
name - the name for the new RowSet.
Returns:
the new row set.

getRowSets

public RowSet[] getRowSets()
Description copied from interface: ViewObject
Gets all row sets that belong to this view object.

Specified by:
getRowSets in interface ViewObject
Returns:
the array of row sets.

findRowSet

public RowSet findRowSet(java.lang.String name)
Description copied from interface: ViewObject
Gets the named row set that was created at runtime for this view object.

Specified by:
findRowSet in interface ViewObject
Parameters:
name - a row set name. If null, it returns the the view object.
Returns:
the row set. null if the named row set is not not found.

findWSRowSet

public WSRowSetImpl findWSRowSet(java.lang.String name)

getViewLinkNames

public java.lang.String[] getViewLinkNames()
Description copied from interface: ViewObject
Constructs an array of names of view links that involve this view object.

A view link may use this view object as either its source or destination. This method should not be overridden.

Specified by:
getViewLinkNames in interface ViewObject
Returns:
the array of view link names.

createViewCriteria

public ViewCriteria createViewCriteria()
Description copied from interface: ViewObject
Creates a new view criteria (that is, "Query by Example") object for this view object. A view criteria object is an alternative to using an arbitrary SQL statement. A view criteria is a list of row criteria for a view object's where-clause, where a row criteria is an array containing criteria for the individual attributes.

A view criteria is a more structured way of creating a SQL query where-clause. After setting various conditions for the view criteria object, the application can call applyViewCriteria

This method should not be overridden.

Specified by:
createViewCriteria in interface ViewObject
Returns:
the new view criteria object.
See Also:
ViewCriteria, ViewObject.applyViewCriteria(ViewCriteria)

applyViewCriteria

public void applyViewCriteria(ViewCriteria criteria)
Description copied from interface: ViewObject
Applies the view criteria to this view object. Invoking this method will erase all the previously applied view criteria on the view object.

Specified by:
applyViewCriteria in interface ViewObject
Parameters:
criteria - view criteria to be applied

applyViewCriteria

public void applyViewCriteria(ViewCriteria criteria,
                              boolean bAppend)
Description copied from interface: ViewObject
Applied the view criteria to this view object. If 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.

Specified by:
applyViewCriteria in interface ViewObject
Parameters:
criteria - view criteria to be applied
bAppend - flag to indicate if the applied view criteria list needs to be cleared before applying the view criteria.

getViewCriteria

public ViewCriteria getViewCriteria()
Description copied from interface: ViewObject
Gets the currently applied view criteria of this view object.

Specified by:
getViewCriteria in interface ViewObject
Returns:
the view criteria, or null if none was applied.

getViewCriteriaManager

public ViewCriteriaManager getViewCriteriaManager()
Specified by:
getViewCriteriaManager in interface ViewObject
Returns:
A criteria manager to hold all view criteria for the view object and manage applied and unapplied ones.

findViewLinkAccessor

public AttributeDef findViewLinkAccessor(ViewLink vl)
Description copied from interface: ViewObject
Finds the view link accessor attribute.

Specified by:
findViewLinkAccessor in interface ViewObject
Parameters:
vl - the view link whose accessor is being sought.
Returns:
the attribute definition if one is found. null if not.

getKeyAttributeDefs

public AttributeDef[] getKeyAttributeDefs()
Description copied from interface: ViewObject
Returns the attribute definitions that make up the constituents of the key object for rows returned from this view object.

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.

Specified by:
getKeyAttributeDefs in interface ViewObject
Returns:
the array of attribute definitions.

getAttrDefsForEntityAttr

public AttributeDef[] getAttrDefsForEntityAttr(java.lang.String eoName,
                                               java.lang.String eoAttrName)
Description copied from interface: ViewObject
Returns the definitions 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).

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.

Specified by:
getAttrDefsForEntityAttr in interface ViewObject
Parameters:
eoName - fully qualified name of the entity object.
eoAttrName - entity object attribute name.
Returns:
the array of attribute definitions.

clearCache

public void clearCache()
Description copied from interface: ViewObject
Clears the view object cache. This method can be called for resource conservation. Calling this method marks the view object and all its row sets as "needing to refresh its data". If another method that requires the result set is called (e.g., executeQuery(), next(), previous()) after this method, the query will be executed and the view object/row set's cache refreshed from the database.

Specified by:
clearCache in interface ViewObject

getMaxFetchSize

public int getMaxFetchSize()
Description copied from interface: ViewObject
Maximum number of rows to fetch for this view object. This number takes effect in when the query for this view object is executed the next time.

Specified by:
getMaxFetchSize in interface ViewObject

setMaxFetchSize

public void setMaxFetchSize(int max)
Description copied from interface: ViewObject
Maximum number of rows to fetch for this view object. This number takes effect the next time the query for this view object is executed.

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().

Specified by:
setMaxFetchSize in interface ViewObject
Parameters:
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.

setQueryOptimizerHint

public void setQueryOptimizerHint(java.lang.String hintText)
Description copied from interface: ViewObject
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 \/*+ <hintText> *\/ columns... For expert mode queries, this hint is appended in the outer select like: SELECT \/*+ <hintText> *\/ * FROM (<expert-query>)

Specified by:
setQueryOptimizerHint in interface ViewObject

getQueryOptimizerHint

public java.lang.String getQueryOptimizerHint()
Description copied from interface: ViewObject
Returns query optimizer Hint set for this ViewObject or for its definition object.

Specified by:
getQueryOptimizerHint in interface ViewObject

isInternal

public boolean isInternal()
Description copied from interface: ViewObject
Returns whether this view object was created internally by BC4J or by an explicit user request.

Specified by:
isInternal in interface ViewObject
Returns:
a flag indicating whether the view object is internal or not.

readRowXML

public void readRowXML(Element elem,
                       int depthCount)
Description copied from interface: ViewObject
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. If the row is not found, it tries to insert that row into this ViewObject with the attribute values from XML.

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.

Specified by:
readRowXML in interface ViewObject

readRowXML

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

getAttributeDefs

public AttributeDef[] getAttributeDefs()
Description copied from interface: StructureDef
Gets the defined attributes.

Specified by:
getAttributeDefs in interface StructureDef
Returns:
an array of attribute definitions.

getAttributeCount

public int getAttributeCount()
Description copied from interface: StructureDef
Returns the number of defined attributes.

Specified by:
getAttributeCount in interface StructureDef
Returns:
the number of attributes.

findAttributeDef

public AttributeDef findAttributeDef(java.lang.String name)
Description copied from interface: StructureDef
Gets an attribute definition, given its name.

Specified by:
findAttributeDef in interface StructureDef
Parameters:
name - the name of an AttributeDef.
Returns:
an attribute definition

lookupAttributeDef

public AttributeDef lookupAttributeDef(java.lang.String name)
Description copied from interface: StructureDef
Gets an attribute definition, given its name.

Specified by:
lookupAttributeDef in interface StructureDef
Parameters:
name - the name of an AttributeDef.
Returns:
an attribute definition if found, null otherwise

getAttributeDef

public AttributeDef getAttributeDef(int index)
Description copied from interface: StructureDef
Gets an attribute definition, given its index.

Specified by:
getAttributeDef in interface StructureDef
Parameters:
index - the index of an AttributeDef, where the leftmost attribute has index zero.
Returns:
an attribute definition.

getAttributeIndexOf

public int getAttributeIndexOf(java.lang.String name)
Description copied from interface: StructureDef
Finds the index (0-based) of the named attribute.

Specified by:
getAttributeIndexOf in interface StructureDef
Parameters:
name - the attribute's name.
Returns:
an integer in the range 0 to getAttributeCount() - 1. If the named attribute is not found, it returns -1.

getColumnNameForQuery

public java.lang.String getColumnNameForQuery(int index)
Specified by:
getColumnNameForQuery in interface StructureDef

getDefName

public java.lang.String getDefName()
Description copied from interface: StructureDef
Returns the structure's base definition name (short form). Note that, in some cases, a StructureDef may have an instance name and definition name. For example, for a View Object, getName() returns the VO's instance name and getDefName() returns the View definition's name.

Specified by:
getDefName in interface ComponentObject
Specified by:
getDefName in interface StructureDef
Returns:
name of the structure's base definition.

getDefFullName

public java.lang.String getDefFullName()
Description copied from interface: StructureDef
Returns the fully qualified name of the structure's base definition. Note that, in some cases, a StructureDef may have an instance name and definition name. For example, for a View Object, getFullName() returns the VO's full instance name and getDefFullName() returns the View definition's full name.

Specified by:
getDefFullName in interface ComponentObject
Specified by:
getDefFullName in interface StructureDef
Returns:
fully qualified name of the structure's base definition.

getSubstitutedDefNames

public java.lang.String[] getSubstitutedDefNames()
Description copied from interface: ViewObject
Returns an array of fully qualified view definition names that are substituted by this view object's definition.

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.

Specified by:
getSubstitutedDefNames in interface ViewObject
Returns:
an array of fully qualified view definition names. null if this view object's definition does not substitute any other view definition.

getFullName

public java.lang.String getFullName()
Description copied from interface: StructureDef
Returns the structure's fully qualified name.

Specified by:
getFullName in interface ComponentObject
Specified by:
getFullName in interface StructureDef
Overrides:
getFullName in class WSObject
Returns:
fully qualified name of the structure.

remove

public void remove()
Description copied from interface: ComponentObject
Deletes this component.

Specified by:
remove in interface ComponentObject

setMasterRowSetIterator

public boolean setMasterRowSetIterator(RowSetIterator masterRSI)
Description copied from interface: RowSet
Sets the master iterator.

Specified by:
setMasterRowSetIterator in interface RowSet
Parameters:
masterRSI - the new master row set iterator for this row set.
Returns:
true if the operation succeeded.

getViewObject

public ViewObject getViewObject()
Description copied from interface: RowSet
Gets the view object that owns this row set.

If this row set is the result of calling a view link accessor, the returned view object is an internal view object. ViewObject.isInternal() 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"):

    RowSet detailRS = (RowSet) masterViewRow.getMyDetail();
    ViewObject detailVO = detailRS.getViewObject();
 

Specified by:
getViewObject in interface RowSet
Returns:
the parent view object.

setNamedWhereClauseParams

public void setNamedWhereClauseParams(AttributeList attrlist)
Description copied from interface: RowSet
Sets the value of a named where-clause parameters for the entire viewObject.

Setting a named where-clause parameter does not automatically execute the query. You must call RowSet.executeQuery() to apply the new bind value.

Specified by:
setNamedWhereClauseParams in interface RowSet
Parameters:
attrlist - is a Name, value pair of bind variables.

getNamedWhereClauseParams

public AttributeList getNamedWhereClauseParams()
Description copied from interface: RowSet
Gets all the Name, value pairs of a named where-clause parameter of the viewObject.

It uses the method getNamedWhereClauseParam to return all the name,value pairs from VariableValueManager.

Specified by:
getNamedWhereClauseParams in interface RowSet
Returns:
an AttributeList of name, value pairs of all named bind variables.

setWhereClauseParams

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

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

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

setWhereClauseParam

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

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

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

defineNamedWhereClauseParam

public void defineNamedWhereClauseParam(java.lang.String name,
                                        java.lang.Object defaultValue,
                                        int[] indices)
Description copied from interface: RowSet
Defines a named bind variable to use with the view object's where-clause.

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 RowSet.executeQuery() to apply the new bind value.

Specified by:
defineNamedWhereClauseParam in interface RowSet
Parameters:
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.

removeNamedWhereClauseParam

public void removeNamedWhereClauseParam(java.lang.String name)
Description copied from interface: RowSet
Removes a named where-clause parameter.

This method removes previously defined named where-clause parameter. A check is made to ensure that the variable being removed is a where-clause parameter (variable kind = "where"). If not, an InvalidParamException is thrown.

If the named where-clause parameter is found but it does not belong to the view object that owns this row set, an InvalidOperException is thrown. This means one is disallowed from removing a named where-clause parameter that belongs to the View definition, for example.

Removing a named where-clause parameter does not automatically execute the query. You must call RowSet.executeQuery() for the removal to take effect.

Specified by:
removeNamedWhereClauseParam in interface RowSet
Parameters:
name - the name of the where-clause parameter to remove.

getNamedWhereClauseParam

public java.lang.Object getNamedWhereClauseParam(java.lang.String name)
Description copied from interface: RowSet
Gets the value of a named where-clause parameter for this row set.

If the view object owns multiple row sets, each row set may have its own (different) named where-clause parameter value.

Specified by:
getNamedWhereClauseParam in interface RowSet
Parameters:
name - the name of the where-clause parameter.

setNamedWhereClauseParam

public void setNamedWhereClauseParam(java.lang.String name,
                                     java.lang.Object value)
Description copied from interface: RowSet
Sets the value of a named where-clause parameter for this row set.

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 RowSet.executeQuery() to apply the new bind value.

Specified by:
setNamedWhereClauseParam in interface RowSet
Parameters:
name - the name of the where-clause parameter.
value - the where-clause parameter value for this row set.

skipNamedWhereClauseParam

public void skipNamedWhereClauseParam(java.lang.String name)
Description copied from interface: RowSet
Skips the named where-clause parameter for this row set. This method does not remove the named where-clause parameter. However, it "masks out" the named where-clause parameter, so that the parameter is skipped when the query is executed.

Skipping a named where-clause parameter does not automatically execute the query. You must call RowSet.executeQuery() for the skip to take effect.

Specified by:
skipNamedWhereClauseParam in interface RowSet
Parameters:
name - the name of the where-clause parameter.

getWhereClauseParams

public java.lang.Object[] getWhereClauseParams()
Description copied from interface: RowSet
Gets the bind variable values to be used with the view object's where-clause.

Specified by:
getWhereClauseParams in interface RowSet
Returns:
an array of bind-variable values.

executeQuery

public void executeQuery()
Description copied from interface: RowSet
Executes the query.

Specified by:
executeQuery in interface RowSet

executeEmptyRowSet

public void executeEmptyRowSet()
Specified by:
executeEmptyRowSet in interface RowSet

executeQuery2

public void executeQuery2(boolean resetCurrency,
                          boolean force,
                          boolean emptyRowSet)
Specified by:
executeQuery2 in interface WSRowSet

isDefaultRowSet

public boolean isDefaultRowSet()
Internal: Applications should not use this method.

Specified by:
isDefaultRowSet in interface RowSet
Returns:
true for the View Object.

isExecuteQuery

public boolean isExecuteQuery()
Specified by:
isExecuteQuery in interface WSRowSet

isRefreshDataModel

public boolean isRefreshDataModel()
Specified by:
isRefreshDataModel in interface WSRowSet

refreshDataModel

public void refreshDataModel()
Specified by:
refreshDataModel in interface WSRowSet

refreshDataModel2

public void refreshDataModel2(boolean resetCurrency,
                              boolean force)
Specified by:
refreshDataModel2 in interface WSRowSet

requestEstimatedRowCount

public void requestEstimatedRowCount()
Specified by:
requestEstimatedRowCount in interface WSRowSet

setAccessorTraversalByNamePaths

public void setAccessorTraversalByNamePaths(java.lang.String[] namePaths)
Specified by:
setAccessorTraversalByNamePaths in interface WSRowSet

setAccessorTraversalDef

public void setAccessorTraversalDef(AccTravDef accTravDef)
Specified by:
setAccessorTraversalDef in interface WSRowSet

getAccessorTraversalDef

public AccTravDef getAccessorTraversalDef()
Specified by:
getAccessorTraversalDef in interface WSRowSet

hasAccessorTraversalDef

public boolean hasAccessorTraversalDef()
Specified by:
hasAccessorTraversalDef in interface WSRowSet

isExecuted

public boolean isExecuted()
Description copied from interface: RowSet
Returns true if the current ViewObject's query has been executed for this row set.

Specified by:
isExecuted in interface RowSet
Returns:
true if query has been executed.

createRowSetIterator

public RowSetIterator createRowSetIterator(java.lang.String name)
Description copied from interface: RowSet
Creates an iterator for the row set.

Specified by:
createRowSetIterator in interface RowSet
Parameters:
name - the name to be given to the iterator.
Returns:
an iterator for this.

getRowSetIterators

public RowSetIterator[] getRowSetIterators()
Description copied from interface: RowSet
Gets all row set iterators that belong to this row set.

Specified by:
getRowSetIterators in interface RowSet
Returns:
the array of row set iterators.

findRowSetIterator

public RowSetIterator findRowSetIterator(java.lang.String name)
Description copied from interface: RowSet
Gets the named row set iterator that was created at runtime for this row set.

Specified by:
findRowSetIterator in interface RowSet
Parameters:
name - a row set iterator name. If null, it returns the the row set.
Returns:
the row set iterator. null if the named row set iterator is not not found.

findOrCreateRowSetIterator

public RowSetIterator findOrCreateRowSetIterator(java.lang.String name)
Specified by:
findOrCreateRowSetIterator in interface WSRowSet

removeMasterRowSetIterator

public boolean removeMasterRowSetIterator(RowSetIterator masterRSI)
Description copied from interface: RowSet
Removes a master row set iterator.

Specified by:
removeMasterRowSetIterator in interface RowSet
Parameters:
masterRSI - the iterator to be removed.
Returns:
true if masterRS was found, false otherwise.

getMasterRowSetIterators

public RowSetIterator[] getMasterRowSetIterators()
Description copied from interface: RowSet
Return all controlling masters of this row set.

Specified by:
getMasterRowSetIterators in interface RowSet
Returns:
An array of master iterators.

getApplicationModule

public ApplicationModule getApplicationModule()
Description copied from interface: RowSet
Gets the row set's application module that contains this row set.

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 ViewObject.isInternal()). 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.

Specified by:
getApplicationModule in interface RowSet
Returns:
the ApplicationModule to which this row set belongs.

getEstimatedRowCount

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

This 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().

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

getDeferredEstimatedRowCount

public long getDeferredEstimatedRowCount()
Description copied from interface: RowSet
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.

Specified by:
getDeferredEstimatedRowCount in interface RowSet
Returns:
-1 until either EstimatedRowCount or real RowCount is known.

getCappedRowCount

public long getCappedRowCount(long cap)
Specified by:
getCappedRowCount in interface RowSet

isForwardOnly

public boolean isForwardOnly()
Description copied from interface: RowSet
Tests if the row set is constrained to sequential access.

Specified by:
isForwardOnly in interface RowSet
Returns:
true if the row set is restricted to forward-only processing.
See Also:
RowSet.setForwardOnly(boolean)

setForwardOnly

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

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

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

getAccessMode

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

setAccessMode

public void setAccessMode(byte accessMode)
Description copied from interface: RowSet
Constrains the row access based on the following settings:

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.

Specified by:
setAccessMode in interface RowSet
Parameters:
accessMode - One of the four enumerated values RowSet.SCROLLABLE, RowSet.FORWARD_ONLY, RowSet.RANGE_PAGING, RowSet.RANGE_PAGING_AUTO_POST.

getRangePagingCacheFactor

public int getRangePagingCacheFactor()
Specified by:
getRangePagingCacheFactor in interface RowSet

setRangePagingCacheFactor

public void setRangePagingCacheFactor(int f)
Specified by:
setRangePagingCacheFactor in interface RowSet

setAssociationConsistent

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

Association-consistent mode allows the user to see new rows created/inserted through another view object. Note that this mode is effective only for view objects that are entity based. If the view object has no entity base, this mode has no effect.

Suppose we have an entity named E. Suppose two view objects, V1 and V2 are based on E. (V1 and V2 do not have to come from the same view definition.) Suppose the user creates a new row through V1. This creates an instance of E as well. The new entity row is registered only when its primary key is attribute set. At this time, an event is sent out to all view objects based on E, i.e., V1 and V2.

When V2 receives this event, it enumerates through all its collections (essentially its row sets--strictly speaking its query collections) looking for those whose isAssociationConsistent() value is true. For each row set whose flag value is true (say R2), it checks to see if it has any view row mapped to the new entity row. If not, it create a new view row and maps it to the new entity row. A rowInserted event fires.

Thus, from the user's view point, R2 is "seeing" the new row, although the row has not yet been posted to database. Hence, setting this flag to true enables the user to see new rows before the row is posted/queried when the view object is entity based.

If flag is false or if the view object is not entity based, the user needs to post the new row through Transaction.postChanges() and requery the row set through RowSet.executeQuery() to see the new row.

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.

Specified by:
setAssociationConsistent in interface RowSet
Parameters:
isAssociationConsistent - indicates whether association-consistency should be on or not.

isAssociationConsistent

public boolean isAssociationConsistent()
Description copied from interface: RowSet
Returns the flag indicating whether association-consistent mode is on or not.

Specified by:
isAssociationConsistent in interface RowSet
Returns:
true if un-posted new rows are to appear, false otherwise. This flag has no effect if the view object is not entity based.
See Also:
RowSet.setAssociationConsistent(boolean)

closeRowSet

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

Specified by:
closeRowSet in interface RowSet

isFetchComplete

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

Specified by:
isFetchComplete in interface RowSet
Returns:
true if the result set has been fetched to the end.

isMaxFetchSizeExceeded

public boolean isMaxFetchSizeExceeded()
Description copied from interface: RowSet
Tests if the query result has been fetched to the end and the end was reached due to hitting the maxFetchSize limit

Specified by:
isMaxFetchSizeExceeded in interface RowSet
Returns:
true if the result set has been fetched to the maxFetchSize limit and there are still more rows in the database.

getProperty

public java.lang.Object getProperty(java.lang.String hintName)
Description copied from interface: Properties
Retrieves the specified property, if it exists.

Specified by:
getProperty in interface Properties
Parameters:
hintName - Property name.
Returns:
the value of the property, if any, otherwise null.

getProperty

public java.lang.Object getProperty(java.lang.String hintName,
                                    LocaleContext locale)
Specified by:
getProperty in interface Properties

refreshProperty

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

Specified by:
refreshProperty in interface Properties
Parameters:
hintName - Property name.
Returns:
the value of the property, if any, otherwise null.

getProperties

public java.util.Hashtable getProperties()
Description copied from interface: Properties
Gets the table of properties.

Specified by:
getProperties in interface Properties
Returns:
a hashtable of properties.

writeXML

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

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

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

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

Specified by:
writeXML in interface XMLInterface
Parameters:
depthCount - represents to what level the rendering should recurse.
options - a set of bit flags that will control the writeXML behavior.

writeXML

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

readXML

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

readXML

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

writeXML

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

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

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

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

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

writeXML

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

getRowSet

public RowSet getRowSet()
Description copied from interface: RowSetIterator
Gets the Row Set that this Iterator belongs to.

Specified by:
getRowSet in interface RowSetIterator
Specified by:
getRowSet in class WSRowSetIteratorBase
Returns:
the owning Row Set.

getDetailRowSets

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

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

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

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

createDetailRowSet

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

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

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

closeRowSetIterator

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

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

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

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

getSyncLock

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

Specified by:
getSyncLock in interface RowSetIterator
Specified by:
getSyncLock in class WSRowSetIteratorBase
Returns:
the locking object.

setRangeSize

public int setRangeSize(int size)
Description copied from interface: RowIterator
Modifies the size of the Row Set Iterator range.

This method takes effect when the next set of data is fetched. For an example usage of setRangeSize, see setRangeStart.

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

getRangeSize

public int getRangeSize()
Description copied from interface: RowIterator
Gets the size of the Row Set Iterator range.

Specified by:
getRangeSize in interface RowIterator
Specified by:
getRangeSize in class WSRowSetIteratorBase
Returns:
the number of rows in the range.

getRangeStart

public int getRangeStart()
Description copied from interface: RowIterator
Gets the absolute row index of the first row in the Row Set Iterator range.

The absolute index is 0-based, and is the row's index relative to the entire result set.

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

setRangeStart

public int setRangeStart(int start)
Description copied from interface: RowIterator
Moves the Row Set Iterator range.

Note that the index is 0-based. When you call setRangeStart(1), the range start will be positioned at the second table row.

Another behavior of setRangeStart (and also setRangeSize) is that it tries to position the range, so as to fill up the range as much as possible. For example, assume you have View Object vo focused on a table with four rows (A, B, C, D), and you execute the following code:

     vo.setRangeStart(4);
     vo.setRangeSize(3);
     Row[] rows = vo.getAllRowsInRange();
 

In this case, rows contains the last 3 rows (B, C, D). When you call setRangeStart(4), it will try to position you at row 4. Since the index is 0-based, it finds that there is no row. Since the default range size is 1, it will position you to the last row (row index 3).

Then, when you call getRangeSize(3), it tries to fill up the range from the bottom. This is why you get (B, C, D).

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

scrollRange

public int scrollRange(int amount)
Description copied from interface: RowIterator
Moves the Row Set Iterator range up or down a given number of rows.

Specified by:
scrollRange in interface RowIterator
Specified by:
scrollRange in class WSRowSetIteratorBase
Parameters:
amount - the number of rows to scroll. A negative value scrolls upward.
Returns:
the number of rows actually scrolled.

scrollToRangePage

public int scrollToRangePage(int amount)
Description copied from interface: RowSetIterator
Moves the row set range start to the given page index where every page consists of RangeSize number of rows. PageIndex should start at page number 1. This method calculates the rowIndex that should start at that page and then scrolls the iterator to start at that row by using the following calculation:

(rangeSize * (pageSize-1)) - getRangeStart();

Specified by:
scrollToRangePage in interface RowSetIterator
Overrides:
scrollToRangePage in class WSRowSetIteratorBase
Parameters:
amount - the page number to go to in the result set.
Returns:
the number of rows actually scrolled.

scrollRangeTo

public int scrollRangeTo(Row row,
                         int index)
Description copied from interface: RowIterator
Scrolls the range to place a given row at a given range index.

Specified by:
scrollRangeTo in interface RowIterator
Specified by:
scrollRangeTo in class WSRowSetIteratorBase
Parameters:
row - the row.
index - the range index at which the row is to be found.
Returns:
the actual number of rows scrolled. A negative number indicates that the scroll was scrolled upward.

setRowValidation

public void setRowValidation(boolean flag)
Description copied from interface: RowIterator
Sets the validation flag on this iterator. By default a RowIterator validates the current row when navigating to another row. This method can be used to turn this row-validation off by passing 'false' as parameter.

Specified by:
setRowValidation in interface RowIterator
Specified by:
setRowValidation in class WSRowSetIteratorBase
Parameters:
flag - Whether to turn row validation off or not.

isRowValidation

public boolean isRowValidation()
Description copied from interface: RowIterator
Gets the validation flag on this iterator. By default a RowIterator validates the current row when navigating to another row. This method returns TRUE if this row-validation is turned off.

Specified by:
isRowValidation in interface RowIterator
Specified by:
isRowValidation in class WSRowSetIteratorBase

getIterMode

public int getIterMode()
Description copied from interface: RowIterator
Gets the current iteration mode. See Iteration Modes above for details on iteration mode which controls how the range behaves when it reaches the end of the Row Set.

Specified by:
getIterMode in interface RowIterator
Specified by:
getIterMode in class WSRowSetIteratorBase
Returns:
ITER_MODE_LAST_PAGE_PARTIAL if the iteration mode is "partial-last-page", ITER_MODE_LAST_PAGE_FULL if it is "full-last-page".

setIterMode

public void setIterMode(int mode)
Description copied from interface: RowIterator
Sets the iteration mode for this Row Iterator. See Iteration Modes above for details on iteration mode which controls how the range behaves when it reaches the end of the Row Set.

Specified by:
setIterMode in interface RowIterator
Specified by:
setIterMode in class WSRowSetIteratorBase
Parameters:
mode - should be ITER_MODE_LAST_PAGE_PARTIAL if the iteration mode is to be "partial-last-page", ITER_MODE_LAST_PAGE_FULL if it is to be "full-last-page".

invokeExportedMethod

public java.lang.Object invokeExportedMethod(java.lang.String methodName,
                                             java.lang.String[] argTypes,
                                             java.lang.Object[] args)
Specified by:
invokeExportedMethod in interface Exportable

getQueryTimeOut

public int getQueryTimeOut()
Description copied from interface: ViewObject
Returns the current query time out value. The default is QUERY_TIMEOUT_WAIT_FOREVER.

Specified by:
getQueryTimeOut in interface ViewObject
Returns:
the current query time out value.

setQueryTimeOut

public void setQueryTimeOut(int queryTimeOut)
Description copied from interface: ViewObject
Sets the query time out value for the view object. The default is 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().

Specified by:
setQueryTimeOut in interface ViewObject
Parameters:
queryTimeOut - if non-negative, number of milli-seconds before the query is timed out. Or, it can be the QUERY_TIMEOUT_WAIT_FOREVER constants.

cancelQuery

public boolean cancelQuery()
Description copied from interface: RowSet
Cancels a running query.

Specified by:
cancelQuery in interface RowSet
Returns:
a flag indicating whether the request to cancel was honored or not. It will return false if the JDBC statement is not executing a query.

lookupListBindingDef

public ListBindingDef lookupListBindingDef(java.lang.String lbName)
Description copied from interface: ViewObject
Return listbinding definition if defined in this ViewObject (or in the entity definitions for entities that this ViewObject constitutes of).

Specified by:
lookupListBindingDef in interface ViewObject

findListBindingDef

public ListBindingDef findListBindingDef(java.lang.String lbName)
Description copied from interface: ViewObject
Return listbinding definition if defined in this ViewObject (or in the entity definitions for entities that this ViewObject constitutes of). This method unlike ViewObject.lookupListBindingDef(String) throws an exception if a listbinding definition of name lbName is not found.

Specified by:
findListBindingDef in interface ViewObject
Parameters:
lbName - listbinding name
Returns:
listbinding definition

deepCopy

public RowSet deepCopy(java.util.HashMap voAttrMap,
                       long options)
This method delegates to the default RowSet.

Specified by:
deepCopy in interface RowSet
Parameters:
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.
Returns:
a deep copy of the RowSet
See Also:
RowSet.deepCopy(java.util.HashMap, long)

resetExecuted

public void resetExecuted()
This method delegates to the default RowSet.

Specified by:
resetExecuted in interface RowSet
See Also:
RowSet.resetExecuted()

setRequiredViewCriteria

public void setRequiredViewCriteria(ViewCriteria criteria)
Description copied from interface: ViewObject
Setting a view criteria as required will enforce the criteria whenever the view object's query is executed. This criteria cannot be removed by using getViewCriteriaManager().clearViewCriterias or getViewCriteriaManager().removeViewCriteria API.

Specified by:
setRequiredViewCriteria in interface ViewObject
Parameters:
criteria - Set the criteria as required view criteria for this view object instance.

getRequiredViewCriteria

public ViewCriteria getRequiredViewCriteria()
Description copied from interface: ViewObject
This method returns a reference to the required view criteria if one exists on this View Object. See ViewObject.setRequiredViewCriteria(oracle.jbo.ViewCriteria)

Specified by:
getRequiredViewCriteria in interface ViewObject

getCriteriaItemAttributeHints

public AttributeHints getCriteriaItemAttributeHints(ViewCriteriaItem vci)
By default return null. Subclasses may override to return custom AttributeHints implementation for the given criteria item.

Specified by:
getCriteriaItemAttributeHints in interface ViewObject
Returns:
Custom AttributeHints implementation if any for this criteria item.

getForwardDependencyAttributes

public java.util.List getForwardDependencyAttributes(java.lang.String attName)
Specified by:
getForwardDependencyAttributes in interface ViewObject

Oracle Fusion Middleware Java API Reference for Oracle ADF Model
11g Release 1 (11.1.1.4.0)

E10653-05

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