|
Business Components | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--oracle.jbo.common.BaseObject | +--oracle.jbo.server.NamedObjectImpl | +--oracle.jbo.server.ComponentObjectImpl | +--oracle.jbo.server.ContainerObjectImpl | +--oracle.jbo.server.ApplicationModuleImpl
The base class of Application Modules. An Application Module is a logical container for coordinated objects related to a particular task, with optional programming logic. Application Modules provide a simple runtime data connection model (one connection per Application Module) and a context for defining and executing transactions. The framework provides an AppRegistry class that clients can use to manage and share a pool of Application Modules. An Application Module provides the following functionality:
Clients can use a generic Application Module provided by the Business Component framework. Your Java code can customize the Application Module and the View Objects it contains.
Application Modules can be nested. That is, an Application Module can (logically) contain one or more other Application Modules as well as View Objects. This Application Module is referred to as the "root". A nested Application Module cannot see the instances of any other Application Modules that might be nested beneath the same root.
Nested Application Modules share the same transaction. The outer-most (top-level) Application Module provides the transaction context for the others.
oracle.jbo.common.appmgr.AppRegistry
Field Summary | |
static java.lang.String |
DEFAULT_DEF_NAME
Default Def name for this Application Module. |
Fields inherited from class oracle.jbo.server.ContainerObjectImpl |
mComponentList,
mComponents |
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 |
Fields inherited from interface oracle.jbo.ApplicationModule |
DEFAULT_DEF_FULL_NAME,
DEFAULT_ROOT_APP_MOD_NAME,
PASSIVATE_TO_DATABASE,
PASSIVATE_TO_FILE,
PASSIVATE_TO_MEMORY,
SYNC_IMMEDIATE,
SYNC_LAZY |
Fields inherited from interface oracle.jbo.common.TransPostControl |
TRANS_POST_GET_ATTR_BY_INDEX,
TRANS_POST_GET_ATTR_BY_NAME,
TRANS_POST_GET_ATTR_COUNT,
TRANS_POST_GET_ATTR_INDEX_OF,
TRANS_POST_PUSHBACK,
TRANS_POST_REMOVE,
TRANS_POST_REVERT,
TRANS_POST_SET_ATTR_BY_INDEX,
TRANS_POST_SET_ATTR_BY_NAME |
Constructor Summary | |
protected |
ApplicationModuleImpl()
Constructs a new Application Module. |
Method Summary | |
protected void |
activate(Session session)
Called by the framework when a root Application Module is created. |
byte[] |
activateState(int id,
boolean remove)
Internal: Applications should not use this method. |
protected void |
addChild(ComponentObjectImpl object)
Internal: Applications should not use this method. |
void |
addWarning(JboWarning warn)
Specifies the name of the handler that will perform special processing of warnings on the client. |
void |
clearVOCaches(java.lang.String entityName,
boolean recurse)
Clears the caches of all View Objects that use the specified entity. |
ApplicationModule |
createApplicationModule(java.lang.String amName,
java.lang.String defName)
Creates an instance of an Application Module within this Application Module; that is, a nested Application Module. |
ComponentObject |
createComponentObject(java.lang.String coName,
java.lang.String comDefName)
Creates a Component object in the context of this Application Module. |
static ApplicationModuleImpl |
createRootApplicationModule(java.lang.String applicationModuleDefName,
Session sess)
Internal: Applications should not call this method. |
static void |
createSharedDataHandle()
Internal: Applications should not call this method. |
ViewLink |
createViewLink(java.lang.String viewLinkName,
java.lang.String viewLinkDefName,
ViewObject master,
ViewObject detail)
Creates a View Link, given the View Link name, the Def name, and the names of the master and detail View Objects. |
ViewLink |
createViewLinkBetweenViewObjects(java.lang.String viewLinkName,
java.lang.String accessorName,
ViewObject master,
AttributeDef[] srcAttrs,
ViewObject detail,
AttributeDef[] destAttrs,
java.lang.String assocClause)
Creates a View Link given either a View Link Definition or an Entity Association. |
ViewLink |
createViewLinkFromEntityAssocName(java.lang.String viewLinkName,
java.lang.String entityAssocName,
ViewObject master,
ViewObject detail)
Creates a View Link, given the View Objects and an Entity Association. |
ViewObject |
createViewObject(java.lang.String voName,
java.lang.String vDefName)
Creates an updateable View Object. |
ViewObject |
createViewObjectFromQueryClauses(java.lang.String vuName,
java.lang.String eoName,
java.lang.String selectClause,
java.lang.String fromClause,
java.lang.String whereClause,
java.lang.String orderByClause)
Creates an updateable View Object. |
ViewObject |
createViewObjectFromQueryStmt(java.lang.String qName,
java.lang.String query)
Creates a read-only View Object, given a query statement and a name for the View Object. |
static void |
createXMLSharedDataHandle()
Call this function to register a shared data handle with MetaObjectManager and use it later. |
java.lang.String |
dumpQueryResult(java.lang.String query,
java.lang.String dumpClassName,
java.lang.String[] data)
Writes the result of the query to a (potentially very long) string. |
int |
executeCommand(java.lang.String command)
Specifies a valid SQL statement to be executed by the server. |
ApplicationModule |
findApplicationModule(java.lang.String amName)
Returns the named Application Module. |
ComponentObject |
findComponentObject(java.lang.String compName)
Finds the component object from the Application Module. |
RowSetIterator |
findRSIForEntity(RowSetIterator[] rsis,
int eRowHandle)
Finds the RowSetIterator associated with the specified row handle. |
ViewLink |
findViewLink(java.lang.String vlName)
Returns the specified View Link from this Application Module. |
ViewObject |
findViewObject(java.lang.String voName)
Gets the named View Object that was created at runtime in the Application Module or created with Design Time tools. |
void |
findVOsWithEntityUsage(java.lang.String entityName,
boolean recurse,
java.util.Vector vos)
Finds the View Objects that use the specified entity. |
protected ApplicationModuleDefImpl |
getApplicationModuleDef()
Returns the Def (definition) associated with this Application Module. |
ApplicationModuleImpl[] |
getApplicationModuleImpls()
Internal: Applications should not use this method. |
java.lang.String[] |
getApplicationModuleNames()
Returns an array of the Application Modules that are contained within this Application Module. |
java.lang.String |
getClientProxyClassName()
Internal: Applications should not use this method. |
DBTransaction |
getDBTransaction()
Returns the database transaction associated with the root Application Module. |
java.lang.String |
getDefFullName()
Returns the fully-qualified (that is, package-qualified) name of this Application Module's Def (definition) object. |
java.lang.String |
getDefName()
Returns the name of this Application Module's Def (definition) object. |
Row |
getEntityRowFromHandle(int eRowHandle)
|
oracle.jbo.common.remote.rAttributeDescription[] |
getQueryInfo(ViewObject vo)
Internal: Applications should not use this method. |
Session |
getSession()
Returns the session information. |
ClientDocument |
getStyles(java.lang.String name)
Gets the Application Module's style definitions from the middle tier. |
int |
getSyncMode()
Returns the sync mode for this Application Module. |
Transaction |
getTransaction()
Returns the transaction information. |
java.lang.String[] |
getViewLinkNames()
Returns an array of the names of the View Links contained in this Application Module. |
ViewLinkImpl[] |
getViewLinks()
Returns an array of the View Links contained in this Application Module. |
java.lang.String[] |
getViewObjectNames()
Returns an array of the names of the View Objects contained in this Application Module. |
ViewObject[] |
getViewObjects()
Constructs an array of this Application Module's View Objects. |
boolean |
isRoot()
Determines if this is the root Application Module. |
int |
passivateState(byte[] clientData)
Internal: Applications should not use this method. |
void |
remove()
Deletes this Application Module. |
protected void |
removeChild(ComponentObjectImpl object)
Internal: Applications should not use this method. |
void |
removeState(int id)
Internal: Applications should not use this method. |
void |
setExceptionHandler(JboExceptionHandler hndlr)
Specifies the name of the handler which will perform special processing of the exceptions on the client. |
void |
setStoreForPassiveState(byte storageType)
Internal: Applications should not use this method. |
void |
setStyles(java.lang.String name,
ClientDocument clientDocument)
Saves the Application Module's style definitions to the middle tier. |
void |
setSyncMode(int mode)
Sets the mode in which the sync'ing of client data with the middle tier is performed. |
void |
sync()
Synchronizes all the result sets defined in this Application Module in the client with the application tier. |
java.lang.Object |
transPostGetAttr(int op,
int hdl,
int index,
java.lang.String name)
Internal: Applications should not use this method. |
void |
transPostPushback(int hdl)
Internal: Applications should not use this method. |
void |
transPostRemove(int hdl)
Internal: Applications should not use this method. |
void |
transPostRevert(int hdl)
Internal: Applications should not use this method. |
void |
transPostRowOp(int op,
int hdl)
Internal: Applications should not use this method. |
void |
transPostSetAttr(int op,
int hdl,
int index,
java.lang.String name,
java.lang.Object value)
Internal: Applications should not use this method. |
Methods inherited from class oracle.jbo.server.ContainerObjectImpl |
addContainerListener,
removeContainerListener |
Methods inherited from class oracle.jbo.server.ComponentObjectImpl |
addListener,
create,
createRef,
getApplicationModule,
getCompListeners,
getProxyClassName,
getProxyClassName,
getRootApplicationModule,
isRegWithPiggyMan,
setProxyClassName |
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 |
public static final java.lang.String DEFAULT_DEF_NAME
Constructor Detail |
protected ApplicationModuleImpl()
Method Detail |
public static ApplicationModuleImpl createRootApplicationModule(java.lang.String applicationModuleDefName, Session sess)
A factory method for creating a root Application Module.
applicationModuleDefName
- the name of an Application Module definition.sess
- the session.public static void createSharedDataHandle()
Call this function to register a shared data handle with the MetaObjectManager and use it later.
public static void createXMLSharedDataHandle()
protected void activate(Session session) throws java.lang.IllegalStateException
create
method which is called even when
nested Application Modules are created, this method is called only for
the root Application Module.
Subclasses can override this method to perform customizations. For example, it can be overriden to initialize connection pools. Another example is to override activate to automatically create a connection in the middle tier when the root Application Module is created.
If this method is overriden, then subclasses must call the super class first in the custom implementation.
session
- the session in which the root Application Module is
created.protected ApplicationModuleDefImpl getApplicationModuleDef()
This method should not be overridden.
public boolean isRoot()
true
if this is the root; false otherwise.protected void addChild(ComponentObjectImpl object)
Adds names to this Application Module's own list of child components.
The child components can be View Objects, View Links,
or other Application Modules. This method overrides an internal
addChild method in
NamedObjectImpl
.
object
- an object to add to the component list.NamedObjectImpl
protected void removeChild(ComponentObjectImpl object)
Removes names from this Application Module's own list of child components.
The child components can be View Objects, View Links,
or other Application Modules. This method overrides an internal
removeChild method in
NamedObjectImpl
.
object
- an object to remove from the component list.NamedObjectImpl
public java.lang.String getDefName()
public java.lang.String getDefFullName()
public ApplicationModule createApplicationModule(java.lang.String amName, java.lang.String defName)
oracle.jbo.ApplicationModule nestedAM = yourAm.createApplicationModule("subAppMod", "PackageName.AppModuleName");
You can override this method to also create View Objects within the "scope" of the Application Module, and make it available to other code. In this case, the code in the Application Module can make assumptions about what View Objects are available and contain code for customizing the View Objects. It can control the namespace of objects that are contained within it.
amName
- the name to be given to the Application Module.
If amName
is empty, a name is generated.defName
- the name of the Application Module definition to be used.
If null
a default definition is used.public ApplicationModule findApplicationModule(java.lang.String amName)
oracle.jbo.ApplicationModule am = findApplicationModule("KpiAM");
amName
- the name of the Application Module.
If amName
is empty the root Application Module is returned.public java.lang.String[] getApplicationModuleNames()
The following code sample returns an array containing the names of Application Modules defined in the Application Module appMod (that is, nested Application Modules):
// Get the names of Application Modules defined in the Application Module. String[] amNames = appMod.getApplicationModuleNames();
public void transPostPushback(int hdl)
public void transPostRemove(int hdl)
public void transPostRevert(int hdl)
public void transPostRowOp(int op, int hdl)
public java.lang.Object transPostGetAttr(int op, int hdl, int index, java.lang.String name)
public void transPostSetAttr(int op, int hdl, int index, java.lang.String name, java.lang.Object value)
public Row getEntityRowFromHandle(int eRowHandle)
public void sync()
public void setSyncMode(int mode)
SYNC_LAZY is typically more efficient in that it means fewer round trips to the middle tier.
mode
- integer representation of the sync mode:
0=SYNC_LAZY, 1=SYNC_IMMEDIATE.public int getSyncMode()
public java.lang.String[] getViewObjectNames()
The following code sample returns an array containing the names of View Objects defined in the Application Module appMod:
// Get the names of View Objects defined in the Application Module. String[] voNames = appMod.getViewObjectNames();
public java.lang.String[] getViewLinkNames()
The following code sample returns an array containing the View Links defined in the Application Module appMod:
// Get the View Links defined in the Application Module. String[] linkNames = appMod.getViewLinkNames();
public ViewLinkImpl[] getViewLinks()
The following example uses this method to remove the View Links contained in the Application Module:
ViewLink[] vls = yourAM.getViewLinks(); for (j = 0; j < vls.length; j++) { vls[j].remove(); }
public ViewLink createViewLink(java.lang.String viewLinkName, java.lang.String viewLinkDefName, ViewObject master, ViewObject detail)
For example, assume that during design time, you used the Design-Time View Object Wizard to create two View Objects, DeptVO and EmpVO inside of a package named package1. Then, assume that you invoked the View Link Wizard from the package node to create a View Link Definition named MyViewLinkDef, that links DeptVO and EmpVO in a master-detail relationship.
Given that you have the names of the View Link Definition and the master and detail View Objects, you can provide code such as the following that executes during runtime and creates a View Link named MyLink1:
ViewObject voDept = myAM.createViewObject("MyDept", "package1.DeptVO"); ViewObject voEmp = myAM.createViewObject("MyEmp", "package1.EmpVO"); ViewLink vl = myAM.createViewLink("MyLink1", "package1.MyViewLinkDef", voDept, voEmp);
This will set up a master-detail relationship between the voDept and the voEmp.
viewLinkName
- the name to be given to the View Link.
If empty, a name is generated.viewLinkDefName
- the name of the definition to be used to create the link.
If empty, a default definition will be used.master
- the link's source View Object.detail
- the link's destination View Object.master
or detail
are invalid.viewLinkName
is invalid.viewLinkName
already exists.public ViewLink createViewLinkFromEntityAssocName(java.lang.String viewLinkName, java.lang.String entityAssocName, ViewObject master, ViewObject detail)
Use this method to create a View Link when your code can access the View Objects and an Entity Association. This method can create a View Link because a View Link Definition can be built from the Entity Association between the underlying Entity Objects.
For example, during Design Time you can define View Objects such as DeptVO for the DeptEO Entity Object, and EmpVO for the EmpEO Entity Object. Then you can define an Association named MyAssoc that associates DeptEO to EmpEO. With this information, you can build a View Link Definition, say MyViewLinkBasedOnAssoc, which relates DeptVO to EmpVO, based on this Entity Association.
During runtime, you can create a View Link with code like this:
ViewObject voDept = myAM.createViewObject("MyDept", "package1.DeptVO"); ViewObject voEmp = myAM.createViewObject("MyEmp", "package1.EmpVO"); ViewLink vl = myAM.createViewLinkFromEntityAssocName("MyLink2", "package1.MyAssoc", voDept, voEmp);
The primary difference between
createViewLink
and
createViewLinkFromEntityAssocName is that the former requires
the View Link Definition name, and the latter requires the Entity
Association name.
viewLinkName
- the name to be given to the View Link.
If empty a name is generated.entityAssocName
- the entity association that the View Link will represent.master
- the link's source View Object.detail
- the link's destination View Object.master
,
detail
, or entityAssocName
are invalid.viewLinkName
is invalid.viewLinkName
already exists.public ViewLink createViewLinkBetweenViewObjects(java.lang.String viewLinkName, java.lang.String accessorName, ViewObject master, AttributeDef[] srcAttrs, ViewObject detail, AttributeDef[] destAttrs, java.lang.String assocClause)
During design time, you could define View Objects such as DeptVO for the DeptEO Entity Object, and EmpVO for the EmpEO Entity Object, but not define an Entity Association or a View Link Definition.
During runtime, you can use createViewLinkBetweenViewObjects to create a View Link by associating attributes from DeptVO and EmpVO. For example, if both DeptVO and EmpVO have a DeptNum attribute, you can associate the attributes and create the View Link with the following block of code:
ViewObject voDept = myAM.createViewObject("MyDept", "package1.DeptVO"); ViewObject voEmp = myAM.createViewObject("MyEmp", "package1.EmpVO"); // Build an attribute array, consisting of DeptVO.DeptNum. AttributeDef[] deptAttrs = new AttributeDef[1]; deptAttrs[0] = voDept.findAttributeDef("DeptNum"); // Build an attribute array, consisting of EmpVO.DeptNum. AttributeDef[] empAttrs = new Attributedef[1]; empAttrs[0] = voEmp.findAttributeDef("DeptNum"); ViewLink vl = myAM.createViewLinkBetweenViewObjects("MyLink3", "Employees", // accessor name--more on this below voDept, // master deptAttrs, // department attributes voEmp, // detail empAttrs, // employee attributes null); // assoc clause
The createViewLinkBetweenViewObjects call builds a View Link that makes voEmp a detail of voDept. The voEmp View Object will display employees for the current department in voDept.
Using the Accessor Name
The createViewLinkBetweenViewObjects method lets you specify an
accessor name. The accessor lets you retrieve details by calling
getAttribute with that name. In the above code example, the
accessor was specified as Employees. Calling getAttribute
on Employees will return an iterator through which you can
enumerate employees in the current department.
For example, you can write code like this that will return an iterator that can enumerate employees in the first department.
Row row = voDept.first(); // get the first dept RowIterator iter = (RowIterator) row.getAttribute("Employees");
If your code does not need an accessor, the accessorName parameter can be set to null.
Using the Association Clause
The createViewLinkBetweenViewObjects method lets you specify a
custom association clause, replacing the one generated by the
Business Components runtime. Passing in null means that the
method will use the association clause generated by runtime which relates
the source attributes to the destination attributes. For example, since
assocClause is null in the above code snippet, runtime
will use the equivalent of the PL/SQL association clause WHERE
voDept.DeptNum=voEmp.DeptNum.
viewLinkName
- the name to be given to the View Link.
If empty, a name is generated.accessorName
- the name to be given to the View Link's accessor.master
- the link's source View Object.srcAttrs
- link attributes taken from the master View Object.detail
- the link's destination View Object.destAttrs
- link attributes taken from the detail View Object.assocClause
- the association clause. Can be null.master
or detail
are invalid.viewLinkName
or accessorName
are invalid.viewLinkName
or accessorName
already exist.public ViewObject findViewObject(java.lang.String voName)
The following sample code locates and returns a named View Object within an Application Module. This lets the Application Module reuse the View Object. The code sample calls findViewObject and passes in the name of a View Object.
// appMod is an Application Module defined at design time. ViewObject vo = appMod.findViewObject("MyEmpView");
voName
- a name.voName
is invalid.voName
does not exist.public ComponentObject findComponentObject(java.lang.String compName)
ComponentObject
interface. This method
allows for integration of other applications.compName
- name of the component object.public ViewLink findViewLink(java.lang.String vlName)
For example, in the following code sample, this method is used to return the first View Link defined in the Application Module appMod:
// Get the first link defined in the Application Module. String[] linkNames = appMod.getViewLinkNames(); if (linkNames.length < 1) { System.out.println("\n No links."); return; } ViewLink link = appMod.findViewLink(linkNames[0]);
vlName
- a name.vlName
is invalid.vlName
does not exist.public DBTransaction getDBTransaction()
public ViewObject[] getViewObjects()
ViewObject[] vos = yourAM.getViewObjects(); for (j = 0; j < vos.length; j++) { vos[j].remove(); }
public ViewObject createViewObjectFromQueryStmt(java.lang.String qName, java.lang.String query)
The following example of a simple fetch uses a static SQL statement with all information hard-coded. After printing the results, the View Object is removed.
public static void demoSimpleFetch(ApplicationModule appMod) { // Define basic query string. String sqlStr = "SELECT Emp.ename, Emp.mgr FROM EMP Emp "; ViewObject vo = appMod.createViewObjectFromQueryStmt("QueryDemo", sqlStr); printViewObject(vo); vo.remove();}
qName
- the name to be given to the View Object.
If empty a name is generated.query
- the SQL query that defines the View Object.qName
is invalid.qName
does not exist.public ViewObject createViewObjectFromQueryClauses(java.lang.String vuName, java.lang.String eoName, java.lang.String selectClause, java.lang.String fromClause, java.lang.String whereClause, java.lang.String orderByClause)
Use this method to build a View Object from SQL clauses. The View Object can be based on an Entity Object. For example, the following statement creates a View Object from attributes of the EMP Entity Object. Attributes related to EMP (such as E.ENAME) are updateable.
ViewObject v = appMod.createViewObjectFromQueryClauses("xyz", "demo.hr.EMP", // The one updateable Entity Object Name "E.ENAME, E.EMPNO", // select clause "EMP E", // from clause "E.DEPTNO = 10", // where clause null); // order by clause
vuName
- the name to be given to the View Object.
If empty, a name is generated.eoName
- the name of the Entity Object from which the
View Object is to be derived.selectClause
- a SQL statement SELECT clause.fromClause
- a SQL statement FROM clause.whereClause
- a SQL statement WHERE clause.orderbyClause
- a SQL statement ORDERBY clause.vuName
is invalid.vuName
already exists.public int executeCommand(java.lang.String command)
The following code example uses executeCommand. The SQL string is designed to update the EMP table. This example passes the string to executeCommand, then prints a message to report how many rows were actually updated.
public static void demoUpdateColumn(ApplicationModule appMod) { String sqlStr = "UPDATE EMP " + "SET MGR=7007 " + "WHERE MGR=7698 "; int n = appMod.getTransaction().executeCommand(sqlStr); System.out.println("Updated " + n + " rows."); }
Be careful when using executeCommand, because it will execute any valid SQL statement. For example, you could perform an operation like the following DDL command:
appMod.getTransaction().executeCommand("DROP TABLE MYTEMPTABLE");
A pending database transaction could be committed inadvertently due to the implicit commit performed by DDL operations, as well as having any row locks released.
command
- a valid SQL statement.public java.lang.String dumpQueryResult(java.lang.String query, java.lang.String dumpClassName, java.lang.String[] data)
The following code example uses dumpQueryResult.
public static void demoSimpleFetch(ApplicationModule appMod) { // Define and execute a simple SQL statement. String sqlStr = "SELECT Emp.ename FROM EMP Emp "; // dumpQueryResult is a utility method for testing queries. String result = appMod.getTransaction().dumpQueryResult(sqlStr, "oracle.jbo.server.QueryDumpTab", null); System.out.println(sqlStr); System.out.println(result); }
the
- SQL query statement.the
- class that dumps the result to a string.data
- an array of data items.public ViewObject createViewObject(java.lang.String voName, java.lang.String vDefName)
This method is useful for instantiating View Objects within a generic Application Module, but you can use it with any Application Module. The code calls createViewObject, passing in the name of the View Object metadata (that is, the name you provided for the View Object at design time) that defines the View Object and a View instance name to identify this instance. You can use this View instance name to find the View Object later, if needed.
// Specify the Java file that defines the View Object. // Format: package.filename String voDefFile = "d2e.DeptView"; // Identify the View Object. Must be a valid Java identifier. String voName = "demoDeptVO"; // Create the View Object within the context defined by the // Application Module. ViewObject vo = appMod.createViewObject(voName, voDefFile);
voName
- the name to be given to the View Object.
If empty, a name is generated.vDefName
- a view definition.voName
is invalid.voName
does not exist.public ComponentObject createComponentObject(java.lang.String coName, java.lang.String comDefName)
An Application
Module typically contains View Objects, View Links, or other
Application Modules. This method will create a generic
component in the context of the Application Module. A generic
component is any object that implements the
ComponentObject
interface. This method
allows for integration of other applications.
coName
- name of the component object. If empty, a name will be generated.comDefName
- name of the component Def (definition) object.public ApplicationModuleImpl[] getApplicationModuleImpls()
Creates an array of Application Modules.
public oracle.jbo.common.remote.rAttributeDescription[] getQueryInfo(ViewObject vo)
Constructs an array of a View Object's attribute descriptors.
vo
- a View Object.public void remove()
This method should not be overridden.
public void findVOsWithEntityUsage(java.lang.String entityName, boolean recurse, java.util.Vector vos)
clearVOCaches
.
If entityName is null, then this method finds all View Objects in the Application Module. If recurse is true, it recurses into nested (child) Application Modules.
entityName
- name of the Entity Object that the View Objects use. Can be
null.recurse
- true recurses to (child) Application Modules;
false applies this method only to the top-level Application Module.vos
- a vector of View Objects.clearVOCaches(String, boolean)
public void clearVOCaches(java.lang.String entityName, boolean recurse)
If entityName is null, then the caches of all View Objects in the Application Module are cleared. If recurse is true, it recurses into nested (child) Application Modules.
entityName
- name of the Entity Object that the View Objects use. Can be
null.recurse
- true recurses to (child) Application Modules;
false applies this method only to the top-level Application Module.ViewObject.clearCache()
public java.lang.String getClientProxyClassName()
Returns the client proxy's class name for this Application Module.
public void setExceptionHandler(JboExceptionHandler hndlr)
In typical use in three tier mode, a user enters values at the client. A user response, such as pressing the Return key or a Submit button, pushes the values to the server. The values are applied to the Entities and validated. Any exceptions that are thrown, are collected and shipped back to the client. Typically, exceptions are given, one-by-one, to the client. Instead, a handler can be specified to perform special processing of the exceptions.
hndlr
- an exception handler.public void addWarning(JboWarning warn)
warn
- a warning.public void setStyles(java.lang.String name, ClientDocument clientDocument)
name
- a name under which the style definitions are to be stored.clientDocument
- the ClientDocument
to be saved.public ClientDocument getStyles(java.lang.String name)
name
- a name under which the style definitions are stored.public Session getSession()
activate
call.activate(Session)
public Transaction getTransaction()
Transaction
.public RowSetIterator findRSIForEntity(RowSetIterator[] rsis, int eRowHandle)
If an error occurs while an entity
is being posted to database, the framework throws a
DMLException
. Inside the DMLException instance is an opaque
handle (in reality an integer) identifying the Entity (an
instance of EntityImpl) that caused the error.
For example, the DMLException could have been thrown because the row violated a database constraint. The client might want to give the user a chance to correct the problem by displaying the the ViewRow that uses this Entity.
To do this, the client would "gather" all RowSetIterators that can be used to report and fix the problem. It would then call findRSIForEntity, passing in the array of RowSetIterators and the Entity row handle returned by DMLException.
Among the RowSetIterator elements in the array, findRSIForEntity will pick the "best" one and return it to the client. The client then can use the RowSetIterator to report the problem and give the user a chance to fix the problem.
rsis
- an array of RowSetIteratorseRowHandle
- an Entity row handle returned by DMLException.DMLException
public void setStoreForPassiveState(byte storageType)
Sets the Application Module to use the file-system to store serialized snapshots of the Application Module. Note that once an Application Module has serialized it's state once, it cannot be asked to change its store. This method will throw a JboException if this Application Module has already stored it's state earlier.
public int passivateState(byte[] clientData)
Serializes the current state of this Application Module's session, along with all changes cached, to a persistent store and returns a unique identifier with which to re-establish the state.
public byte[] activateState(int id, boolean remove)
Deserializes a session-state from the persistent store based on the given id.
id
- public void removeState(int id)
Removes a session-state from the persistent store based on the given id.
id
-
|
Business Components | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |