Skip navigation links

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

E10653-03


oracle.adf.model.bc4j
Class DCJboDataControl

java.lang.Object
  extended by java.util.AbstractMap
      extended by oracle.jbo.common.JboAbstractMap
          extended by oracle.adf.model.binding.DCDataControl
              extended by oracle.adf.model.bc4j.DCJboDataControl

All Implemented Interfaces:
java.util.EventListener, java.util.Map, DataControl, ManagedDataControl, TransactionStateListener
Direct Known Subclasses:
DCBeanDataControl, JUApplication

public class DCJboDataControl
extends DCDataControl
implements TransactionStateListener

The application class that manages connection to a BC4J Application Module. The DCDataControl class provides:

See Also:
ApplicationModule, Transaction, DCTransactionStateListener, DCErrorHandler

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 oracle.adf.model.DataControl
DataControl.DataChangeEventPolicy

 

Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>

 

Field Summary
static int EXC_MODE_DEFAULT
           
static int EXC_MODE_DEFERRED
           
static int EXC_MODE_IMMEDIATE
           
static java.lang.String INTERNALDC
           
static int VAL_MODE_ALWAYS
           
static int VAL_MODE_NEVER
           
static int VAL_MODE_REMOTE
           
static int VAL_MODE_UNINIT
           

 

Fields inherited from class oracle.adf.model.binding.DCDataControl
ABSTRACT, GET_ApplicationModule, GET_dataProvider, GET_DataProvider, GET_MethodResults, GET_Name, JCLIENT, mBindingContainerList, mDataControlFrameName, mDataProvider, mErrorHandler, mErrorHandlerActive, mErrorHandlerThrow, METHOD_RESULT, mIsReleased, mIsReleasing, mIsRoot, mLocaleCtx, mLock, mName, mParent, mRootApplication, mStatusBarList, mTxnListeners, mUserData, OPER_CTRL_BINDING_VALIDATION, OPER_DATA_ROW_CREATE, OPER_DATA_ROW_CREATE_ONLY, OPER_DATA_ROW_REMOVE, OPER_DATA_ROW_UPDATE, OPER_EXECUTE, OPER_FIND_MODE, OPER_SORT_COLLECTION, PNAME_Type, REL_ALL_REFS, REL_DATA_REFS, REL_VIEW_REFS, REL_WEAK_DATA_REFS, VCCRITERIA, VCCRITERIAITEM, VCCRITERIAITEMVALUE, VCCRITERIAOPERATOR

 

Fields inherited from class oracle.jbo.common.JboAbstractMap
MAP_NULL_VALUE

 

Fields inherited from interface oracle.adf.model.DataControl
DATACHANGE_EVENT_POLLINGMODE

 

Constructor Summary
protected DCJboDataControl()
          *** For internal framework use only ***
  DCJboDataControl(ApplicationModule am)
          Constructor used internally by the framework to associate an application module with a JClient application object.
  DCJboDataControl(DCDataControl parent, ApplicationModule am, java.lang.Object userData)
          Constructor to be used to create a nested DCDataControl inside another DCDataControl object.
  DCJboDataControl(java.util.Hashtable context, java.lang.String rootAMDefName, java.lang.Object userData)
          Constructs a root DCDataControl object that connects to a BC4J Application Module of the given name.
  DCJboDataControl(SessionCookie sessionCookie)
           

 

Method Summary
 void addDataChangeListener(java.lang.Object dataObj, DataChangeListener dcl)
          Subclasses may choose to implement datachangemanager
protected  void applySortCriteria(DCIteratorBinding iter, SortCriteria[] sortBy)
          Sets the sort critiera that will be applied next time when the source for this iteratorBinding is executed.
 void applyViewCriteria(ViewCriteria vc, DCIteratorBinding iter, RowSetIterator rsi)
          Internal: Applications should not use this method.
 void beginRequest(java.util.HashMap requestCtx)
          Invoked in some contexts to signal the beginning of a model request.
protected  void clearIteratorBinding(DCIteratorBinding iter)
           
 void commitTransaction()
          Invokes the BC4J transaction's commit() method to save all changes to the database.
protected  void connect()
          *** For internal framework use only *** If this application is root, this method invokes the corresponding BC4J Transaction's connect() method to create a database connection.
 RowSetIterator createAccessorRowSetIterator(RowSetIterator masterRSI, DCIteratorBinding iter, java.lang.String accName, java.lang.String beanClass)
          creates a accessor RSI using the current or the first row of the masterRSI and calling the get<accName> method on it to get the RSI dataprovider.
protected  RowSetIterator createAccessorRowSetIterator(RowSetIterator masterRSI, Row row, DCIteratorBinding iter, java.lang.String accName, java.lang.String beanClass, boolean trackMaster)
           
protected  RowSetIterator createAccessorRowSetIteratorForMasterRow(DCIteratorBinding iter, RowSetIterator masterRSI, Row row, java.lang.Object result, java.lang.String accName, java.lang.String beanClass, boolean trackMaster)
           
 void createRootApplicationModule()
          *** Advanced method *** *** For internal framework use only ***
 java.lang.Object createRowData(DCRowContext ctx)
          Create a new row for the iterator associated with the given iterator-binding at the given index and return the new row.
protected  RowSetIterator createRowSetIteratorImpl(java.lang.String defName, java.lang.Object sourceObj, RowSetIterator master)
          Create a DCRowSetIteratorImpl or a subclass thereof for the give defName element types, using the given source collection/object and optionally the master RSI if there is a dependency defined on the master.
 java.lang.Object createSavepoint()
           
protected  SessionCookie createSessionCookie(ApplicationPool pool, java.lang.String appId, java.lang.String sessionId, java.util.Properties cookieProps)
           
 java.io.Serializable createSnapshot()
          Creates a snapshot of the state of the DataControl.
 ViewCriteria createViewCriteria(DCIteratorBinding iter)
          Internal: Applications should not use this method. Create a new viewCriteria associated with the given iterator binding's collection.
 void endRequest(java.util.HashMap requestCtx)
          Invoked in some contexts to signal the end of a model request.
protected  void executeIteratorBinding(DCIteratorBinding iterBinding)
          Implies forced execute of the collection that this iterator binding is bound to.
protected  void executeIteratorBindingIfNeeded(DCIteratorBinding iterBinding)
          This method is invoked when a bindingcontainer is 'refreshing' itself before it's data is displayed.
 void executeIteratorBindingWithParams(DCIteratorBinding iter, OperationParameter[] params, java.lang.Object[] paramVals)
           
protected  ApplicationPool findApplicationPool(java.lang.String poolName, java.lang.String configPackage, java.lang.String configSection, java.util.Properties poolProps)
           
 ViewObject findCustomViewObject(java.lang.String name, java.lang.String interfaceName)
           
protected  RowSetIterator findOrCreateDetailViewObjectForCriteria(RowSetIterator master, Row masterRow, java.lang.String accName)
           
 RowSetIterator findOrCreateMethodRowSetIterator(DCIteratorBinding iter, java.lang.String beanClass, java.lang.Object result)
           
protected  RowSetIterator findOrCreateViewObjectForCriteria(DCIteratorBinding iter, ViewCriteria vc, RowSetIterator master, java.lang.String accName)
           
protected  RowSetIterator findOrCreateViewObjectForCriteriaItem(DCIteratorBinding iter, ViewCriteriaItem vc, RowSetIterator master)
           
protected  Variable findVariable(java.lang.String path)
           
protected  java.lang.Object getAccessorValue(RowSetIterator masterRSI, Row row, DCIteratorBinding iter, java.lang.String accName)
           
 ApplicationModule getAm()
           
protected  ApplicationModule getAM()
          *** For internal framework use only ***
 ApplicationModule getApplicationModule()
          Returns the associated oracle.jbo.ApplicationModule object
 AttributeDef[] getAttributeDefs(DCIteratorBinding iterBinding, java.lang.String[] attrNames)
          Return attribute definition for the given iterator binding and for the given set of attributes from the elements-definition of the mapped collection.
 java.util.Hashtable getContext()
          Returns the context object with which the root DCApplication was created.
 java.lang.Object getDataProvider()
          Return the Business Service Object that this datacontrol is associated with.
 java.util.Properties getDBConnectionProps()
          *** For internal framework use only ***
 java.lang.String getDBConnectionURL()
          *** For internal framework use only ***
protected  long getDeferredEstimatedRowCount(DCIteratorBinding iter)
           
 Definition getDefinition(java.lang.String defFullName, int defType)
           
protected  long getEstimatedRowCount(DCIteratorBinding iter)
          Implement estimated row count logic in this method and return the row count for a collection bound to this iterator.
 AttributeDef[] getKeyAttributeDefs(DCIteratorBinding dataIter)
           
 int getLastEventId()
          Subclasses may choose to implement datachangemanager returns -1;
 ListBindingDef getListBindingDef(DCIteratorBinding iter, Key rowKey, java.lang.String name)
           
 java.lang.String getListBindingName(DCIteratorBinding iter, Key rowKey, java.lang.String attrName, java.lang.String name)
           
 RowSetIterator getListBindingRSI(DCIteratorBinding iter, Key rowKey, java.lang.String attrName, java.lang.String name)
          Deprecated. since 11.1.1.0.0
 LocaleContext getLocaleContext()
          Returns the locale for this Application
 java.lang.String getPackageName()
          *** For internal framework use only ***
 RowSetIterator getPreferredListRSI(DCIteratorBinding iter, Key rowKey, java.lang.String attrName, java.lang.String name)
           
 int getReleaseLevel()
           
 java.lang.String getRootAMDefName()
          Returns root DCDataControl's ApplicationModule definition name.
protected  RowSetIterator getRowSetIterator(java.lang.String masterName)
          Given the name of an RSI, find if it's already created and cached on the datacontrol
protected  SortCriteria[] getSortCriteria(DCIteratorBinding iter)
          Returns an ordered array of SortCriteria that will be applied when the source for this iteratorBinding is executed.
 int getValidationInBinding()
          *** For internal framework use only ***
 ViewCriteria getViewCriteria(DCIteratorBinding iter)
          Internal: Applications should not use this method. Return viewCriteria associated with the given iterator binding's collection.
protected  boolean hasKeyAttributes(DCIteratorBinding iter)
           
 void initialize()
          *** Advanced method *** *** For internal framework use only ***
protected  void initializeJboSession(java.lang.String configPackage, java.lang.String configName)
           
protected  void initializeJboSession(java.lang.String configPackage, java.lang.String configName, java.util.Properties poolProps, java.util.Properties cookieProps)
           
protected  void initSessionCookie(SessionCookie cookie)
          *** For internal framework use only ***
protected  java.lang.Object internalGet(java.lang.String key)
          For EL evaluation.
protected  DCBeanDataControl internalGetBeanDataControl()
           
protected  void internalSetTransactionStateChanged(boolean state)
           
protected  java.lang.Object invokeMethod(DCInvokeMethod method, OperationBinding action, java.util.Map paramsMap)
          Override this method if a datacontrol wants to implement custom invocation of a method and avoid introspection and invoke method call using reflection.
protected  boolean isBoundRowIteratorEvent(DCIteratorBinding iter, JboEvent ev)
           
 boolean isClientTier()
          Returns true if this data-control's Application module is deployed in three-tier mode
 boolean isOperationSupported(DCIteratorBinding iterBinding, byte oper)
          Returns true for find, create, remove operations.
 boolean isTransactionDirty()
          Returns true if this transaction has been dirtied by this application.
protected  boolean modifyTransactionStateForAttributeSet(DCIteratorBinding iterBind, Row row, AttributeDef ad)
           
 void prepareSession()
           
 void processChangeNotifications()
          During the render phase of the datacontrol lifecycle the pending notifications for auto refreshing data may be processed.
 void release()
          Use this method to release connection to an Application Module
 void removeDataChangeListener(java.lang.Object dataObj, DataChangeListener dcl)
          Subclasses may choose to implement datachangemanager
 boolean removeRowData(DCRowContext ctx)
          This method is to remove the row object (the obj parameter) from the underlying data source.
 void removeSnapshot(java.io.Serializable handle)
          Removes the snapshot associated with the snapshot handle.
protected  void resetAttributeExceptionInRow(DCIteratorBinding iter, Row row, AttributeDef def, AttrValException ave)
          Reset any deferred exception in the row for the given attribute, for which the AttrValException was raised.
 boolean resetState()
          Resets the DataControl.
 void restoreSavepoint(java.lang.Object handle)
           
 void restoreSnapshot(java.io.Serializable handle)
          Restore the state of the DataControl with the snapshot state that is referenced by the handle.
 void rollbackTransaction()
          Helper method that invokes rollback on the current Transaction.
 void setAttributeInRow(DCIteratorBinding iterBind, Row row, AttributeDef ad, java.lang.Object value)
           
 void setBundledExceptionMode(int mode)
           
 void setClientApp(byte clientType)
          Incase of non-JClient, set the transaction to deferred exception mode by default
 void setConnectionInfo(java.lang.String dbConnectionURL, java.util.Properties dbConnectionProps)
          *** For internal framework use only ***
 void setCurrentRowWithKey(DCIteratorBinding iter, Key keyObj)
          Use the given key to set the current row in the RowSetIterator for the given iteratorbinding.
 void setCurrentRowWithKey(DCIteratorBinding iter, java.lang.String stringKey)
          Converts the serialized stringKey into a Row key object (using collection's key metadata) and then calls findByKey on the RowSetIterator to find the row matching this key.
 void setCurrentRowWithKeyValue(DCIteratorBinding iter, java.lang.String stringValue)
          This method works for Collections with only one Key attribute and not for multi-part attribute keys.
protected  void setDataProvider(java.lang.Object provider)
           
 void setLocaleContext(LocaleContext locale)
          Helper method that sets the locale in the current Application Module's session.
 void setPackageName(java.lang.String packageName)
          *** For internal framework use only ***
 void setPartialUpdate(boolean flag)
          Tell DC that this binding is being updated during partial update, so that it doesn't cache any exceptions for this udpate and simply throws them back.
protected  void setPinned(boolean flag)
          Advanced for ADS usage only
 void setReleaseLevel(int releaseLevel)
           
 void setSessionCookie(SessionCookie sessionCookie)
           
 void setValidationInBinding(int flag)
          *** For internal framework use only ***
 int startEvents(int fromId)
          Subclasses may choose to implement datachangemanager returns fromId as is.
 void sync(java.lang.String syncFromDiagnostic)
          Incase syncNeeded, then use this event to synchronize data from remote tier in batch.
 void syncIfNeeded(java.lang.String syncFromDiagnostic)
          Incase syncNeeded, then use this event to synchronize data from remote tier in batch.
 boolean syncNeeded()
          Primarily used in ADFBC which returns true, if it is deployed in batchmode.
 void validate()
          Called when datacontrol changes needs to be validated after updates have been processed for a page.

 

Methods inherited from class oracle.adf.model.binding.DCDataControl
_internal_dbg_debug_data, addBindingContainer, addBindingContainer, addBindingContainer, addBindingContainerRef, addBindingWithExc, addDataChangeListener, addOrCreateBindingContainer, addStatusBarInterface, addTransactionStateListener, cacheMethodResult, callCommitTransaction, cleanup, createAccessorRowSetIterator, createBindingContainer, createBindingContainerInstance, createRowSetIteratorImpl, displayStatus, displayStatus, doneCommit, doneRollback, findBindingContainer, findOrCreateAccessorRowSetIterator, findOrCreateAccessorRowSetIterator, findOrCreateRowSetIteratorImpl, focusGained, get, getAdaptedDC, getAppDefName, getBindingContext, getCurrentErrorHandler, getDef, getErrorHandlerActive, getIteratorStructureDefName, getMethodResults, getMethodResultUseCount, getName, getParent, getRootDataControl, getSecurityContext, getSessionContext, getSessionContextManager, getSubstitutedDefNames, getSyncLock, getUnresolvedBindingContainer, getUserData, hasBindingsWithExc, hasOperationParamsChanged, hasPermission, hasPermission, hasPermission, initializeBindingContainer, initializeContainerFromDef, initializeFromMetadata, internalCacheMethodResults, internalGetCurrentRow, internalGetIterBindingViewObject, internalPut, invalidateMethodResult, invokeMethod, invokeOperation, isAttributeSortable, isDataChangeManager, isJClientApp, isRoot, isTransactionModified, markAccessorIterListenerForFKMerge, rebuildIteratorIfNeeded, registerDataProvider, release, releaseBindings, releaseData, releaseFromDCFrame, releaseMethodResults, removeBindingContainer, removeBindingWithExc, removeDataChangeListener, removeRowDataFromCollection, removeStatusBarInterface, removeTransactionStateListener, reportException, resolveAttributeDefs, setAppDefName, setAttributesInRow, setBindingContext, setDataControlFrameName, setDef, setErrorHandler, setErrorHandlerActive, setName, setParent, setSessionContext, setTransactionModified, stopEvents, toString, transactionStateChanged

 

Methods inherited from class oracle.jbo.common.JboAbstractMap
entrySet, equals, hashCode, put, setThrowIfPropertyNotFoundOnGet

 

Methods inherited from class java.util.AbstractMap
clear, clone, containsKey, containsValue, isEmpty, keySet, putAll, remove, size, values

 

Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait

 

Methods inherited from interface oracle.jbo.TransactionStateListener
doneCommit, doneRollback

 

Methods inherited from interface java.util.Map
clear, containsKey, containsValue, entrySet, equals, hashCode, isEmpty, keySet, put, putAll, remove, size, values

 

Field Detail

VAL_MODE_REMOTE

public static final int VAL_MODE_REMOTE
See Also:
Constant Field Values

VAL_MODE_ALWAYS

public static final int VAL_MODE_ALWAYS
See Also:
Constant Field Values

VAL_MODE_NEVER

public static final int VAL_MODE_NEVER
See Also:
Constant Field Values

VAL_MODE_UNINIT

public static final int VAL_MODE_UNINIT
See Also:
Constant Field Values

EXC_MODE_DEFAULT

public static final int EXC_MODE_DEFAULT
See Also:
Constant Field Values

EXC_MODE_DEFERRED

public static final int EXC_MODE_DEFERRED
See Also:
Constant Field Values

EXC_MODE_IMMEDIATE

public static final int EXC_MODE_IMMEDIATE
See Also:
Constant Field Values

INTERNALDC

public static final java.lang.String INTERNALDC
See Also:
Constant Field Values

Constructor Detail

DCJboDataControl

protected DCJboDataControl()
*** For internal framework use only ***

DCJboDataControl

public DCJboDataControl(java.util.Hashtable context,
                        java.lang.String rootAMDefName,
                        java.lang.Object userData)
Constructs a root DCDataControl object that connects to a BC4J Application Module of the given name.
Parameters:
context - Context to pass on to the BC4J Application Module on creation.
rootAMDefName - Name that identifies the root BC4J Application Module.
userData - Data to store with the DCDataControl object.

DCJboDataControl

public DCJboDataControl(ApplicationModule am)
Constructor used internally by the framework to associate an application module with a JClient application object.

DCJboDataControl

public DCJboDataControl(DCDataControl parent,
                        ApplicationModule am,
                        java.lang.Object userData)
Constructor to be used to create a nested DCDataControl inside another DCDataControl object.

DCJboDataControl

public DCJboDataControl(SessionCookie sessionCookie)

Method Detail

initializeJboSession

protected void initializeJboSession(java.lang.String configPackage,
                                    java.lang.String configName)

initializeJboSession

protected void initializeJboSession(java.lang.String configPackage,
                                    java.lang.String configName,
                                    java.util.Properties poolProps,
                                    java.util.Properties cookieProps)

findApplicationPool

protected ApplicationPool findApplicationPool(java.lang.String poolName,
                                              java.lang.String configPackage,
                                              java.lang.String configSection,
                                              java.util.Properties poolProps)

createSessionCookie

protected SessionCookie createSessionCookie(ApplicationPool pool,
                                            java.lang.String appId,
                                            java.lang.String sessionId,
                                            java.util.Properties cookieProps)

getAm

public ApplicationModule getAm()
Returns:
This datacontrol's AM on which AM - methods may be invoked.

getAM

protected final ApplicationModule getAM()
*** For internal framework use only ***

initialize

public void initialize()
*** Advanced method *** *** For internal framework use only ***

Creates a connection to the BC4J application module.

Overrides:
initialize in class DCDataControl

createRootApplicationModule

public final void createRootApplicationModule()
*** Advanced method *** *** For internal framework use only ***

If this DCAppication is root, and the root's application module is not created, this method creates a root BC4J Application Module using the root application module def name and the context information (both passed to the constructor of the root DCDataControl).

Throws:
ApplicationModuleCreateException - if the application module is not created, perhaps due to an improper root application module name.
See Also:
ApplicationModule, ApplicationModuleHome.create()

getContext

public final java.util.Hashtable getContext()
Returns the context object with which the root DCApplication was created.

connect

protected void connect()
*** For internal framework use only *** If this application is root, this method invokes the corresponding BC4J Transaction's connect() method to create a database connection. Also this method is used to register the application as a TransactionStateListener on the BC4J Transaction object.
Overrides:
connect in class DCDataControl

getRootAMDefName

public final java.lang.String getRootAMDefName()
Returns root DCDataControl's ApplicationModule definition name.

getDBConnectionURL

public final java.lang.String getDBConnectionURL()
*** For internal framework use only ***

getDBConnectionProps

public final java.util.Properties getDBConnectionProps()
*** For internal framework use only ***

setConnectionInfo

public final void setConnectionInfo(java.lang.String dbConnectionURL,
                                    java.util.Properties dbConnectionProps)
*** For internal framework use only ***

getPackageName

public final java.lang.String getPackageName()
*** For internal framework use only ***

setPackageName

public final void setPackageName(java.lang.String packageName)
*** For internal framework use only ***

getLocaleContext

public final LocaleContext getLocaleContext()
Returns the locale for this Application
Overrides:
getLocaleContext in class DCDataControl

setLocaleContext

public final void setLocaleContext(LocaleContext locale)
Helper method that sets the locale in the current Application Module's session.
Overrides:
setLocaleContext in class DCDataControl

internalGet

protected java.lang.Object internalGet(java.lang.String key)
For EL evaluation. Properties returned vis getter on this control bindings are: