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

E10653-01

oracle.adf.model.binding
Class DCIteratorBinding

java.lang.Object
  extended by java.util.AbstractMap
      extended by oracle.jbo.common.JboAbstractMap
          extended by oracle.adf.model.binding.DCExecutableBinding
              extended by oracle.adf.model.binding.DCIteratorBinding
All Implemented Interfaces:
java.util.EventListener, java.util.Map, DCIExecutable, DataChangeListener, RowNavigationListener, RowSetListener, RowSetManagementListener
Direct Known Subclasses:
JUIteratorBinding

public abstract class DCIteratorBinding
extends DCExecutableBinding
implements RowSetListener, RowSetManagementListener, DataChangeListener

DCIteratorBinding is the binding class that interacts with RowIterator objects to iterate over rows and provide the current row(s) for use in a client application or to view via various control bindings. DCIteratorBinding objects are uniquely identified by name in a DCBindingContainer which acts as a container of iterator bindings. This class handles the events generated from the associated RowIterator and sends the current Row (rows in range) over to individual control bindings to display current data. This class also manages the findMode data for the associated iterator and ViewObject(incase of BC4J).

At runtime, an application can bind an instance of oracle.jbo.NavigatableRowIterator to a DCIteratorBinding object using the bindRowSetIterator method.

javabean.class
name=DCIteratorBinding

Nested Class Summary
static class DCIteratorBinding.RenderHintTypes
           
 
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
protected  ApplicationModule mAM
          Internal: Applications should not use this member.
protected  Row mCreatedRowRef
          Internal: Applications should not use this member.
protected  DCDataControl mDC
          Internal: Applications should not use this member.
protected  boolean mDoNavigation
          Internal: Applications should not use this member.
protected  int mRangeSize
           
static int RANGESIZE_DO_NOT_OVERRIDE
           
static int RANGESIZE_UNLIMITED
           
 
Fields inherited from class oracle.adf.model.binding.DCExecutableBinding
mInternalGet_KeyResolved, mPermissionInfo
 
Fields inherited from class oracle.jbo.common.JboAbstractMap
MAP_NULL_VALUE
 
Fields inherited from interface oracle.adf.model.binding.DCIExecutable
EXECUTABLE_ACTION, EXECUTABLE_ITERATORBINDING, EXECUTABLE_REGION
 
Constructor Summary
protected DCIteratorBinding()
           
protected DCIteratorBinding(ApplicationModule am, java.lang.String voName, java.lang.String rsiName)
          When the usage only needs one row at a time, use this constructor to create an iterator binding.
protected DCIteratorBinding(ApplicationModule am, java.lang.String voName, java.lang.String rsiName, int rangeSize)
          Use this constructor if a usage needs a specific range size on the associated iterator.
protected DCIteratorBinding(BindingContext ctx, java.lang.String dcName, java.lang.String sourceName, java.lang.String rsiName, int rangeSize)
          Use this constructor if a usage needs a specific range size on the associated iterator.
protected DCIteratorBinding(DCDataControl dc, RowSetIterator rsi)
          When an application has a RowSet it should use this constructor.
protected DCIteratorBinding(DCIteratorBinding iterBinding)
           
 
Method Summary
 void addActionBinding(DCControlBinding bnd)
          Adds the given action control binding object to its list.
protected  void addDataChangeListener(JUCtrlValueBinding binding)
           
protected  void addDependentListeners()
           
 void addStateVariableForBinding(DCControlBinding binding, java.lang.String varName, java.lang.Object value)
           
 void addValueBinding(DCControlBinding bnd)
          Adds the given control binding object to its list.
 boolean allowsRefreshControl()
           
 void applySortCriteria(SortCriteria[] sortby)
          Sets the sort critiera that will be applied next time when the source for this iteratorBinding is executed.
 void bindRowSetIterator(NavigatableRowIterator iter, boolean initRangeSize)
          Use this method to bind a new instance of RowIterator from a Business Service to this binding.
protected  void cacheCreatedRow(RowSetIterator rsi, Row row)
           
protected  void cacheDeleteEvent(DeleteEvent event)
          Cache a DeleteEvent
protected  void cacheInsertEvent(InsertEvent event)
          Cache an InsertEvent
protected  void cacheNavigationEvent(NavigationEvent event)
          Caches a NavigationEvent.
protected  void cacheRangeEvent(RangeEvent event)
          Cache a RangeEvent
protected  void cacheUpdateEvent(UpdateEvent event)
          Cache an UpdateEvent
protected  RowSetIterator callInitSourceRSI()
           
 void clearEventsCache()
          Internal: Applications should not use this method.
 void clearForRecreate()
           
 Key createKey(java.lang.String stringKey)
          Given the key string, convert it to a Key using the associated RowSetIterator's StructureDef.
abstract  void dataChanged(DataChangeEvent event)
          raised when datachanges are detected in the datacontrol implementation and is to be notified via the bindings to the UI layers.
protected  void disableTokenValidation()
           
protected  void doExecuteQuery()
          Calls datacontrol.executeIteratorBinding.
 void executeQuery()
          Executes the query or the RowSet behind this iterator binding object.
 void executeQueryIfNeeded()
          Executes the query or the RowSet behind this iterator binding object if not already executed.
protected  void fetchAttributeProperties()
           
protected  AttributeDef findOrCreateSelectionAttributeDef(DCControlBinding binding, java.lang.String baseName, java.lang.String type)
           
 Row findRowByKeyString(java.lang.String s)
           
 RowIterator findRowsByAttributeValue(java.lang.String attrName, boolean equals, java.lang.Object value)
           
 RowIterator findRowsByAttributeValues(java.lang.String[] attrNames, java.lang.Object[] values)
           
 RowIterator findRowsByKeyValues(Key[] keys)
           
 java.util.ArrayList getActionBindingList()
          Returns a list of DCCtrlActionBinding objects that are associated with this iterator binding.
 Row[] getAllRowsInRange()
          Returns an array of rows in the current range of the current RowIterator.
protected  ApplicationModule getApplicationModule()
           
 AttributeDef[] getAttributeDefs()
          get all attribute defs for the RSI that this iterator binding is bound to.
 AttributeDef[] getAttributeDefs(java.lang.String[] attrNames)
          return attribute defs for attributes that are named in the given array.
protected  java.util.List getCachedEvents(DCControlBinding binding)
          Internal: Applications should not use this method.
 int getChangeEventRate()
           
 Row getCurrentRow()
          Returns the current row of the iterator with which this binding object is associated.
 int getCurrentRowIndexInRange()
          Returns current row index in the current Range in the Rowsetiterator
 java.lang.String getCurrentRowKeyString()
          Returns String version of the row key for the current row in the associated iterator.
 java.lang.String getCurrentRowWithKeyValue()
          Returns String version of the row key for the current row in the associated iterator.
 DCDataControl getDataControl()
          Helper method to return the DCDataControl from this binding's BindingContainer.
 DCIteratorBindingDef getDef()
           
 long getDeferredEstimatedRowCount()
           
 java.lang.String getDisplayName()
          Returns the name of this IteratorBinding.
 JboException getError()
           
 long getEstimatedRowCount()
           
 oracle.adf.model.binding.DCIExecutableDef getExecutableDef()
          *** For internal framework use only ***
 int getExecutableType()
           
 java.lang.String getIteratorDefName()
           
 java.lang.String[] getIteratorSubstitutedDefNames()
           
 RowSetIterator getLovRowSetIterator()
           
protected  RowSetListener getMasterListener()
           
 NavigatableRowIterator getNavigatableRowIterator()
          Returns the current RowIterator, which can be a data RowSetIterator or a find mode ViewCriteria based on the find mode.
 PermissionInfo getPermissionInfo()
           
 java.lang.String getPermissionTargetName()
           
 int getRangeSize()
          Returns current rowsetiterator's range size
 int getRangeStart()
          Returns current rowsetiterator's range start
 DCIteratorBinding.RenderHintTypes getRenderHint()
          If RenderHint is inMainRequest, render data associated with this binding in the same request as main render, other wise, the bindings-data may be rendered lazily in a separate request thread.
 Row getRowAtRangeIndex(int rangeIndex)
          Returns the row of given range index.
 java.lang.String getRowKeyString(Row r)
           
 RowSetIterator getRowSetIterator()
          Returns the current data RowSetIterator that holds rows with which this iterator binding object and its associated control-bindings are working.
 SortCriteria[] getSortCriteria()
          Returns an ordered array of SortCriteria that will be applied when the source for this iteratorBinding is executed.
 java.lang.String getSourceName()
          Returns the name of the collection instance to which this iterator binding is bound to.
 java.lang.Object getStateVariableForBinding(DCControlBinding binding, java.lang.String varName)
           
 java.lang.Object getSyncLock()
           
 java.util.ArrayList getValueBindingList()
          Returns a list of DCCtrlValueBinding objects that are associated with this iterator binding.
 ViewCriteria getViewCriteria()
           
 java.lang.String getViewDefName()
           
 ViewObject getViewObject()
          Returns the ViewObject to which this iterator binding is associated with (via the binding definition).
 java.lang.String getVOName()
           
 boolean hasBindingsWithPushChangeEvents()
          Return true if this IteratorBinding or any of it's dependent iterator bindings has a value binding that may have DataChangeEventPolicy = PUSH.
 boolean hasKeyAttributes()
           
 boolean hasRefreshParametersChanged()
          *** For internal framework use only ***
 boolean hasRSI()
          returns true if a RowSetIterator has been bound to this iterator.
protected  DCDataControl initDataControl()
           
 void initializeForPushDataChangeEvents()
           
protected  RowSetIterator initSourceRSI()
           
protected  java.lang.Object internalGet(java.lang.String key)
           
protected  Row internalGetCurrentRowInBinding()
           
 void internalGetNextRangeSet()
           
 void internalGetPreviousRangeSet()
           
protected  NavigatableRowIterator internalGetRowIteratorNoCheck()
           
protected  RowSetIterator internalGetRowSetIterator()
           
protected  ViewObject internalGetViewObject()
           
 void internalReserveCurrentRow()
           
protected  void internalSetDataControl(DCDataControl dc)
           
 void invalidateCache()
           
 boolean isAccessorIterator()
          Is this bound to a collection returned from a bean accessor?
 boolean isAlive()
           
 boolean isAttributeSortable(AttributeDef ad)
          View layer bindings may consult this to find out if an attribute in this iteratorBinding is sortable or not.
 boolean isBound()
           
 boolean isBoundRowIteratorEvent(JboEvent ev)
           
protected  boolean isEventsCachingEnabled()
          Checks whether the event cache is enabled.
 boolean isFindMode()
          Returns true if this iterator binding is in find mode.
 boolean isFindModeAllowed()
           
 boolean isIteratorMadeVisible()
           
 boolean isOperationSupported(byte oper)
           
 boolean isRowSetEventsEnabled()
          Returns true if this IteratorBinding should notify the containing BindingContainer's RowSetListeners of RowSet events.
 boolean isSortable()
           
 boolean isSuspendRowSetEventsHandling()
          Returns true if this IteratorBinding is not reacting to any RowSetIterator events.
 void iteratorClosed(RowSetManagementEvent event)
          Invoked when the row set is closed.
 void iteratorReset(RowSetManagementEvent event)
          Invoked when the row set is reset.
protected  boolean matchRowKeyWithAttrException(AttrValException ave)
           
 void navigated(NavigationEvent event)
          Invoked when the current-row designation changes.
 boolean needsEstimatedRowCount()
           
protected abstract  void notifyUpdateEvent(UpdateEvent event)
          called when rowUpdated event is received from the model.
protected  Row prepareCurrentRow()
           
 void prepareForInput()
           
 void processInputException()
          Deprecated. use processInputException(JboException);
 void processInputException(JboException errExc)
           
 void rangeRefreshed(RangeRefreshEvent event)
          Invoked when the range changes.
 void rangeScrolled(ScrollEvent event)
          Invoked when the range is scrolled.
 void refresh(int id)
           
protected  void refreshControl()
           
 void release()
           
 void release(int flags)
          *** For internal framework use only ***
 void releaseData()
           
protected  void releaseDataInternal()
           
 boolean removeActionBinding(DCControlBinding bnd)
          Removes the given action control binding object from its list.
 void removeCurrentRow()
           
protected  void removeDataChangeListener(JUCtrlValueBinding binding)
           
protected  void removeDependentListeners()
           
 void removeRowWithKey(java.lang.String stringKey)
          Find a row with the given key in the current row iterator and if one found, remove it.
 void removeStateVariableForBinding(DCControlBinding binding, java.lang.String varName)
           
 boolean removeValueBinding(DCControlBinding bnd)
          Removes the given control binding object from its list.
 void reportException(boolean markDead, java.lang.Exception ex)
          Utility method to report exceptions via the containing binding container.
protected  void reserveRowWithKey(Key key)
          Internal: Applications should not use this method.
 void resolveRangeSize(int rangeSize)
          Sets this iterator binding and it's associated RowIterator's range size to the greater of this either the iterator's range size and the given range size.
 void rowDeleted(DeleteEvent event)
          Invoked when a row has been deleted.
 void rowInserted(InsertEvent event)
          Invoked when a row has been inserted.
 void rowUpdated(UpdateEvent event)
          Invoked when an attribute of the row has been changed.
protected  void setAlive(boolean flag)
           
 void setAllowFindMode(boolean flag)
           
 void setBindingContainer(DCBindingContainer formBnd)
           
 void setCurrentRowIndexInRange(int val)
           
 void setCurrentRowWithKey(java.lang.String stringKey)
          Find the row in the associated row iterator based on the Key object and if found set that as the current row.
 void setCurrentRowWithKeyValue(java.lang.String stringKeyValue)
          Find the row in the associated row iterator based on the value for a key attribute and if found set that as the current row.
protected  void setDataControl(DCDataControl dataControl)
           
protected  void setDef(DCIteratorBindingDef def)
           
protected  void setEventsCaching(boolean flag)
          Disables or enables event caching.
 void setFindMode(boolean mode)
          Calls setFindMode(boolean mode, boolean applyCriteria) with applyCriteria = true;
 void setFindMode(boolean mode, boolean applyVC)
          Sets this iterator to findMode or not.
protected  void setIteratorMadeVisible(boolean flag)
           
 void setRangeSize(int val)
          Set current rowsetiterator's range size
 void setRangeStart(int val)
          Set current rowsetiterator's range start
 void setRefreshed(boolean flag)
          *** For internal framework use only ***
 void setRowSetEventsEnabled(boolean flag)
          Set this flag if this IteratorBinding should pass on the rowset events to containing BindingContainer's RowSetListeners.
protected  void setSelectionAttribute(int rowIndex, AttributeDef ad, java.lang.Object value)
           
 void suspendRowSetEventsHandling(boolean flag)
          Set this flag to turn off reacting to RowSetIterator events.
protected abstract  void updateValuesFromRow(Row row)
          Calls updateValueFromRow() on each instance of DCCtrlValueBinding objects associated with this iterator binding object.
protected abstract  void updateValuesFromRows(Row[] rows, Row row, boolean clear)
          Calls updateValuesFromRows() on each instance of DCCtrlRangeBinding object associated with this iterator binding object.
 
Methods inherited from class oracle.adf.model.binding.DCExecutableBinding
addDependentExecutable, get, getBindingContainer, getDependents, getName, getRefreshExpression, getRefreshOption, isRefreshable, isRefreshed, refreshIfNeeded, removeDependentExecutable, resetDependentsRefresh, setExecutableDef, setName, setRefreshExpression, setRefreshOption
 
Methods inherited from class oracle.jbo.common.JboAbstractMap
entrySet, equals, hashCode, 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.binding.DataChangeListener
handleDataException
 

Field Detail

mRangeSize

protected int mRangeSize

mAM

protected ApplicationModule mAM
Internal: Applications should not use this member.


mDC

protected DCDataControl mDC
Internal: Applications should not use this member.


mDoNavigation

protected boolean mDoNavigation
Internal: Applications should not use this member.


mCreatedRowRef

protected Row mCreatedRowRef
Internal: Applications should not use this member.


RANGESIZE_DO_NOT_OVERRIDE

public static final int RANGESIZE_DO_NOT_OVERRIDE
See Also:
Constant Field Values

RANGESIZE_UNLIMITED

public static final int RANGESIZE_UNLIMITED
See Also:
Constant Field Values
Constructor Detail

DCIteratorBinding

protected DCIteratorBinding()

DCIteratorBinding

protected DCIteratorBinding(DCIteratorBinding iterBinding)

DCIteratorBinding

protected DCIteratorBinding(BindingContext ctx,
                            java.lang.String dcName,
                            java.lang.String sourceName,
                            java.lang.String rsiName,
                            int rangeSize)
Use this constructor if a usage needs a specific range size on the associated iterator. Objects of type DCCtrlRangeBinding may use this constructor to specify a default range size for the iterator.


DCIteratorBinding

protected DCIteratorBinding(ApplicationModule am,
                            java.lang.String voName,
                            java.lang.String rsiName,
                            int rangeSize)
Use this constructor if a usage needs a specific range size on the associated iterator. Objects of type DCCtrlRangeBinding may use this constructor to specify a default range size for the iterator.


DCIteratorBinding

protected DCIteratorBinding(ApplicationModule am,
                            java.lang.String voName,
                            java.lang.String rsiName)
When the usage only needs one row at a time, use this constructor to create an iterator binding.


DCIteratorBinding

protected DCIteratorBinding(DCDataControl dc,
                            RowSetIterator rsi)
When an application has a RowSet it should use this constructor.

Method Detail

setDef

protected void setDef(DCIteratorBindingDef def)
For internal use only. Application developers should not use this
Internal: Applications should not use this method. After creation sets the def used to create this iterator binding.

getDef

public DCIteratorBindingDef getDef()
For internal use only. Application developers should not use this
Internal: Applications should not use this method.

prepareForInput

public void prepareForInput()
For internal use only. Application developers should not use this
Internal: Applications should not use this method. Called on this binding before a binding returns from processInputValue This gives the iterator binding a chance to mark new row state to STATUS_NEW from initialized and hence submit the new row even if there are no changes on the row.

isAccessorIterator

public boolean isAccessorIterator()
Is this bound to a collection returned from a bean accessor?


getDisplayName

public final java.lang.String getDisplayName()
Returns the name of this IteratorBinding.


getVOName

public java.lang.String getVOName()
For internal use only. Application developers should not use this
Internal: Applications should not use this method. Returns the name of the ViewObject instance of the iterator to which this iterator binding is associated.

getSourceName

public java.lang.String getSourceName()
Returns the name of the collection instance to which this iterator binding is bound to.


getViewDefName

public final java.lang.String getViewDefName()
For internal use only. Application developers should not use this
Internal: Applications should not use this method. Returns the name of the ViewDefinition object.

reportException

public void reportException(boolean markDead,
                            java.lang.Exception ex)
Utility method to report exceptions via the containing binding container. If the exception is not JboException, this method creates a JboException that contains the input exception object and passes only JboException to the bindingcontainer. If BindingContainer is null then this method rethrows the JboException.

Parameters:
markDead - if this iterator binding should be marked as not alive for any further usage.
ex - Exception object to be reported via the BindingContainer.

bindRowSetIterator

public void bindRowSetIterator(NavigatableRowIterator iter,
                               boolean initRangeSize)
Use this method to bind a new instance of RowIterator from a Business Service to this binding. This method should be used to display data from a different RowIterator of the same Collection type in a given form. For example, if a tree is used to navigate Departments and their employees, upon selecting an employee node, an application can pass the Employee node's RowIterator over to this iterator binding, to update the display in another panel of Employee data with the currently selected Employee.

This method will not directly update the control-bindings for non-ADFJClient apps. The caller can optionally call navigated(null) method, with null for the Event parameter to notify each control bound to this iterator binding to update it's displayed value with the new iterator's current row.

Parameters:
iter - RowIterator instance from which to display data in bound controls.
initRangeSize - determines whether this iterator's range size should be adjusted to this binding's range size. This should be used to extend the range size from the default in the RowIterator to whatever is required by this iterator binding. For example, if a RowIterator whose range size is 1 is passed to this method and a grid control is bound to this iterator binding, then the grid may need more than one row to display from the current range. So, this flag should be true in that case to allow the grid to get the full range of rows to display, rather than updating its display one row at a time.

internalGetRowIteratorNoCheck

protected NavigatableRowIterator internalGetRowIteratorNoCheck()

isBoundRowIteratorEvent

public final boolean isBoundRowIteratorEvent(JboEvent ev)

isIteratorMadeVisible

public final boolean isIteratorMadeVisible()
For internal use only. Application developers should not use this
, *** For internal framework use only ***

setIteratorMadeVisible

protected void setIteratorMadeVisible(boolean flag)
For internal use only. Application developers should not use this
, *** For internal framework use only ***

isRowSetEventsEnabled

public final boolean isRowSetEventsEnabled()
Returns true if this IteratorBinding should notify the containing BindingContainer's RowSetListeners of RowSet events.


setRowSetEventsEnabled

public final void setRowSetEventsEnabled(boolean flag)
Set this flag if this IteratorBinding should pass on the rowset events to containing BindingContainer's RowSetListeners. Applications should turn off this flag for IteratorBindings used for readonly purposes like LOVs, etc which do not need any UI overrides like enabling/disabling a control etc.


suspendRowSetEventsHandling

public void suspendRowSetEventsHandling(boolean flag)
Set this flag to turn off reacting to RowSetIterator events. BindingContainer uses this during refreshControl() during batch datacontrol operations. Also when this iterator is released the events-handling may be turned off by using this suspend.


isSuspendRowSetEventsHandling

public boolean isSuspendRowSetEventsHandling()
Returns true if this IteratorBinding is not reacting to any RowSetIterator events.


allowsRefreshControl

public boolean allowsRefreshControl()
For internal use only. Application developers should not use this
, *** For internal framework use only ***

prepareCurrentRow

protected Row prepareCurrentRow()
For internal use only. Application developers should not use this
*** For internal framework use only *** If this binding's RSI has a current row, make that ready for refreshControl to pass it on to various bindings to display data. Override allows accessor Iterators to verify their currency wrt. the current master before proceeding with use of this row.

refreshControl

protected void refreshControl()
For internal use only. Application developers should not use this
*** For internal framework use only *** only opened up for internal iteratorBindings to perform custom refresh instead of RSI refresh. See JUVariableIteratorBinding.

rangeRefreshed

public void rangeRefreshed(RangeRefreshEvent event)
Description copied from interface: RowSetListener
Invoked when the range changes.

Specified by:
rangeRefreshed in interface RowSetListener
Parameters:
event - a description of the new ranges.
For internal use only. Application developers should not use this
*** For internal framework use only *** Handles the rangeRefereshed event generated by the current RowIterator. If the range size of this binding is 1, then calls updateValuesFromRow() with the current row as the argument to notify all control bindings associated with this iterator binding of the change in current row. If the range size is not 1, then this method calls updateValuesFromRows() passing in the current range of rows to all DCCtrlRangeBinding control bindings.

rangeScrolled

public void rangeScrolled(ScrollEvent event)
Description copied from interface: RowSetListener
Invoked when the range is scrolled.

Specified by:
rangeScrolled in interface RowSetListener
Parameters:
event - a description of the new range.
For internal use only. Application developers should not use this
*** For internal framework use only *** This method invokes updateRangeScrolled method on all instances of DCCtrlRangeBinding objects associated with this iterator binding, to notify them of the change in current range of rows.

rowInserted

public void rowInserted(InsertEvent event)
Description copied from interface: RowSetListener
Invoked when a row has been inserted.

Specified by:
rowInserted in interface RowSetListener
Parameters:
event - a description of the new Row object.
For internal use only. Application developers should not use this
*** For internal framework use only *** If range size of this iterator binding is not 1, this method invokes updateRowInserted method on all instances of DCCtrlValueBinding objects associated with this iterator binding, to notify them of the newly inserted row.

internalGetNextRangeSet

public void internalGetNextRangeSet()
For internal use only. Application developers should not use this
*** For internal framework use only ***

internalGetPreviousRangeSet

public void internalGetPreviousRangeSet()
For internal use only. Application developers should not use this
*** For internal framework use only ***

rowDeleted

public void rowDeleted(DeleteEvent event)
Description copied from interface: RowSetListener
Invoked when a row has been deleted.

Specified by:
rowDeleted in interface RowSetListener
Parameters:
event - a description of the deleted Row object.
For internal use only. Application developers should not use this
*** For internal framework use only *** If range size of this iterator binding is not 1, this method invokes updateRowDeleted method on all instances of DCCtrlValueBinding objects associated with this iterator binding, to notify them of the newly inserted row.

This method also sets the currency on the RowIterator to the next row (if available) or previous row (if available) or simply a NO row by calling navigated() with no current row.


rowUpdated

public void rowUpdated(UpdateEvent event)
Description copied from interface: RowSetListener
Invoked when an attribute of the row has been changed.

Specified by:
rowUpdated in interface RowSetListener
Parameters:
event - a description of the modified Row object.
For internal use only. Application developers should not use this
*** For internal framework use only *** Invokes updateValuesFromRow() to notify all control bindings of a change in an attribute in the row.

navigated

public void navigated(NavigationEvent event)
Description copied from interface: RowSetListener
Invoked when the current-row designation changes.

Specified by:
navigated in interface RowNavigationListener
Specified by:
navigated in interface RowSetListener
Parameters:
event - a description of the new and previous current rows.
For internal use only. Application developers should not use this
*** For internal framework use only *** Calls updateNavigated() for all DCCtrlRangeBinding instances associated with this iterator binding object, or calls updateValuesFromRow() on all other control binding instances, passing in the current row instance from the RowIterator.

notifyUpdateEvent

protected abstract void notifyUpdateEvent(UpdateEvent event)
called when rowUpdated event is received from the model.


updateValuesFromRows

protected abstract void updateValuesFromRows(Row[] rows,
                                             Row row,
                                             boolean clear)
Calls updateValuesFromRows() on each instance of DCCtrlRangeBinding object associated with this iterator binding object. These objects are then responsible for updating their display with the latest set of rows.


updateValuesFromRow

protected abstract void updateValuesFromRow(Row row)
Calls updateValueFromRow() on each instance of DCCtrlValueBinding objects associated with this iterator binding object. These control binding objects are responsible for updating their display with values from the given Row.


getSyncLock

public final java.lang.Object getSyncLock()
For internal use only. Application developers should not use this
*** For internal framework use only ***

iteratorReset

public void iteratorReset(RowSetManagementEvent event)
Description copied from interface: RowSetManagementListener
Invoked when the row set is reset.

Specified by:
iteratorReset in interface RowSetManagementListener
Parameters:
event - a description of the event.
For internal use only. Application developers should not use this
*** For internal framework use only *** Notifies rangeRefreshed to all bindings so that they can update their display.

iteratorClosed

public void iteratorClosed(RowSetManagementEvent event)
Description copied from interface: RowSetManagementListener
Invoked when the row set is closed.

Specified by:
iteratorClosed in interface RowSetManagementListener
Parameters:
event - a description of the event.
For internal use only. Application developers should not use this
*** For internal framework use only *** Resets the internal state of this binding object and marks it as unusable.

getViewCriteria

public ViewCriteria getViewCriteria()

getViewObject

public ViewObject getViewObject()
Returns the ViewObject to which this iterator binding is associated with (via the binding definition). If the rowSetIterator that this binding is associated with is changed at runtime then the rowsetIterator should be used to get the current ViewObject for a running instance of IteratorBinding. In general applications should use hasRSI() to find out if this IteratorBinding has an instance of associated RowSetIterator and if so, use rsi.getRowSet().getViewObject() to get the current ViewObject instance. Use this method only if hasRSI() returns false.

Returns null for non-bc4j collection bound IteratorBindings.


resolveRangeSize

public void resolveRangeSize(int rangeSize)
Sets this iterator binding and it's associated RowIterator's range size to the greater of this either the iterator's range size and the given range size. If either is -1, then that takes precedence, so that range size = all rows.


hasRSI

public boolean hasRSI()
returns true if a RowSetIterator has been bound to this iterator.


getRowSetIterator

public RowSetIterator getRowSetIterator()
Returns the current data RowSetIterator that holds rows with which this iterator binding object and its associated control-bindings are working.


internalGetRowSetIterator

protected RowSetIterator internalGetRowSetIterator()

callInitSourceRSI

protected RowSetIterator callInitSourceRSI()
For internal use only. Application developers should not use this
*** For internal framework use only *** Advanced internal method.

initSourceRSI

protected RowSetIterator initSourceRSI()

internalGetViewObject

protected ViewObject internalGetViewObject()

getNavigatableRowIterator

public NavigatableRowIterator getNavigatableRowIterator()
Returns the current RowIterator, which can be a data RowSetIterator or a find mode ViewCriteria based on the find mode.


removeDependentListeners

protected void removeDependentListeners()

addDependentListeners

protected void addDependentListeners()

getMasterListener

protected RowSetListener getMasterListener()

setAllowFindMode

public final void setAllowFindMode(boolean flag)
For internal use only. Application developers should not use this
*** For internal framework use only *** Advanced Internal This method is for list bindings to mark the source binding to not go into find mode.

isFindModeAllowed

public final boolean isFindModeAllowed()

setFindMode

public final void setFindMode(boolean mode)
Calls setFindMode(boolean mode, boolean applyCriteria) with applyCriteria = true;


setFindMode

public final void setFindMode(boolean mode,
                              boolean applyVC)
Sets this iterator to findMode or not. If mode = false, then it applies the current ViewCriteria to this binding's ViewObject to execute the criteria if applyVC = true;


isFindMode

public final boolean isFindMode()
Returns true if this iterator binding is in find mode.

javabean.property

needsEstimatedRowCount

public final boolean needsEstimatedRowCount()

executeQuery

public void executeQuery()
Executes the query or the RowSet behind this iterator binding object.


executeQueryIfNeeded

public void executeQueryIfNeeded()
Executes the query or the RowSet behind this iterator binding object if not already executed.


doExecuteQuery

protected void doExecuteQuery()
Calls datacontrol.executeIteratorBinding.


getCurrentRow

public Row getCurrentRow()
Returns the current row of the iterator with which this binding object is associated. In find mode, this returns an instance of ViewCriteriaRow.

javabean.property

internalGetCurrentRowInBinding

protected Row internalGetCurrentRowInBinding()
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method.

getRowAtRangeIndex

public Row getRowAtRangeIndex(int rangeIndex)
Returns the row of given range index.

Parameters:
rangeIndex - The range index of the row.

getAllRowsInRange

public Row[] getAllRowsInRange()
Returns an array of rows in the current range of the current RowIterator.

javabean.property

setBindingContainer

public void setBindingContainer(DCBindingContainer formBnd)
Specified by:
setBindingContainer in interface DCIExecutable
Overrides:
setBindingContainer in class DCExecutableBinding
For internal use only. Application developers should not use this
*** For internal framework use only ***

setDataControl

protected void setDataControl(DCDataControl dataControl)
Parameters:
dataControl -
For internal use only. Application developers should not use this
*** For internal framework use only ***

getDataControl

public final DCDataControl getDataControl()
Helper method to return the DCDataControl from this binding's BindingContainer.

javabean.property

initDataControl

protected DCDataControl initDataControl()
For internal use only. Application developers should not use this
*** For internal framework use only ***

internalSetDataControl

protected void internalSetDataControl(DCDataControl dc)
For internal use only. Application developers should not use this
*** For internal framework use only ***

fetchAttributeProperties

protected void fetchAttributeProperties()

getValueBindingList

public java.util.ArrayList getValueBindingList()
Returns a list of DCCtrlValueBinding objects that are associated with this iterator binding. Returns null if no control binding is registered with this object.


addValueBinding

public void addValueBinding(DCControlBinding bnd)
Adds the given control binding object to its list.


removeValueBinding

public boolean removeValueBinding(DCControlBinding bnd)
Removes the given control binding object from its list. Returns true if remove was successful.


getActionBindingList

public java.util.ArrayList getActionBindingList()
Returns a list of DCCtrlActionBinding objects that are associated with this iterator binding. Returns null if no action control binding is registered with this object.


addActionBinding

public void addActionBinding(DCControlBinding bnd)
Adds the given action control binding object to its list.


removeCurrentRow

public void removeCurrentRow()

removeActionBinding

public boolean removeActionBinding(DCControlBinding bnd)
Removes the given action control binding object from its list. Returns true if remove was successful.


getLovRowSetIterator

public RowSetIterator getLovRowSetIterator()
For internal use only. Application developers should not use this
*** For internal framework use only ***

release

public void release()

releaseData

public void releaseData()

releaseDataInternal

protected void releaseDataInternal()
For internal use only. Application developers should not use this
*** For internal framework use only ***

invalidateCache

public void invalidateCache()
For internal use only. Application developers should not use this
*** For internal framework use only ***

release

public void release(int flags)
Description copied from class: DCExecutableBinding
*** For internal framework use only ***

Specified by:
release in interface DCIExecutable
Overrides:
release in class DCExecutableBinding

processInputException

public void processInputException()
Deprecated. use processInputException(JboException);


processInputException

public void processInputException(JboException errExc)
For internal use only. Application developers should not use this
*** For internal framework use only *** Applications should not use this method.

getError

public JboException getError()
For internal use only. Application developers should not use this
*** For internal framework use only *** Applications should not use this method.

getAttributeDefs

public AttributeDef[] getAttributeDefs()
get all attribute defs for the RSI that this iterator binding is bound to.

javabean.property

getIteratorDefName

public java.lang.String getIteratorDefName()

hasKeyAttributes

public boolean hasKeyAttributes()

getIteratorSubstitutedDefNames

public java.lang.String[] getIteratorSubstitutedDefNames()

getAttributeDefs

public AttributeDef[] getAttributeDefs(java.lang.String[] attrNames)
return attribute defs for attributes that are named in the given array. If this array is null, return only those attribute defs that are not marked with control hint of hide. To get all attributes, use DCIteratorBinding.getAttributeDefs()


getRangeSize

public int getRangeSize()
Returns current rowsetiterator's range size

javabean.property

getChangeEventRate

public int getChangeEventRate()
Returns:
ChangeEventRate setting on this iteratorBinding's definition. If no value is set then this method returns -1.

setRangeSize

public void setRangeSize(int val)
Set current rowsetiterator's range size


getRangeStart

public int getRangeStart()
Returns current rowsetiterator's range start

javabean.property

setRangeStart

public void setRangeStart(int val)
Set current rowsetiterator's range start


getCurrentRowIndexInRange

public int getCurrentRowIndexInRange()
Returns current row index in the current Range in the Rowsetiterator


setCurrentRowIndexInRange

public void setCurrentRowIndexInRange(int val)
javabean.method
Returns current row at the given range Index in the Rowsetiterator

setCurrentRowWithKeyValue

public void setCurrentRowWithKeyValue(java.lang.String stringKeyValue)
Find the row in the associated row iterator based on the value for a key attribute and if found set that as the current row. This method only works for cases where there's one key attribute on the collection.

Parameters:
stringKeyValue - String form of the Key object created using Key.toStringFormat(true/false)

getCurrentRowWithKeyValue

public java.lang.String getCurrentRowWithKeyValue()
Returns String version of the row key for the current row in the associated iterator. This key string can be used in setCurrentRowWithKey(). This method will return null if there is no current row in the associated iterator.


getRowKeyString

public java.lang.String getRowKeyString(Row r)
For internal use only. Application developers should not use this
*** For internal framework use only *** Returns String version of the row key for the given row in the associated iterator. This key string can be used in setCurrentRowWithKey(). This method will return null if there is no current row in the associated iterator.

findRowByKeyString

public Row findRowByKeyString(java.lang.String s)
For internal use only. Application developers should not use this
*** For internal framework use only *** Given a Stringified row key from getRowKeyString(), this method finds a row in the current rowset iterator and returns that if found

getCurrentRowKeyString

public java.lang.String getCurrentRowKeyString()
Returns String version of the row key for the current row in the associated iterator. This key string can be used in setCurrentRowWithKey(). This method will return null if there is no current row in the associated iterator.


createKey

public Key createKey(java.lang.String stringKey)
Given the key string, convert it to a Key using the associated RowSetIterator's StructureDef.


setCurrentRowWithKey

public void setCurrentRowWithKey(java.lang.String stringKey)
Find the row in the associated row iterator based on the Key object and if found set that as the current row.

Parameters:
stringKey - String form of the Key object created using Key.toStringFormat(true/false)
javabean.method
javabean.param
name = "stringKey"

removeRowWithKey

public void removeRowWithKey(java.lang.String stringKey)
Find a row with the given key in the current row iterator and if one found, remove it. If more than one row is found, throw a TooMayObjectsException. Otherwise this method is a no-op.

javabean.method
name = "removeRowWithKey"
javabean.param
name = "stringKey"

setAlive

protected void setAlive(boolean flag)
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method.

isAlive

public boolean isAlive()
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method.

isBound

public final boolean isBound()
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method.

getEstimatedRowCount

public long getEstimatedRowCount()
javabean.property

getDeferredEstimatedRowCount

public long getDeferredEstimatedRowCount()
javabean.property

applySortCriteria

public void applySortCriteria(SortCriteria[] sortby)
Sets the sort critiera that will be applied next time when the source for this iteratorBinding is executed.


getSortCriteria

public SortCriteria[] getSortCriteria()
Returns an ordered array of SortCriteria that will be applied when the source for this iteratorBinding is executed.


isSortable

public boolean isSortable()
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method.

isAttributeSortable

public boolean isAttributeSortable(AttributeDef ad)
View layer bindings may consult this to find out if an attribute in this iteratorBinding is sortable or not.


isOperationSupported

public boolean isOperationSupported(byte oper)

getApplicationModule

protected ApplicationModule getApplicationModule()

internalReserveCurrentRow

public void internalReserveCurrentRow()
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method.

reserveRowWithKey

protected void reserveRowWithKey(Key key)
Internal: Applications should not use this method.

For internal use only. Application developers should not use this

matchRowKeyWithAttrException

protected boolean matchRowKeyWithAttrException(AttrValException ave)

cacheCreatedRow

protected void cacheCreatedRow(RowSetIterator rsi,
                               Row row)

getExecutableType

public int getExecutableType()
Specified by:
getExecutableType in interface DCIExecutable
Specified by:
getExecutableType in class DCExecutableBinding
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method.

refresh

public void refresh(int id)
Specified by:
refresh in interface DCIExecutable
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method.

hasRefreshParametersChanged

public boolean hasRefreshParametersChanged()
Description copied from class: DCExecutableBinding
*** For internal framework use only ***

Specified by:
hasRefreshParametersChanged in interface DCIExecutable
Specified by:
hasRefreshParametersChanged in class DCExecutableBinding

getExecutableDef

public oracle.adf.model.binding.DCIExecutableDef getExecutableDef()
Description copied from class: DCExecutableBinding
*** For internal framework use only ***

Specified by:
getExecutableDef in interface DCIExecutable
Overrides:
getExecutableDef in class DCExecutableBinding

internalGet

protected java.lang.Object internalGet(java.lang.String key)
Overrides:
internalGet in class DCExecutableBinding

getPermissionTargetName

public java.lang.String getPermissionTargetName()
Overrides:
getPermissionTargetName in class DCExecutableBinding

getPermissionInfo

public PermissionInfo getPermissionInfo()
Overrides:
getPermissionInfo in class DCExecutableBinding

disableTokenValidation

protected void disableTokenValidation()
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method.

setRefreshed

public void setRefreshed(boolean flag)
Description copied from class: DCExecutableBinding
*** For internal framework use only ***

Specified by:
setRefreshed in interface DCIExecutable
Overrides:
setRefreshed in class DCExecutableBinding

getStateVariableForBinding

public java.lang.Object getStateVariableForBinding(DCControlBinding binding,
                                                   java.lang.String varName)
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method. Return the value of the variable if stored with the source as a variable.

removeStateVariableForBinding

public void removeStateVariableForBinding(DCControlBinding binding,
                                          java.lang.String varName)
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method. Store the given value of the variable with the source as a variable with the given name for the given control binding.

addStateVariableForBinding

public void addStateVariableForBinding(DCControlBinding binding,
                                       java.lang.String varName,
                                       java.lang.Object value)
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method. Store the given value of the variable with the source as a variable with the given name for the given control binding.

findRowsByAttributeValues

public RowIterator findRowsByAttributeValues(java.lang.String[] attrNames,
                                             java.lang.Object[] values)
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method. Given a set of attribute names and their values, create a criteria over the source collection and filter it by the given values. Returns a rowIterator that can be bound to an IteratorBinding.

findRowsByKeyValues

public RowIterator findRowsByKeyValues(Key[] keys)

findRowsByAttributeValue

public RowIterator findRowsByAttributeValue(java.lang.String attrName,
                                            boolean equals,
                                            java.lang.Object value)
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method. Given an attribute name, a value and whether to match the value or find all mismatches, create a criteria over the source collection and filter it by the given values. Returns a rowIterator that can be bound to an IteratorBinding.

setSelectionAttribute

protected void setSelectionAttribute(int rowIndex,
                                     AttributeDef ad,
                                     java.lang.Object value)
For internal use only. Application developers should not use this
*** For internal framework use only *** Internal: Applications should not use this method.

findOrCreateSelectionAttributeDef

protected AttributeDef findOrCreateSelectionAttributeDef(DCControlBinding binding,
                                                         java.lang.String baseName,
                                                         java.lang.String type)
Parameters:
binding -
For internal use only. Application developers should not use this
*** For internal framework use only *** Internl: Applications should not use this method.

setEventsCaching

protected void setEventsCaching(boolean flag)
Disables or enables event caching. The existing cache will be clear if disabling event caching.

Parameters:
flag - true to enable event caching, false to disable.
For internal use only. Application developers should not use this

isEventsCachingEnabled

protected boolean isEventsCachingEnabled()
Checks whether the event cache is enabled.

Returns:
true if the event cache is enabled. false otherwise.
For internal use only. Application developers should not use this

cacheRangeEvent

protected void cacheRangeEvent(RangeEvent event)
Cache a RangeEvent

Parameters:
event - The RangeEvent to be cached.
For internal use only. Application developers should not use this

cacheUpdateEvent

protected void cacheUpdateEvent(UpdateEvent event)
Cache an UpdateEvent

Parameters:
event - The UpdateEvent to be cached.
For internal use only. Application developers should not use this

cacheNavigationEvent

protected void cacheNavigationEvent(NavigationEvent event)
Caches a NavigationEvent.

Parameters:
event - The NavigationEvent to be cached.
For internal use only. Application developers should not use this

cacheInsertEvent

protected void cacheInsertEvent(InsertEvent event)
Cache an InsertEvent

Parameters:
event - The InsertEvent to be cached.
For internal use only. Application developers should not use this

cacheDeleteEvent

protected void cacheDeleteEvent(DeleteEvent event)
Cache a DeleteEvent

Parameters:
event - The DeleteEvent to be cached.
For internal use only. Application developers should not use this

clearEventsCache

public void clearEventsCache()
Internal: Applications should not use this method.

For internal use only. Application developers should not use this

getCachedEvents

protected java.util.List getCachedEvents(DCControlBinding binding)
Internal: Applications should not use this method.

For internal use only. Application developers should not use this

clearForRecreate

public void clearForRecreate()
For internal use only. Application developers should not use this
*** For internal framework use only *** Advanced internal method.

dataChanged

public abstract void dataChanged(DataChangeEvent event)
Description copied from interface: DataChangeListener
raised when datachanges are detected in the datacontrol implementation and is to be notified via the bindings to the UI layers.

Specified by:
dataChanged in interface DataChangeListener

addDataChangeListener

protected void addDataChangeListener(JUCtrlValueBinding binding)
For internal use only. Application developers should not use this
*** For internal framework use only *** Advanced internal method.

removeDataChangeListener

protected void removeDataChangeListener(JUCtrlValueBinding binding)
For internal use only. Application developers should not use this
*** For internal framework use only *** Advanced internal method.

getRenderHint

public final DCIteratorBinding.RenderHintTypes getRenderHint()
If RenderHint is inMainRequest, render data associated with this binding in the same request as main render, other wise, the bindings-data may be rendered lazily in a separate request thread.


initializeForPushDataChangeEvents

public void initializeForPushDataChangeEvents()
For internal use only. Application developers should not use this
*** For internal framework use only *** Advanced internal method.

hasBindingsWithPushChangeEvents

public boolean hasBindingsWithPushChangeEvents()
Return true if this IteratorBinding or any of it's dependent iterator bindings has a value binding that may have DataChangeEventPolicy = PUSH. This flag may be used by a datacontrol implementation to prepare it's queries and/or event implementation.


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

E10653-01

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