|
Oracle Application Development Framework Model and Business Components Java API Reference
10.1.3.1.0 B28969-01 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
java.util.AbstractCollection
java.util.AbstractList
java.util.Vector
oracle.jbo.ViewCriteria
A list of row criteria for a View Object's WHERE clause.
The lengths of the oracle.jbo.ViewCriteriaRows
in the list must all match the number of attributes in the View Object.
The following example of a user-defined function, demoCriteria uses several methods in the ViewCriteria and ViewCriteriaRow
classes to create and populate criteria rows and to demonstrate "query-by-example." The printViewObject is a helper function that executes the View Object query and prints the results to the screen.
public static void demoCriteria(ApplicationModule appMod) { // Create and populate criteria rows to support query-by-example. ViewObject empView = appMod.createViewObject("Emp", "mypackage1.EmpView"); ViewCriteria vc = empView.createViewCriteria(); ViewCriteriaRow vcRow = vc.createViewCriteriaRow(); // ViewCriteriaRow attribute name is case-sensitive. // ViewCriteriaRow attribute value requires operator and value. // Note also single-quotes around string value. vcRow.setAttribute("Job", "= 'MANAGER'"); vc.addElement(vcRow); vcRow = vc.createViewCriteriaRow(); vcRow.setAttribute("Sal", "> 2500"); vc.addElement(vcRow); empView.applyViewCriteria(vc); // Multiple rows are OR-ed in WHERE clause. System.out.println("Demo View Criteria"); // Should print employees that are MANAGER or have Sal > 2500 QueryDemo.printViewObject(empView); } public static void printViewObject(ViewObject vo) { // Execute the query, print results to the screen. vo.executeQuery(); // Print the View Object's query System.out.println("Query: " + vo.getQuery()); while (vo.hasNext()) { Row row = vo.next();\ String rowDataStr = ""; // How many attributes (columns) is the View Object using? int numAttrs = vo.getAttributeCount(); // Column numbers start with 0, not 1. for (int columnNo = 0; columnNo < numAttrs; columnNo++) { // See also Row.getAttribute(String name). Object attrData = row.getAttribute(columnNo); rowDataStr += (attrData + "\t"); } System.out.println(rowDataStr); } }
In the above code example, note that the View Object's
must be called to apply this ViewCriteria to the View Object.ViewObject.applyViewCriteria(oracle.jbo.ViewCriteria)
Field Summary | |
static int |
CRITERIA_MODE_CACHE CRITERIA_MODE_... constants are used to specify View Criteria mode. |
static int |
CRITERIA_MODE_QUERY CRITERIA_MODE_... constants are used to specify View Criteria mode. |
protected com.sun.java.util.collections.ArrayList |
listeners |
Fields inherited from class java.util.Vector |
capacityIncrement, elementCount, elementData |
Fields inherited from class java.util.AbstractList |
modCount |
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 |
Constructor Summary | |
ViewCriteria(StructureDef structureDef) |
|
ViewCriteria(oracle.jbo.ViewObject viewObject) Creates an empty view criteria object. |
Method Summary | |
void |
add(int index, java.lang.Object element) |
boolean |
add(java.lang.Object o) |
boolean |
addAll(java.util.Collection c) |
boolean |
addAll(int index, java.util.Collection c) |
void |
addElement(java.lang.Object obj) |
void |
addListener(java.lang.Object target) Adds a RowSetListener . |
void |
clear() |
Row |
createAndInitRow(oracle.jbo.AttributeList nvp) Creates a new Row object, but does not insert it into the row set. |
Key |
createKey(oracle.jbo.AttributeList nvp) Given a list of name-value pairs, creates a Key object. |
Row |
createRow() Creates a new Row object, but does not insert it into the row set. |
oracle.jbo.ViewCriteriaRow |
createViewCriteriaRow() Creates a new ViewCriteriaRow for this ViewCriteria. |
void |
criteriaChanged() |
java.util.Enumeration |
enumerateRowsInRange() Gets an Enumeration interface for the row set. |
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. |
Row |
first() Designates the first row of the row set as the current row. |
Row[] |
getAllRowsInRange() Returns an array ViewCriteriaRow's in this ViewCriteria. |
int |
getAttributeIndexOf(java.lang.String name) Finds the attribute associated with an attribute name. |
oracle.jbo.CriteriaClauses |
getClauses() |
int |
getCriteriaMode() Gets the current View Criteria mode. |
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. |
int |
getFetchedRowCount() Counts the number of rows currently fetched in the row set. |
int |
getIterMode() Gets the iteration mode. |
protected com.sun.java.util.collections.ArrayList |
getListenersList() |
int |
getRangeIndexOf(Row row) Get the index of the given row relative to the beginning of the range. |
int |
getRangeSize() Gets the range size. |
int |
getRangeStart() Gets the absolute index of the first row in the row set range. |
Row |
getRow(Key key) Accesses a row through a unique key. |
Row |
getRowAtRangeIndex(int index) Accesses a row through its index in the row set. |
int |
getRowCount() Counts the total number of rows in the row set. |
int |
getRowCountInRange() Gets the size of the row set range. |
StructureDef |
getStructureDef() return StructureDef that this Criteria is based on. |
oracle.jbo.ViewObject |
getViewObject() Gets the View Object that owns the view criteria. |
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. |
void |
insertElementAt(java.lang.Object obj, int index) |
void |
insertRow(Row row) Adds a row to the row set, before the current row. |
void |
insertRowAtRangeIndex(int index, Row row) Adds a row to the row set at the given index. |
boolean |
isCriteriaForQuery() Returns a flag indicating whether the View Criteria is to be included in database query or be used for in memory row filtering. |
boolean |
isCriteriaForRowMatch() |
boolean |
isRangeAtBottom() Tests if the row set range is at the end of the result set. |
boolean |
isRangeAtTop() Tests if the row set range is at the beginning of the result set. |
boolean |
isRowValidation() Gets the validation flag on this iterator. |
boolean |
isUseAttributeFormatHint() |
Row |
last() Designates the last row of the row set as the current row. |
Row |
next() Steps forward, designating the next row as the current row. |
Row |
previous() Steps backward, designating the previous row as the current row. |
java.lang.Object |
remove(int index) |
boolean |
remove(java.lang.Object o) |
boolean |
removeAll(java.util.Collection c) |
void |
removeAllElements() |
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. |
boolean |
removeElement(java.lang.Object obj) |
void |
removeElementAt(int index) |
void |
removeListener(java.lang.Object target) Removes a RowSetListener . |
protected void |
removeRange(int fromIndex, int toIndex) |
void |
reset() Clears the "current row" designation and places the iterator in the slot before the first row. |
boolean |
retainAll(java.util.Collection c) |
int |
scrollRange(int amount) Moves the row set range up or down a given number of rows. |
int |
scrollRangeTo(Row row, int index) Scrolls the range to place a given row at a given row set index. |
int |
scrollToRangePage(int pageIndex) This method is a no-op and returns zero. |
java.lang.Object |
set(int index, java.lang.Object element) |
void |
setClauses(oracle.jbo.CriteriaClauses clauses) |
void |
setCriteriaForQuery(boolean b) Deprecated. Since JDeveloper 10.1.3. Use setCriteriaMode(int) instead |
void |
setCriteriaMode(int mode) Sets the criteria mode which controls the manner in which the View Criteria will be used. |
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 |
setElementAt(java.lang.Object obj, int index) |
void |
setIterMode(int mode) Modifies the iteration mode. |
int |
setRangeSize(int size) Modifies the size of the row set range. |
int |
setRangeStart(int start) Moves the row set range. |
void |
setRowValidation(boolean flag) Sets the validation flag on this iterator. |
void |
setUseAttributeFormatHint(boolean flag) Turn this flag off to get the 904 and earlier behavior where attribute formatters are not consulated for equality critiera. |
void |
setViewCriteriaManager(oracle.jbo.ViewCriteriaManager manager) |
void |
setViewObject(oracle.jbo.ViewObject vo) |
void |
trimNoDataRows() This method walks through ViewCriteriaRow's in this ViewCriteria and removes those rows that have no data. |
Methods inherited from class java.util.Vector |
capacity, clone, contains, containsAll, copyInto, elementAt, elements, ensureCapacity, equals, firstElement, get, hashCode, indexOf, indexOf, isEmpty, lastElement, lastIndexOf, lastIndexOf, setSize, size, subList, toArray, toArray, toString, trimToSize |
Methods inherited from class java.util.AbstractList |
iterator, listIterator, listIterator |
Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.util.List |
iterator, listIterator, listIterator |
Field Detail |
public static int CRITERIA_MODE_QUERY
CRITERIA_MODE_...
constants are used to specify View Criteria mode. CRITERIA_MODE_QUERY
means that the View Criteria will be used to augment the database query's where-clause.
These constants may be OR'ed together. For example, (CRITERIA_MODE_QUERY | CRITERIA_MODE_CACHE)
specifies that the View Criteria will be used for the database query, as well as the RowMatch (in-memory row filtering).
public static int CRITERIA_MODE_CACHE
CRITERIA_MODE_...
constants are used to specify View Criteria mode. CRITERIA_MODE_CACHE
means that the View Criteria will be used to produce a RowMatch
, which is used for in-memory row filtering.
These constants may be OR'ed together. For example, (CRITERIA_MODE_QUERY | CRITERIA_MODE_CACHE)
specifies that the View Criteria will be used for the database query, as well as the RowMatch (in-memory row filtering).
protected com.sun.java.util.collections.ArrayList listeners
Constructor Detail |
public ViewCriteria(oracle.jbo.ViewObject viewObject)
viewObject
- the owner of this ViewCriteria
.public ViewCriteria(StructureDef structureDef)
Method Detail |
public void setViewCriteriaManager(oracle.jbo.ViewCriteriaManager manager)
public oracle.jbo.CriteriaClauses getClauses()
public void setClauses(oracle.jbo.CriteriaClauses clauses)
public void criteriaChanged()
public boolean isCriteriaForQuery()
If true
, when the View Criteria is translated into a row qualification clause, it will use the name of the database column to which the attribute is mapped. If false
, the attribute name is used as is.
If the View Criteria is being used for in memory row filtering, it should be used in conjunction with RowQualifier. See
for details.oracle.jbo.server.ViewObjectImpl#setRowQualifier(oracle.jbo.server.RowQualifier)
true
) or for in memory row filtering (false
).public boolean isCriteriaForRowMatch()
public void setCriteriaForQuery(boolean b)
If true
, when the View Criteria is translated into a row qualification clause, it will use the name of the database column to which the attribute is mapped. If false
, the attribute name is used as is.
If the View Criteria is being used for in memory row filtering, it should be used in conjunction with RowQualifier. See
for details.oracle.jbo.server.ViewObjectImpl#setRowQualifier(oracle.jbo.server.RowQualifier)
b
- the flag indicating whether the View Criteria is for database query (true
) or for in memory row filtering (false
).public int getCriteriaMode()
See CRITERIA_MODE_...
constants for possible mode values.
The returning mode may be a combination (through bit-wise OR) multiple criteria modes.
public void setCriteriaMode(int mode)
See CRITERIA_MODE_...
constants for possible mode values.
The CRITERIA_MODE_...
constants may be OR'ed together. For example, if this method is called with (CRITERIA_MODE_QUERY | CRITERIA_MODE_CACHE)
, the View Criteria will be used for the database query, as well as the RowMatch (in-memory row filtering).
mode
- the new criteria mode.public void setViewObject(oracle.jbo.ViewObject vo)
public oracle.jbo.ViewObject getViewObject()
ViewObject
that owns this ViewCriteria
.public StructureDef getStructureDef()
public int getAttributeIndexOf(java.lang.String name)
name
- the attribute name.public oracle.jbo.ViewCriteriaRow createViewCriteriaRow()
ViewCriteriaRow
, an array for WHERE clause criteria.ViewCriteriaRow
public Row next()
next
in interface RowIterator
null
if there is no next row.public Row previous()
previous
in interface RowIterator
null
if there is no previous row.public Row first()
first
in interface RowIterator
null
if the row set is empty.public Row last()
last
in interface RowIterator
null
if the row set is empty.public void reset()
A subsequent invocation of next()
will cause the first row to become the current row.
reset
in interface RowIterator
public boolean hasNext()
hasNext
in interface RowIterator
true
if there is next row.public boolean hasPrevious()
hasPrevious
in interface RowIterator
true
if there is previous row.public int getFetchedRowCount()
getFetchedRowCount
in interface RowIterator
public int getRowCount()
getRowCount
in interface RowIterator
public Row getRowAtRangeIndex(int index)
getRowAtRangeIndex
in interface RowIterator
index
- an integer in the range 0
to getRangeSize() - 1
.null
if the index is out of range.public Row getCurrentRow()
getCurrentRow
in interface RowIterator
public int getCurrentRowIndex()
getCurrentRowIndex
in interface RowIterator
public int getCurrentRowSlot()
getCurrentRowSlot
in interface RowIterator
SLOT_
. See SLOT_
constants in RowIterator
.public boolean setCurrentRow(Row row)
setCurrentRow
in interface RowIterator
row
- the new current row.true
if the operation succeeded.public Row createAndInitRow(oracle.jbo.AttributeList nvp)
ViewCriteria
, this method works just like createRow()
.createAndInitRow
in interface RowIterator
nvp
- not used.public Row createRow()
createRow
in interface RowIterator
public void insertRow(Row row)
insertRow
in interface RowIterator
row
- the Row object to be added.public void removeCurrentRow()
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 setRangeSize(int size)
This method is a no-op for ViewCriteria. For a ViweCriteria, the range size is always -1.
setRangeSize
in interface RowIterator
size
- this parameter is not used.-1
, which means that the range contains all rows.RowIterator.setRangeStart(int)
public int getRangeSize()
getRangeSize
in interface RowIterator
-1
, which means that the range contains all rows.public int getRangeStart()
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)
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 range.public int scrollRange(int amount)
scrollRange
in interface RowIterator
amount
- the number of rows to scroll. A negative value scrolls upward.public int scrollToRangePage(int pageIndex)
public int scrollRangeTo(Row row, int index)
scrollRangeTo
in interface RowIterator
row
- the row.index
- the row's new index.public boolean setCurrentRowAtRangeIndex(int index)
setCurrentRowAtRangeIndex
in interface RowIterator
index
- the index of the new current row.true
if the operation succeeded.public void insertRowAtRangeIndex(int index, Row row)
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 int getRangeIndexOf(Row row)
getRangeIndexOf
in interface RowIterator
row
- a Row object. or -1
if the row is not in range.row
(0 based).public int getRowCountInRange()
getRowCountInRange
in interface RowIterator
public boolean isRangeAtBottom()
isRangeAtBottom
in interface RowIterator
true
if the last row of the range is the last row of the result set.public boolean isRangeAtTop()
isRangeAtTop
in interface RowIterator
true
if the first row of the range is the first row of the result set.public java.util.Enumeration enumerateRowsInRange()
Enumeration
interface for the row set.enumerateRowsInRange
in interface RowIterator
Enumeration
interface.public Row[] getAllRowsInRange()
getAllRowsInRange
in interface RowIterator
public Row getRow(Key key)
This operation is not supported by ViewCriteria. Calling this method will throw InvalidOperException
.
getRow
in interface RowIterator
key
- a key.InvalidOperException
- is thrown. ViewCriteria does not support this operation.public Row[] findByKey(Key key, int maxNumOfRows)
This operation is not supported by ViewCriteria. Calling this method will throw InvalidOperException
.
findByKey
in interface RowIterator
key
- the key to match.maxNumOfRows
- the maximum size of the array to return, or -1 to return all rows.InvalidOperException
- is thrown. ViewCriteria does not support this operation.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 Key createKey(oracle.jbo.AttributeList nvp)
This operation is not supported by ViewCriteria. Calling this method will throw InvalidOperException
.
createKey
in interface RowIterator
nvp
- the name value pair array.InvalidOperException
- is thrown. ViewCriteria does not support this operation.public Row[] findByEntity(int eRowHandle, int maxNumOfRows)
eRowHandle
.
This operation is not supported by ViewCriteria. Calling this method will throw InvalidOperException
.
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.InvalidOperException
- is thrown. ViewCriteria does not support this operation.public void setRowValidation(boolean flag)
This operation is not supported by ViewCriteria. Calling this method will throw InvalidOperException
.
setRowValidation
in interface RowIterator
flag
- whether to turn row validation off or not.InvalidOperException
- is thrown. ViewCriteria does not support this operation.public boolean isRowValidation()
RowIterator
isRowValidation
in interface RowIterator
public int getIterMode()
As ViewCriteria always works with full range (range size -1), iteration mode is meaningless.
getIterMode
in interface RowIterator
RowIterator.ITER_MODE_LAST_PAGE_FULL
.public void setIterMode(int mode)
This method is a no-op for ViewCriteria. For a ViweCriteria, the range size is always -1, and thus iteration mode is meaningless.
setIterMode
in interface RowIterator
mode
- this parameter is not used.protected com.sun.java.util.collections.ArrayList getListenersList()
public void addListener(java.lang.Object target)
RowSetListener
.addListener
in interface NavigatableRowIterator
target
- the listener to add.public void removeListener(java.lang.Object target)
RowSetListener
.removeListener
in interface NavigatableRowIterator
target
- the listener to remove.public void trimNoDataRows()
public void setUseAttributeFormatHint(boolean flag)
public boolean isUseAttributeFormatHint()
public void add(int index, java.lang.Object element)
add
in interface java.util.List
public boolean add(java.lang.Object o)
add
in interface java.util.List
public boolean addAll(java.util.Collection c)
addAll
in interface java.util.List
public boolean addAll(int index, java.util.Collection c)
addAll
in interface java.util.List
public void addElement(java.lang.Object obj)
public void clear()
clear
in interface java.util.List
public void insertElementAt(java.lang.Object obj, int index)
public java.lang.Object remove(int index)
remove
in interface java.util.List
public boolean remove(java.lang.Object o)
remove
in interface java.util.List
public boolean removeAll(java.util.Collection c)
removeAll
in interface java.util.List
public void removeAllElements()
public boolean removeElement(java.lang.Object obj)
public void removeElementAt(int index)
protected void removeRange(int fromIndex, int toIndex)
public boolean retainAll(java.util.Collection c)
retainAll
in interface java.util.List
public java.lang.Object set(int index, java.lang.Object element)
set
in interface java.util.List
public void setElementAt(java.lang.Object obj, int index)
|
Oracle Application Development Framework Model and Business Components Java API Reference
10.1.3.1.0 B28969-01 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |