Business Components

oracle.jbo.server
Class ApplicationModuleDefImpl

java.lang.Object
  |
  +--oracle.jbo.common.BaseObject
        |
        +--oracle.jbo.server.NamedObjectImpl
              |
              +--oracle.jbo.server.DefObject
                    |
                    +--oracle.jbo.server.ApplicationModuleDefImpl

public class ApplicationModuleDefImpl
extends oracle.jbo.server.DefObject

The base class for all generated ApplicationModule classes.

An Application Module is a container for View Objects, View Links and other Application Modules. This class stores the runtime metadata for Application Modules. Like other Def objects, ApplicationModuleDef objects are stored, by name, in the XML file. This class is needed to load an Application Module and the components it contains from XML metadata. Calling loadXML() on an object instantiated from this class causes its components to be installed.


Field Summary
protected  boolean mClearCacheOnCommit
          Value determines whether cache should be cleared on a database commit operation.
protected  boolean mClearCacheOnRollback
          Value determines whether cache should be cleared on a database rollback operation.
protected  java.lang.Class mComponentClass
          The class name for the object representing the ApplicationModuleDef.
protected  java.util.Hashtable mRemoteServers
          Hash table to keep name value pairs for Platform, RemoteServer pairs.
protected  boolean mRequeryOnCommit
          Value determines whether the database should be requeried after a commit operation.
protected  java.util.Hashtable mValidatorTypes
           
protected  java.util.Vector mViewLinkUsageList
          List of ViewLinkUsages.
protected  java.util.Hashtable mViewLinkUsages
          Hash Table to keep a list of name value pairs for ViewLinkUsages.
protected  java.util.Vector mViewUsageList
          List of View Object names.
protected  java.util.Hashtable mViewUsages
          Hash table to keep a list of name value pairs for ViewUsages.
 
Fields inherited from class oracle.jbo.server.DefObject
mCompUsageList, mCompUsages
 
Fields inherited from class oracle.jbo.server.NamedObjectImpl
mFullName, mName, mParent, mProperties
 
Fields inherited from class oracle.jbo.common.BaseObject
TRACE_EVERY_ALLOC, TRACE_NONE, TRACE_OCCASIONAL, TRACE_UNINITIALIZED
 
Constructor Summary
protected ApplicationModuleDefImpl()
          Default Constructor.
 
Method Summary
static ApplicationModuleDefImpl findDefObject(java.lang.String name)
          Internal: Applications should not use this method.
static ApplicationModuleDefImpl findDefObjectNoSub(java.lang.String name)
          Internal: Applications should not use this method.
 java.lang.String getClientProxyClassName(java.lang.String platform)
          Internal: Applications should not use this method.
 java.lang.Class getComponentClass()
          Internal: Applications should not use this method.
 java.lang.String getServerClassName(java.lang.String platform)
          Internal: Applications should not use this method.
 boolean isClearCacheOnCommit()
          Indicates whether all Entity Object caches will be cleared after the transaction is committed.
 boolean isClearCacheOnRollback()
          Indicates whether all Entity Object caches will be cleared after the transaction is rolled back.
 boolean isRequeryOnCommit()
          Indicates whether View Objects associated with this Application Module should be marked as needing to be executed after a database commit.
 void loadContainees()
          Internal: Applications should not use this method.
protected static ApplicationModuleDefImpl loadFromXML(oracle.jbo.server.xml.JboElementImpl xmlElement)
          Internal: Applications should not use this method.
protected static ApplicationModuleDefImpl loadFromXML(oracle.jbo.server.xml.JboElementImpl xmlElement, ApplicationModuleDefImpl aInfo)
          Internal: Applications should not use this method.
 
Methods inherited from class oracle.jbo.server.DefObject
getPackageDef, getPackageName, isObjectResolved
 
Methods inherited from class oracle.jbo.server.NamedObjectImpl
getFullName, getName, getParent, getProperties, getPropertiesAsStrings, getProperty, refreshProperty, setFullName, setProperty
 
Methods inherited from class oracle.jbo.common.BaseObject
dumpState, setTraceLevel, setTraceWriter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mComponentClass

protected java.lang.Class mComponentClass
The class name for the object representing the ApplicationModuleDef.

mClearCacheOnCommit

protected boolean mClearCacheOnCommit
Value determines whether cache should be cleared on a database commit operation.

mClearCacheOnRollback

protected boolean mClearCacheOnRollback
Value determines whether cache should be cleared on a database rollback operation.

mRequeryOnCommit

protected boolean mRequeryOnCommit
Value determines whether the database should be requeried after a commit operation.

mValidatorTypes

protected java.util.Hashtable mValidatorTypes

mViewUsages

protected java.util.Hashtable mViewUsages
Hash table to keep a list of name value pairs for ViewUsages.

mViewUsageList

protected java.util.Vector mViewUsageList
List of View Object names.

mViewLinkUsages

protected java.util.Hashtable mViewLinkUsages
Hash Table to keep a list of name value pairs for ViewLinkUsages.

mViewLinkUsageList

protected java.util.Vector mViewLinkUsageList
List of ViewLinkUsages.

mRemoteServers

protected java.util.Hashtable mRemoteServers
Hash table to keep name value pairs for Platform, RemoteServer pairs.
Constructor Detail

ApplicationModuleDefImpl

protected ApplicationModuleDefImpl()
Default Constructor.
Method Detail

findDefObjectNoSub

public static ApplicationModuleDefImpl findDefObjectNoSub(java.lang.String name)
Internal: Applications should not use this method.

Finds the named Application Module definition. Performs essentially the same operation as findDefObject, except that it does not observe meta-object substitution.

Parameters:
name - The fully qualified name of the ApplicationModuleDefImpl.
Returns:
the Application Module definition corresponding to the specified name.
See Also:
MetaObjectManager

findDefObject

public static ApplicationModuleDefImpl findDefObject(java.lang.String name)
Internal: Applications should not use this method.

Finds an ApplicationModuleDefImpl instance, by name, from the statically maintained list of metaobjects. Def objects are stored by name in the XML file.

Parameters:
name - The fully qualified name of the ApplicationModuleDefImpl.
Returns:
the Application Module definition corresponding to the specified name.
See Also:
MetaObjectManager

getComponentClass

public java.lang.Class getComponentClass()
Internal: Applications should not use this method.

Gets this instance's class.

Returns:
the class.

getServerClassName

public java.lang.String getServerClassName(java.lang.String platform)
Internal: Applications should not use this method.

Returns the server class name of the remote server.

Parameters:
platform - the platform to which the Application Module was deployed.
Returns:
the server class of a RemoteServer instance, or null.

getClientProxyClassName

public java.lang.String getClientProxyClassName(java.lang.String platform)
Internal: Applications should not use this method.

Returns the proxy class name of the remote server.

Parameters:
platform - the platform to which the Application Module was deployed.
Returns:
the proxy class name of a RemoteServer instance, or null.

isClearCacheOnCommit

public boolean isClearCacheOnCommit()
Indicates whether all Entity Object caches will be cleared after the transaction is committed. If the Entity caches are cleared, they will be refreshed with new data from the database. Clearing the Entity cache will ensure that all changes from the database will be captured; relying on the fault-in mechanism or RowSet.executeQuery might miss some of the changes.

The value of the Application Module's isClearCacheOnCommit() flag will be used if the client has not set this flag in the Transaction. At the end of transaction, the transaction checks the value of its isClearCacheOnCommit flag and either clears the Entity Object caches or not. However, if the client never called setClearCacheOnCommit on this transaction, the framework will use the value for the root Application Module's definition object.

In contrast, if the client called oracle.jbo.Transaction.setClearCacheOnCommit on the Transaction, then the value of the root Application Module Def's isClearCacheOnCommit is not used.

Note that clearing the Entity Object caches has performance ramifications: repopulating the caches is expensive in terms of time and processing effort.

Returns:
true indicates that the Entity Object caches will be cleared on commit, and will be refreshed with new data from the database.
See Also:
RowSet.executeQuery(), Transaction.isClearCacheOnCommit(), Transaction.setClearCacheOnCommit(boolean val)

isClearCacheOnRollback

public boolean isClearCacheOnRollback()
Indicates whether all Entity Object caches will be cleared after the transaction is rolled back. If the Entity caches are cleared, they will be refreshed with new data from the database. Clearing the Entity caches will ensure that all changes from the database will be captured; relying on the fault-in mechanism or RowSet.executeQuery might miss some of the changes.

The value of the Application Module's isClearCacheOnRollback() flag will be used if the client has not set this flag in the Transaction. At the end of transaction, the transaction checks the value of its isClearCacheOnRollback flag and either clears the Entity Object caches or not. However, if the client never called setClearCacheOnRollback on this transaction, the framework will use the value for the root Application Module's definition object.

In contrast, if the client called oracle.jbo.Transaction.setClearCacheOnRollback on the Transaction, then the value of the root Application Module Def's isClearCacheOnRollback is not used.

Note that clearing the Entity Object caches has performance ramifications: repopulating the caches is expensive in terms of time and processing effort.

Returns:
true indicates that the Entity Object caches will be cleared on rollback, and will be refreshed with new data from the database.
See Also:
RowSet.executeQuery(), Transaction.setClearCacheOnRollback(boolean val), Transaction.isClearCacheOnRollback()

isRequeryOnCommit

public boolean isRequeryOnCommit()
Indicates whether View Objects associated with this Application Module should be marked as needing to be executed after a database commit.

If this method returns true, then after a database commit, all View Objects contained by this Application Module will be marked as needing to be executed. Any attempt to retrieve rows from these View Objects or their row sets/row set iterators will cause the query to be re-executed.

Returns:
true indicates that all View Ojbects will be marked as needing to be executed after a database commit.

loadFromXML

protected static ApplicationModuleDefImpl loadFromXML(oracle.jbo.server.xml.JboElementImpl xmlElement)
Internal: Applications should not use this method.

Loads the XML for the top-level Application Module and creates an instance of ApplicatioModuleDef for it. This function then recursively traverses all of the containee objects in the top-level Applicaton Module and creates Def objects for them.

This function is almost pivotal from runtime's functional point of view.

Parameters:
xmlElement - the XMLStream for Business Components for Java Framework.

loadFromXML

protected static ApplicationModuleDefImpl loadFromXML(oracle.jbo.server.xml.JboElementImpl xmlElement,
                                                      ApplicationModuleDefImpl aInfo)
Internal: Applications should not use this method.

Loads the data from the XML stream. The method calls the MetaObjectManager to create an instance of the specific type of object and adds it to the hashtables that cache all the containees of the Application Module. The containees can be View Objects, View Links and Application Modules. The XMLStream is thus traversed to get the corresponding information about each of the possible children for an ApplicationModule, create these objects and add them to the cache.

Parameters:
XMLelement - represents XMLStream that providesthe JboElement.
aInfo - instance of the ApplicationModuleDef.

loadContainees

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

Loads all components (View Objects, View Links, and Application Modules) into this Application Module.

The function loops through the list of View Object, View Link and Application Module names and loads the corresponding objects from a static list of metaobjects maintained by the MetaObjectManager. Since these objects are already created and stored for use in the cache, the retrieval is fast and efficient.


Business Components