Business Components

oracle.jbo.server
Class ApplicationModuleDefImpl

java.lang.Object
  |
  +--oracle.jbo.common.NamedObjectImpl
        |
        +--oracle.jbo.mom.DefinitionObject
              |
              +--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
TypeField
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
           
protected  com.sun.java.util.collections.ArrayList mCompUsageList
          List of ComponentObject names
protected  com.sun.java.util.collections.HashMap mCompUsages
          Hash table to keep a list of name value pairs for ComponentUsages
protected  com.sun.java.util.collections.HashMap 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  com.sun.java.util.collections.HashMap mValidatorTypes
           
protected  com.sun.java.util.collections.ArrayList mViewLinkUsageList
          List of ViewLinkUsages.
protected  com.sun.java.util.collections.HashMap mViewLinkUsages
          Hash table to keep a list of name value pairs for ViewLinkUsages.
protected  com.sun.java.util.collections.ArrayList mViewUsageList
          List of View Object names.
protected  com.sun.java.util.collections.HashMap mViewUsages
          Hash table to keep a list of name value pairs for ViewUsages.
 
Fields inherited from class oracle.jbo.mom.DefinitionObject
mBaseDefObject, mExtendedDefObjects, mObjectResolved
 
Fields inherited from class oracle.jbo.common.NamedObjectImpl
mFullName, mObjName, mParent, mProperties
 
Constructor Summary
TypeConstructor
protected ApplicationModuleDefImpl()
          Default Constructor.
 
Method Summary
TypeMethod
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.
protected  void finishedLoading()
           
 oracle.jbo.mom.DefinitionObject getBaseDefObject()
           
 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.
 oracle.jbo.server.PackageDefImpl getPackageDef()
           
 java.lang.String getPackageName()
           
 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.mom.xml.DefElementImpl xmlElement)
          Internal: Applications should not use this method.
protected static ApplicationModuleDefImpl loadFromXML(oracle.jbo.mom.xml.DefElementImpl xmlElement, ApplicationModuleDefImpl aInfo)
          Internal: Applications should not use this method.
protected  void loadProperties(oracle.jbo.mom.xml.DefElementImpl xmlElement)
           
protected  void resolveReferences()
           
protected  void setBaseDefObject(oracle.jbo.mom.DefinitionObject baseDefObject)
           
protected  void setName(java.lang.String name)
          Name this object.
protected  void setParent(NamedObjectImpl parent)
          Sets this object's parent.
 
Methods inherited from class oracle.jbo.mom.DefinitionObject
addExtendedDefObject, getContainerDef, getContainerName, getExtendedDefObjects, isBaseDefFor, isDynamicDefinitionObject, isObjectResolved, setObjectResolved
 
Methods inherited from class oracle.jbo.common.NamedObjectImpl
getFullName, getName, getParent, getProperties, getPropertiesAsStrings, getPropertiesMap, getProperty, refreshProperty, setFullName, setPropertiesMap, setProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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 com.sun.java.util.collections.HashMap mValidatorTypes

mViewUsages

protected com.sun.java.util.collections.HashMap mViewUsages
Hash table to keep a list of name value pairs for ViewUsages.

mViewUsageList

protected com.sun.java.util.collections.ArrayList mViewUsageList
List of View Object names.

mViewLinkUsages

protected com.sun.java.util.collections.HashMap mViewLinkUsages
Hash table to keep a list of name value pairs for ViewLinkUsages.

mViewLinkUsageList

protected com.sun.java.util.collections.ArrayList mViewLinkUsageList
List of ViewLinkUsages.

mRemoteServers

protected com.sun.java.util.collections.HashMap mRemoteServers
Hash table to keep name value pairs for Platform, RemoteServer pairs.

mCompUsages

protected com.sun.java.util.collections.HashMap mCompUsages
Hash table to keep a list of name value pairs for ComponentUsages

mCompUsageList

protected com.sun.java.util.collections.ArrayList mCompUsageList
List of ComponentObject names

mComponentClass

protected java.lang.Class mComponentClass
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.mom.xml.DefElementImpl 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.mom.xml.DefElementImpl 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.


getPackageDef

public oracle.jbo.server.PackageDefImpl getPackageDef()

getPackageName

public java.lang.String getPackageName()

setName

protected void setName(java.lang.String name)
Name this object.
Overrides:
setName in class oracle.jbo.mom.DefinitionObject
Parameters:
name - the name to be given to this object.

getBaseDefObject

public oracle.jbo.mom.DefinitionObject getBaseDefObject()
Overrides:
getBaseDefObject in class oracle.jbo.mom.DefinitionObject

setBaseDefObject

protected void setBaseDefObject(oracle.jbo.mom.DefinitionObject baseDefObject)
Overrides:
setBaseDefObject in class oracle.jbo.mom.DefinitionObject

resolveReferences

protected void resolveReferences()
Overrides:
resolveReferences in class oracle.jbo.mom.DefinitionObject

finishedLoading

protected void finishedLoading()
Overrides:
finishedLoading in class oracle.jbo.mom.DefinitionObject

setParent

protected void setParent(NamedObjectImpl parent)
Sets this object's parent.
Overrides:
setParent in class oracle.jbo.mom.DefinitionObject
Parameters:
parent - the named object that is to be the parent of this object.

loadProperties

protected void loadProperties(oracle.jbo.mom.xml.DefElementImpl xmlElement)
Overrides:
loadProperties in class oracle.jbo.mom.DefinitionObject
Following copied from class: oracle.jbo.mom.DefinitionObject
Parameters:
xmlDoc - The XML doc to load from.
name - The name of the Property.

Business Components