|
Oracle Fusion Middleware Java API Reference for Oracle ADF Model 11g Release 1 (11.1.1.7.0) E10653-08 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectoracle.jbo.server.RowImpl
public abstract class RowImpl
Base class for Entity Rows and View Object Rows. This class defines common methods for Entity Row and View Object Row access. Customer application logic can use this class to access database table rows independently of the implementation of the underlying row. For example, assume that a customer application is written to perform batch style inserts into a database table. This application may reference the RowImpl class for row access instead of accessing instances of ViewRowImpl or EntityImpl directly. This design would allow changes in a row's implementation (Entity Row or View Object Row) without necessitating changes in the application logic.
Unlike the Row
interface which provides tier-independent access to database
table rows, this class can only be referenced by logic that executes on an
application's middle tier.
Customers should not develop implementations of this abstract class.
Instead, customers who need to extend/override Row behavior should extend one
of the concrete Row classes: EntityImpl
and ViewRowImpl
.
ViewRowImpl
,
EntityImpl
,
Row
Field Summary |
---|
Fields inherited from interface oracle.jbo.XMLInterface |
---|
XML_IGNORE_DEPTH_COUNT, XML_OPT_ALL_ROWS, XML_OPT_ASSOC_CONSISTENT, XML_OPT_CHANGES_ONLY, XML_OPT_LIMIT_RANGE, XML_PASSIVATION_USE |
Fields inherited from interface oracle.jbo.JboReservedVarNames |
---|
RESERVED_VAR_AGG_AVG, RESERVED_VAR_AGG_COUNT, RESERVED_VAR_AGG_MAX, RESERVED_VAR_AGG_MIN, RESERVED_VAR_AGG_SUM, RESERVED_VAR_AGGVAL_PREFIX, RESERVED_VAR_STRUCTURE_DEF |
Fields inherited from interface oracle.jbo.expr.JIReservedVarNames |
---|
RESERVED_VAR_VALUE |
Constructor Summary | |
---|---|
RowImpl()
|
Method Summary | |
---|---|
protected void |
addListBindingsForAttribute(java.util.List lbs,
java.util.List attrNames,
java.lang.String attrName,
java.util.ArrayList derivedNames,
java.util.ArrayList al)
Internal: Applications should not use this method. |
protected void |
clearAllExceptions()
|
protected void |
clearAttributeException(int index)
Cleans any exception of an attribute of the given name was set earlier and threw an exception which was cached as the transaction is in deferred mode. |
protected void |
clearAttributeException(java.lang.String name)
Cleans any exception of an attribute of the given name was set earlier and threw an exception which was cached as the transaction is in deferred mode. |
protected void |
clearRowExceptions()
|
java.lang.String |
createXMLDefinition(int depthCount)
Creates a StringWriter and calls printXMLDefinition
to generate
proper DTD for this row and all containees (if depthCount > 0) |
protected oracle.adf.share.security.authorization.PrivilegeHolder |
doAllowsOperation(java.lang.String operationName)
|
protected void |
doAutoClearAttribute(java.lang.String attrName)
|
VariableValueManager |
ensureVariableManager()
Returns this object's Variable Value Manager. |
protected int |
findAttrAndGetIndex(java.lang.String name)
|
protected java.lang.String |
findListBindingName(java.lang.String attrName,
java.lang.String lbName)
Internal: Applications should not use this method. |
RowSet |
findOrCreateViewAccessorRS(java.lang.String vaName)
|
ViewAccessorDef |
findViewAccessorDef(java.lang.String name)
This method returns ViewAccessorDef with the specified name. |
protected boolean |
forceFilterListExecute(ListBinding lb,
java.util.Map valuesMap)
|
protected java.util.ArrayList |
getAllExceptions()
|
abstract int |
getAttributeCount()
Counts the attributes in this row. |
abstract int |
getAttributeIndexOf(java.lang.String name)
Finds the index of a named attribute. |
protected abstract java.lang.Object |
getAttributeInternal(int index)
Gets the attribute value by index. |
protected java.lang.Object |
getAttributeInternal(java.lang.String name)
Gets the attribute value by name. |
SecurityHints |
getAttributeSecurityHints(int attrIndex)
Returns the SecurityHints object for the specified attribute for the row. |
SecurityHints |
getAttributeSecurityHints(java.lang.String attrName)
Returns the SecurityHints object for the specified attribute for the row. |
protected java.lang.String[] |
getCombinedAttrNames(java.lang.Object[] attrNames,
java.util.List derivedNames)
This method combines the given attribute names with the derived attribute names It throws an exception if the derived attribute names overlap the given names This would happen in a case were the user or a program attempts to set a couple of attributes but the associated list bindings will override at least one of them. |
java.lang.Object |
getEffectiveDate()
|
int |
getEffectiveDateMode()
Get the current effective date mode. |
java.lang.Object |
getExprMethodVal(java.lang.String methodName,
java.lang.Object[] paramList)
|
java.lang.Object |
getExprVarVal(java.lang.String varName)
|
groovy.lang.Script |
getGlobalScript()
For internal framework use only |
java.util.Map |
getHints()
This method returns a Map in which the keys are the attribute names in the row and the values are the AttributeHintsMap
of the corresponding row attributes. |
abstract Key |
getKey()
Returns the row's key. |
protected abstract RowSetIterator |
getListBindingRSI(ListBindingDef def)
Internal: Applications should not use this method. |
protected abstract java.util.List |
getListBindings()
Internal: Applications should not use this method. |
java.lang.Class |
getMessageBundleClass()
|
int |
getMethodKind(java.lang.String methodName)
|
protected abstract VariableValueManager |
getParentVariableManager()
|
ResourceBundleDef |
getResourceBundleDef()
|
protected java.util.ArrayList |
getRowExceptions()
Return a list of cached exceptions at the row level. |
SecurityHints |
getSecurityHints()
Returns the SecurityHints object for the row. |
abstract StructureDef |
getStructureDef()
Returns the structure of the row. |
VariableValueManager |
getVariableManager()
Returns this object's current Variable Value Manager. |
protected int |
getViewAccessorResultIndex(ViewAccessorDef va)
Deprecated. use ViewAccessorDef.getResultIndex() instead |
protected abstract void |
handleListBindingMismatch(ListBinding lb,
java.util.Map valuesMap,
RowIterator listRSI)
Internal: Applications should not use this method. |
protected boolean |
hasAttributeException(int index)
Returns true if an attribute at the given index was set earlier and threw an exception which was cached as the transaction is in deferred mode. |
protected boolean |
hasAttributeException(java.lang.String name)
Returns true if an attribute of the given name was set earlier and threw an exception which was cached as the transaction is in deferred mode. |
boolean |
hasDeferredExceptions()
|
protected abstract boolean |
hasListBindings()
Internal: Applications should not use this method. |
boolean |
hasVariables()
Returns a flag indicating whether this object has Variables or not. |
abstract boolean |
isAttributeUpdateable(int index)
Tests if an attribute is updateable. |
abstract boolean |
isDead()
An attempt to access a dead view row will lead to a DeadViewRowAccessException. |
protected boolean |
isRefreshRequired(ViewAccessorDef va,
java.lang.String[] attrNames)
Check if a view accessor should be refreshed when a list of attribute get changed. |
protected boolean |
isRefreshRequired(ViewAccessorDef va,
java.lang.String[] attrNames,
java.lang.Object[] attrValues)
Check if a view accessor should be refreshed when a list of attribute get changed. |
protected boolean |
isRefreshRequired(ViewAccessorDef va,
java.lang.String[] attrNames,
java.lang.Object[] attrValues,
RowSet rs)
|
abstract void |
lock()
Locks the row(s) in the database table. |
protected ListBinding |
lookupListBinding(java.lang.String lbName)
Internal: Applications should not use this method. |
protected void |
markViewAccessorsDirty(java.lang.String[] attrNames)
|
protected abstract void |
populateAttribute(int index,
java.lang.Object value)
Populates the attribute at the given index with the given attribute value. |
protected java.lang.String |
printXMLDefinition(java.util.Hashtable allDefs,
java.io.PrintWriter pw,
int depthCount)
Prints DTD for this row and all its contents (including contained RowSets if depthCount is non-zero). |
abstract void |
readXML(Element elem,
int depthCount)
Reads the content of the row and updates the attributes, from given XML document. |
void |
readXML(Element elem,
int depthCount,
XSLStylesheet xslt)
Given the document interface, finds the rowset Element and invokes JboXMLUtil.processAndReadXML(XMLInterface, org.w3c.dom.Element, int, oracle.xml.parser.v2.XSLStylesheet)
to read in the data from the XML. |
protected void |
refreshViewAccessor(ViewAccessorDef va)
|
protected void |
refreshViewAccessor(ViewAccessorDef va,
java.util.Map attrNameValues)
|
protected void |
refreshViewAccessor(ViewAccessorDef va,
java.util.Map attrNameValues,
RowSet rs)
|
protected abstract void |
registerAttributeException(AttributeDef attrDef,
java.lang.Object val,
JboException ex)
|
protected void |
registerRowException(JboException e)
|
abstract void |
remove()
Marks the row as removed and removes it from row iterators. |
protected abstract void |
setAttributeInternal(int index,
java.lang.Object value)
Sets the attribute value by index after performing declarative attribute-level validations. |
protected void |
setAttributeInternal(java.lang.String name,
java.lang.Object value)
Sets the attribute value by name. |
abstract void |
setAttributeValues(java.util.List names,
java.util.List values)
Set attribute values for the given list of attributes names. |
void |
setEffectiveDateMode(int mode)
Set the Effective Date mode in which the row updates need to be carried out. |
void |
setExprVarVal(java.lang.String varName,
java.lang.Object val)
|
protected void |
setInMultiSetter(java.util.List al)
|
abstract void |
setNewRowState(byte state)
Sets a new unposted row, created in this transaction, to either STATUS_NEW or STATUS_INITIALIZED mode. |
protected boolean |
skipFilterListOnKeyAttributes(ListBinding lb,
java.util.Map valuesMap)
|
abstract void |
validate()
Invokes the validate method for the validators
attached to this business object. |
protected void |
variablesAdded()
|
Node |
writeXML(int depthCount,
long options)
Writes this row as XML in the given XML document. |
Node |
writeXML(int depthCount,
long options,
XSLStylesheet xslt)
Writes this row as XML in the given XML document, according to the specified XSLT stylesheet. |
Node |
writeXML(long options,
java.util.HashMap voAttrMap)
Renders data in a canonical XML-format. |
Node |
writeXML(long options,
java.util.HashMap voAttrMap,
XSLStylesheet xslt)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface oracle.jbo.Row |
---|
getAttributeHints, getAttributeHints, refresh, removeAndRetain, removeFromCollection |
Methods inherited from interface oracle.jbo.AttributeList |
---|
getAttribute, getAttribute, getAttributeNames, getAttributeValues, setAttribute, setAttribute |
Constructor Detail |
---|
public RowImpl()
Method Detail |
---|
protected abstract java.lang.Object getAttributeInternal(int index)
index
- attribute index
protected int findAttrAndGetIndex(java.lang.String name)
protected final java.lang.Object getAttributeInternal(java.lang.String name)
Date startDate; startDate = (Date)getAttributeInternal(HIREDATE);
This method throws
a JboException
if an attribute of the given name is not found.
name
- attribute name
JboException
- if the attribute is not found.public abstract void setAttributeValues(java.util.List names, java.util.List values)
setAttributeValues
in interface Row
protected void doAutoClearAttribute(java.lang.String attrName)
protected boolean isRefreshRequired(ViewAccessorDef va, java.lang.String[] attrNames)
va
- The View Accessor to be checked.attrNames
- The array of changed attribute.
protected boolean isRefreshRequired(ViewAccessorDef va, java.lang.String[] attrNames, java.lang.Object[] attrValues)
va
- The View Accessor to be checked.attrNames
- The array of changed attribute.attrValues
- The array of values for the changed attribute if values are not in the current row.
protected boolean isRefreshRequired(ViewAccessorDef va, java.lang.String[] attrNames, java.lang.Object[] attrValues, RowSet rs)
protected void refreshViewAccessor(ViewAccessorDef va)
protected void refreshViewAccessor(ViewAccessorDef va, java.util.Map attrNameValues)
protected void refreshViewAccessor(ViewAccessorDef va, java.util.Map attrNameValues, RowSet rs)
protected final java.lang.String[] getCombinedAttrNames(java.lang.Object[] attrNames, java.util.List derivedNames)
attrNames
- list of attribute names to changederivedNames
- list of attribute names that are derived from the listbindings
associated with the attributes to changeprotected void markViewAccessorsDirty(java.lang.String[] attrNames)
protected final void setInMultiSetter(java.util.List al)
protected abstract java.util.List getListBindings()
protected abstract RowSetIterator getListBindingRSI(ListBindingDef def)
protected abstract boolean hasListBindings()
protected abstract void handleListBindingMismatch(ListBinding lb, java.util.Map valuesMap, RowIterator listRSI)
protected java.lang.String findListBindingName(java.lang.String attrName, java.lang.String lbName)
protected ListBinding lookupListBinding(java.lang.String lbName)
protected void addListBindingsForAttribute(java.util.List lbs, java.util.List attrNames, java.lang.String attrName, java.util.ArrayList derivedNames, java.util.ArrayList al)
protected abstract void setAttributeInternal(int index, java.lang.Object value)
This method is used by code-gen facility in accessors for entity attributes.
index
- attribute indexvalue
- attribute valueprotected final void setAttributeInternal(java.lang.String name, java.lang.Object value)
getAttributeIndexOf
as:
setAttributeInternal(getAttributeIndexOf(name), value);
to get the name corresponding to the index, then set the value.
This method is used by the code generation facility in accessors for ViewRow attributes.
name
- column name.value
- column data.getAttributeIndexOf(java.lang.String)
public abstract void lock()
Row
For a View row, this method calls lock() on each Entity row that makes up the View row.
lock
in interface Row
public abstract int getAttributeCount()
getAttributeCount
in interface AttributeList
public abstract int getAttributeIndexOf(java.lang.String name)
getAttributeIndexOf
in interface AttributeList
name
- an attribute name.
protected abstract void populateAttribute(int index, java.lang.Object value)
index
- an attribute position.value
- the value to be assigned to the attribute.public abstract boolean isAttributeUpdateable(int index)
isAttributeUpdateable
in interface Row
index
- the index of the attribute.
public abstract Key getKey()
Row
getKey
in interface Row
public abstract void validate()
validate
method for the validators
attached to this business object.
validate
in interface Row
EntityImpl.validate()
,
ViewRowImpl.validate()
public abstract void remove()
remove
in interface Row
public final java.lang.String createXMLDefinition(int depthCount)
printXMLDefinition
to generate
proper DTD for this row and all containees (if depthCount > 0)
depthCount
- the number of child levels deep to include in the definitions.public Node writeXML(long options, java.util.HashMap voAttrMap)
XMLInterface
ViewObjectImpl
and
ViewRowImpl
implement this method to render
data in XML.
Use this method whenever data is required in XML format, either to present a UI (after converting XML data into some HTTP format using a stylesheet) or to pass the data as payload for messages via JMS.
The options parameter represents a set of bit flags that will control the writeXML behavior. The following bit flags have been defined:
EntityImpl
. The voAttrMap parameter represents in a hashmap, the mapping between a given ViewObject's definition type and the corresponding Attributes/accessors to render. A null entry in the hashmap means, render all attributes and accessors of that viewobject type.
writeXML
in interface XMLInterface
options
- a set of bit flags that will control the writeXMLvoAttrMap
- HashMap containing Definition names of ViewObjects and an
array of AttributeDef to render for a ViewObject of that definition type.public Node writeXML(long options, java.util.HashMap voAttrMap, XSLStylesheet xslt)
writeXML
in interface XMLInterface
public Node writeXML(int depthCount, long options, XSLStylesheet xslt)
writeXML
in interface XMLInterface
depthCount
- the number of child levels deep to append the row nodes.options
- a set of bit flags that will control the writeXML behavior.xslt
- name of the XSLT stylesheet.public final Node writeXML(int depthCount, long options)
writeXML
in interface XMLInterface
depthCount
- the number of child levels deep to append the row nodes.options
- a set of bit flags that will control the writeXML behavior.public void readXML(Element elem, int depthCount, XSLStylesheet xslt)
JboXMLUtil.processAndReadXML(XMLInterface, org.w3c.dom.Element, int, oracle.xml.parser.v2.XSLStylesheet)
to read in the data from the XML.
Note that if the XML contains modifications to row-keys, other
RowSets for this object may not pick those changes up unless the rows
are posted to the database. Call Transaction.postChanges()
to sync
up all RowSets.
readXML
in interface XMLInterface
elem
- name of the XML element.depthCount
- the number of child levels deep to which data should be read.xslt
- name of the XSLT stylesheet.public abstract void readXML(Element elem, int depthCount)
remove()
on this row.
readXML
in interface XMLInterface
elem
- name of the XML element.depthCount
- the number of child levels deep to which data should be read.protected java.lang.String printXMLDefinition(java.util.Hashtable allDefs, java.io.PrintWriter pw, int depthCount)
allDefs
- a hashtable of predefined XML definitions passed from whatever calls this method.pw
- print writer into which the defnition is being printed.depthCount
- the number of child levels for which the DTD definition should be generated.protected void clearAttributeException(java.lang.String name)
protected void clearAttributeException(int index)
protected boolean hasAttributeException(java.lang.String name)
protected boolean hasAttributeException(int index)
public boolean hasDeferredExceptions()
public abstract boolean isDead()
Row
isDead
in interface Row
true
if the row is dead.protected java.util.ArrayList getAllExceptions()
protected void clearAllExceptions()
protected abstract void registerAttributeException(AttributeDef attrDef, java.lang.Object val, JboException ex)
protected void registerRowException(JboException e)
protected void clearRowExceptions()
protected java.util.ArrayList getRowExceptions()
public abstract StructureDef getStructureDef()
Row
getStructureDef
in interface Row
public abstract void setNewRowState(byte state)
Row
This method should be used to create a row and then to mark it temporary (STATUS_INITIALIZED) so that an app can use the created Row to fill UIs like Table UIs with valid default values for rows. Then when the Row values are updated, UIs should once again call this method to turn the Row into new (STATUS_NEW) state before any setAttribute calls on the Row, so that the changes are validated and posted.
When a created row is in STATUS_NEW (by default) state and this method is called to turn the row in to STATUS_INITIALIZED, all updateable entities that this row comprises of, de=registers themselves from their respective transaction and validation managers. Assocation and ViewLink finders will not find/include these rows. Only the collection into which this row was inserted into will contain a reference to this row and when that collection is re-executed this row cannot be reached via the framework. To include this row again an app should call this method again with STATUS_NEW as the method-argument
When this row is in STATUS_INITIALIZED state and this method is called with STATUS_NEW state then, this new row is added back into it's relevant transaction and validation manager and will then participate in validation, transaction cycles.
Note that incase of composition if a master/detail hierarchy is being created with the intention of making them temporary (STATUS_INITIALIZED) then the logic should be: Create Master row, insert Master row into a collection, create Detail row insert detail row into a relevant collection, make detail row initialized, create/insert/change-to-initialized more detail rows and at the end set the master row as initialized.
setNewRowState
in interface Row
state
- This could be STATUS_NEW or STATUS_INITIALIZED.public boolean hasVariables()
VariableManagerOwnerBase
hasVariables
in interface VariableManagerOwnerBase
public VariableValueManager getVariableManager()
VariableManagerOwnerBase
null
if Variable Value Manager has
been initialized.
When a framework object is first created, its Variable Value Manager may be null. This method does not initialize (create) the Variable Value Manager.
in contrast, ensures
that the Variable Value Manager is initialized (created).
VariableManagerOwnerBase.ensureVariableManager()
getVariableManager
in interface VariableManagerOwnerBase
null
if one was not yet initialized.protected abstract VariableValueManager getParentVariableManager()
protected void variablesAdded()
public VariableValueManager ensureVariableManager()
VariableManagerOwnerBase
ensureVariableManager
in interface VariableManagerOwnerBase
public java.lang.Class getMessageBundleClass()
getMessageBundleClass
in interface VariableManagerOwnerBase
public ResourceBundleDef getResourceBundleDef()
getResourceBundleDef
in interface VariableManagerOwnerBase
public java.util.Map getHints()
AttributeHintsMap
of the corresponding row attributes.
For example, to get the label hint of the Hiredate attribute
Map attrHintsMap = (Map) getHints().get("Hiredate"); String label = (String) attrHintsMap.get(AttributeHints.HINT_NAME_LABEL);
public java.lang.Object getExprVarVal(java.lang.String varName)
getExprVarVal
in interface ExprValueSupplier
public void setExprVarVal(java.lang.String varName, java.lang.Object val)
setExprVarVal
in interface ExprValueSupplier
public groovy.lang.Script getGlobalScript()
ExprScriptSupplier
getGlobalScript
in interface ExprScriptSupplier
public int getMethodKind(java.lang.String methodName)
public java.lang.Object getExprMethodVal(java.lang.String methodName, java.lang.Object[] paramList)
public void setEffectiveDateMode(int mode)
Row
setEffectiveDateMode
in interface Row
mode
- One of the effective date mode constants.Row.EFFDT_NONE_MODE
,
Row.EFFDT_UPDATE_CORRECTION
,
Row.EFFDT_UPDATE_MODE
,
Row.EFFDT_UPDATE_OVERRIDE_MODE
,
Row.EFFDT_UPDATE_CHANGE_INSERT_MODE
,
Row.EFFDT_UPDATE_NEW_EARLIEST_CHANGE_MODE
,
Row.EFFDT_DELETE_MODE
,
Row.EFFDT_DELETE_THIS_CHANGE_MODE
,
Row.EFFDT_DELETE_NEXT_CHANGE_MODE
,
Row.EFFDT_DELETE_FUTURE_CHANGE_MODE
,
Row.EFFDT_DELETE_ZAP_MODE
public int getEffectiveDateMode()
Row
getEffectiveDateMode
in interface Row
Row.setEffectiveDateMode(int)
public java.lang.Object getEffectiveDate()
public ViewAccessorDef findViewAccessorDef(java.lang.String name)
ViewAccessorDef
with the specified name.
name
- The name of the ViewAccessorDef
.
ViewAccessorDef
public RowSet findOrCreateViewAccessorRS(java.lang.String vaName)
public SecurityHints getAttributeSecurityHints(java.lang.String attrName)
Row
getAttributeSecurityHints
in interface Row
attrName
- the name of the attribute.
public SecurityHints getAttributeSecurityHints(int attrIndex)
Row
getAttributeSecurityHints
in interface Row
attrIndex
- the index of the attribute.
public SecurityHints getSecurityHints()
Row
getSecurityHints
in interface Row
protected oracle.adf.share.security.authorization.PrivilegeHolder doAllowsOperation(java.lang.String operationName)
protected boolean skipFilterListOnKeyAttributes(ListBinding lb, java.util.Map valuesMap)
protected boolean forceFilterListExecute(ListBinding lb, java.util.Map valuesMap)
protected int getViewAccessorResultIndex(ViewAccessorDef va)
ViewAccessorDef.getResultIndex()
instead
|
Oracle Fusion Middleware Java API Reference for Oracle ADF Model 11g Release 1 (11.1.1.7.0) E10653-08 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |