public class ViewRowImpl extends RowImpl implements XmlSerializable, JboReservedVarNames, ConsistentRow, ContextualLogging, InternalViewRowInterface
The Business Components for Java framework instantiates an object of this class for each record that is returned by the row's View Object query. This class can be referred to by middle-tier customer application logic in order to access View Object Row data.
Customers can extend this class with custom View Object Row implementations. For example, the Business Components for Java View Object wizard can be used to generate sub-classes of this class that define type-safe accessors/mutators for the attributes of a row. Custom sub-classes should be declard to the Business Components for Java framework through the View Object wizard.
Customer applications should not access this class on the client-tier of an
application. Instead, the Row
interface should be
used for client tier access.
Modifier and Type | Class and Description |
---|---|
static class |
ViewRowImpl.PostState
Enum representing the post state of the primary entity
row in this view row.
|
static class |
ViewRowImpl.RowState
Enum representing the entity/row state of the primary entity
row in this view row.
|
Modifier and Type | Field and Description |
---|---|
static byte |
CURRENT_VERSION |
static byte |
ORIGINAL_VERSION |
static java.lang.String |
XML_POSTSTATE_REMOVE |
static java.lang.String |
XML_POSTSTATE_TAG |
PROPERTY_SERVICE_RESOURCE_CONTAINER_PATH
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
RESERVED_VAR_VALUE
PNAME_CONTEXTUAL_HINT_SUFFIX, PNAME_DYNACC_IS_FOR_LOV, PNAME_DYNACC_STRUCTURE_DEF_NAME
EFFDT_ADJUST_EFFECTIVE_END_DATE_MODE, EFFDT_ADJUST_EFFECTIVE_START_DATE_MODE, EFFDT_DELETE_FUTURE_CHANGE_MODE, EFFDT_DELETE_MODE, EFFDT_DELETE_NEXT_CHANGE_MODE, EFFDT_DELETE_THIS_CHANGE_MODE, EFFDT_DELETE_ZAP_MODE, EFFDT_EXPERT_MODE, EFFDT_NONE_MODE, EFFDT_UPDATE_CHANGE_INSERT_MODE, EFFDT_UPDATE_CORRECTION, EFFDT_UPDATE_INSERT_MODE, EFFDT_UPDATE_MODE, EFFDT_UPDATE_NEW_EARLIEST_CHANGE_MODE, EFFDT_UPDATE_OVERRIDE_MODE, REFRESH_CONTAINEES, REFRESH_FORGET_NEW_ROWS, REFRESH_REMOVE_NEW_ROWS, REFRESH_UNDO_CHANGES, REFRESH_WITH_DB_FORGET_CHANGES, REFRESH_WITH_DB_ONLY_IF_UNCHANGED, STATUS_INITIALIZED
XML_IGNORE_DEPTH_COUNT, XML_OPT_ALL_ROWS, XML_OPT_ASSOC_CONSISTENT, XML_OPT_CHANGES_ONLY, XML_OPT_LIMIT_RANGE, XML_PASSIVATION_USE
Constructor and Description |
---|
ViewRowImpl()
Public constructor for this class.
|
Modifier and Type | Method and Description |
---|---|
protected java.util.List |
_internal_dbg_debug_data()
framework use only
|
protected void |
appendXMLElementNodes(org.w3c.dom.Document xmlDoc,
org.w3c.dom.Node node,
int depthCount,
long options,
AttributeDefImpl[] attrs)
Writes XML-element nodes for each attribute in this row and appends it to the given
row-node.
|
protected void |
appendXMLElementNodes(org.w3c.dom.Document xmlDoc,
org.w3c.dom.Node node,
int depthCount,
long options,
java.util.HashMap voAttrMap,
AttributeDef[] attrs)
Writes XML-element nodes for each attribute in this row and appends it to the given
row-node.
|
boolean |
checkConsistency(java.io.Serializable changeIndicator)
Checks the consistency of the row with a previously generated
changeIndicator.
|
protected void |
checkForOuterJoins(int[] eoIndices,
EntityImpl[] initEntities)
Check the Entities in this View Row for Outer Joins.
|
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 |
clearViewAccessorResultsRecursively()
Deprecated.
|
protected void |
copyFrom(ViewRowImpl other)
For subclasses to implement copy of transient members in the subclass
This method is invoked when a new row is created with attributes copied
from the other row for move into a new collection in makeRowCopy.
|
protected void |
create(AttributeList nvp)
Initialization method to be over-ridden in generated code
for custom defaulting.
|
protected EntityImpl[] |
createEntities()
Creates blank instances of the Entity Objects that this row is composed of.
|
protected ListBinding |
createListBinding(ListBindingDef lbDef,
RowSetIterator rsi)
Internal: Applications should not use this method.
|
protected EntityImpl[] |
createMissingEntitiesFromViewDef(ViewDefImpl viewDef,
int[] eoIndices,
EntityImpl[] entities,
java.sql.ResultSet resultSet,
AttributeList initValues,
boolean isNewRow,
ApplicationModule viewAccessorAM) |
protected RowSet |
createViewAccessorRS(java.lang.String vaName)
Internal: Applications should not use this method.
|
protected RowSet |
createViewAccessorRS(ViewAccessorDef va)
Internal: Applications should not use this method.
|
protected ViewRowAttrHintsImpl |
createViewRowAttrHints(AttributeDefImpl attrDef)
Create a map to store attribute hints for this row.
|
protected oracle.adf.share.security.authorization.PrivilegeHolder |
doAllowsOperation(java.lang.String operationName) |
protected void |
doAutoClearAttribute(java.lang.String attrName) |
protected void |
doEffectiveDateRangeOperation(EffectiveDateRangeOperationParams params)
This method may be overridden to apply custom logic on the row before effective date
range operation takes place.
|
void |
entityCacheAdd()
Populate the caches from the values of the rows.
|
boolean |
equals(java.lang.Object other)
Tests if the specified value is equal to this ViewRowImpl object.
|
protected java.lang.Object |
evaluateLovFinderExpressionInternal(AttributeDefImpl attr,
Row row)
Deprecated.
|
protected RowSet |
findAssociatedObjects(java.lang.String name)
Finds Objects in a ViewRowSetImpl that follow the given association.
|
AttributeDef |
findAttributeDef(java.lang.String attrName) |
protected java.lang.String |
findListBindingName(java.lang.String attrName,
java.lang.String lbName)
Internal: Applications should not use this method.
|
protected RowSetIterator |
findListBindingRSI(java.lang.String attrName,
java.lang.String lbName,
java.lang.String prefCrName)
Internal: Applications should not use this method.
|
protected ViewObject |
findOrCreateLocalViewObject(ViewAccessorDef vaDef)
Find or create the local view instance from the local view usage name.
|
RowSet |
findOrCreateViewAccessorRS(java.lang.String vaName) |
protected RowSet |
findOrCreateViewAccessorRS(ViewAccessorDef va)
Internal: Applications should not use this method.
|
RowSet |
findOrCreateViewLinkAccessorRS(java.lang.String accessor)
Creates a view kink accessor rowset.
|
ViewRowSetImpl |
findRowSetForRow(java.lang.Object accessKey) |
ViewAccessorDef |
findViewAccessorDef(java.lang.String name)
This method returns
ViewAccessorDef with the specified name. |
java.lang.String |
getAccessorStructureDefName(java.lang.String accName)
Obtain the structure def name based on the accessor name provided.
|
ApplicationModule |
getApplicationModule()
Gets the Application Module to which the containing View Object belongs.
|
protected ApplicationModule |
getApplicationModuleForViewAccessor()
Internal: Applications should not use this method.
|
java.lang.Object |
getAttribute(int ix)
Selects the attribute at the given index.
|
java.lang.Object |
getAttribute(java.lang.String name)
Gets the value of an attribute by name.
|
int |
getAttributeCount()
Gets the attribute count in this ViewRow.
|
AttributeHints |
getAttributeHints(int attrIndex)
Returns the AttributeHints object for the specified attribute for the row.
|
AttributeHints |
getAttributeHints(java.lang.String attrName)
Returns the AttributeHints object for the specified attribute for the row.
|
int |
getAttributeIndexOf(java.lang.String attrName)
Gets the index of the attribute, given it's name.
|
protected java.lang.Object |
getAttributeInternal(int index)
Gets the value of the attribute by index.
|
java.lang.Object |
getAttributeInternal(int index,
byte version) |
java.lang.String[] |
getAttributeNames()
Returns an array of attribute names in this list.
|
java.lang.Object[] |
getAttributeValues()
Returns an array of attribute values in this list.
|
protected java.lang.Object |
getAttrInvokeAccessor(int ix,
AttributeDefImpl attrRef) |
java.io.Serializable |
getClientChangeIndicator()
Returns a change indicator.
|
java.util.HashMap<java.lang.String,java.util.HashMap> |
getCtrlHints(java.util.List<java.lang.String> attrNames,
java.lang.String localeName) |
DBTransaction |
getDBTransaction() |
java.lang.Object |
getEffectiveDate()
Obtain the Effective Date Value of this row.
|
java.lang.String |
getElementTagName() |
EntityImpl[] |
getEntities()
Gets an array of Entity objects.
|
protected EntityImpl[] |
getEntitiesInternal() |
EntityImpl |
getEntity(int index)
Gets the Entity at the given index.
|
AttributeDefImpl |
getEntityAttrForAttribute(java.lang.String attrName) |
int |
getEntityCount()
Counts the number of Entity Objects in this row.
|
Entity |
getEntityForAttribute(java.lang.String attrName)
Gets an entity object that contains the given attribute name.
|
protected EntityImpl |
getEntityForListBinding(java.lang.String eoName)
Method to retrieve the entity for locating entity level view
accessor to be used in list binding.
|
java.lang.Object |
getExprVarVal(java.lang.String varName) |
java.lang.Object |
getHandle()
Creates a row identifier that is unique in the query collection.
|
Key |
getKey()
Returns the identifier object for this row.
|
java.lang.String |
getKeyForLogger()
Internal: Applications should not use this method.
|
int |
getListBindingCount() |
protected RowSetIterator |
getListBindingRSI(ListBindingDef def)
Internal: Applications should not use this method.
|
protected java.util.List |
getListBindings()
Internal: Applications should not use this method.
|
java.lang.String |
getLookupDescription(java.lang.String attrName)
Deprecated.
|
byte |
getNewRowState() |
java.lang.Object |
getOriginalAttributeValue(java.lang.String attrName)
Returns the original value of this attribute if available.
|
java.lang.String |
getOwningAccessorName()
Deprecated.
|
protected VariableValueManager |
getParentVariableManager() |
byte |
getPostState() |
protected RowSetIterator |
getPreferredListBindingRSI(ListBindingDef def,
java.lang.String prefCrName)
Internal: Applications should not use this method.
|
protected EntityReference |
getPrimaryEntityReference()
Get the primary entity.
|
ViewRowImpl.PostState |
getPrimaryPostState()
Deprecated.
use
getPrimaryRowState() instead. |
ViewRowImpl.RowState |
getPrimaryRowState()
Returns the entity/row state of the primary entity row in this
view row as RowState enum.
|
QueryCollection |
getQueryCollection(java.lang.Object accessKey)
Gets the QueryCollection this row exists in.
|
protected ViewAttributeDefImpl |
getRowHintsAttributeDef(int attrIndex)
Deprecated.
|
ExprEval |
getRowOperations()
For internal framework use only
|
RowSet |
getRowSet()
Internal: Applications should not use this method.
|
protected oracle.jbo.server.ViewRowStorage |
getRowStorageInternal() |
java.lang.String |
getSelectedListDisplayValue(java.lang.String attrName)
If the attrName passed in has an LOV, this method returns the value of the
first display attribute corresponding to the LOV view accessor row matching
the value of the LOVs driving field values (typically will only be the
value of the field passed in, but can include other driving fields if the
LOV is so-configured).
|
java.util.List<java.lang.String> |
getSelectedListDisplayValues(java.lang.String attrName)
If the attrName passed in has an LOV that is a multiple selection LOV,
this method returns a list containing the value of the first display
attribute corresponding to the LOV view accessor rows matching the
one or more values of the single driving field in the current row.
|
java.lang.String |
getStringForLogger()
Internal: Applications should not use this method.
|
StructureDef |
getStructureDef()
Returns the structure of the row.
|
protected java.util.List |
getViewAccessorDefsInternal()
Deprecated.
|
ViewDefImpl |
getViewDef()
Get the ViewDefImpl associated with this View Row.
|
ViewDefImpl |
getViewLogicGroupDef() |
ViewObject |
getViewObject()
Gets the View Object to which this row belongs.
|
java.lang.String |
getXMLElementTag()
Returns the XML-element tag for this row.
|
protected 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.
|
boolean |
hasDeferredExceptions() |
boolean |
hasExtendedViewDef() |
int |
hashCode()
Computes an integer hash code for this ViewRowImpl object
|
boolean |
hasListBindings()
Internal: Applications should not use this method.
|
protected void |
initDefaults() |
protected java.lang.Object |
internalGetCachedCalcAttributeValue(AttributeDefImpl attr)
Deprecated.
|
java.lang.Object |
invokeRowFunction(java.lang.String methodId,
java.lang.String scriptName) |
java.lang.Object |
invokeRowFunction(java.lang.String methodId,
java.lang.String scriptName,
java.lang.Class[] paramTypes,
java.lang.Object[] paramValues) |
boolean |
isAttributeChanged(java.lang.String attrName)
Advanced method: Applications should typically not use this method.
Invokes isAttributeChanged(index) after looking up the entity for an attribute with this name.
|
boolean |
isAttributeUpdateable(int index)
Tests if an attribute is updateable.
|
boolean |
isDead()
An attempt to access a dead view row will lead to a DeadViewRowAccessException.
|
protected boolean |
isRefreshRequired(ViewAccessorDef va,
java.lang.String[] attrNames,
java.lang.Object[] attrValues,
RowSet rs) |
boolean |
isSubclassRow() |
protected boolean |
isViewAccessorAttribute(int indexAttribute)
Check if an attribute is the attribute to store view accessor RowSetIterator.
|
void |
lock()
Locks the referenced Entity Rows.
|
AttributeDef |
lookupAttributeDef(java.lang.String attrName)
final void setViewDef(ViewDefImpl vDef)
{
try
{
useInner();
mInner.setViewDef(vDef);
}
finally
{
releaseInner();
}
}
|
protected void |
markViewAccessorsDirty(java.lang.String[] attrNames) |
boolean |
matchesHierarchyDef(AccessorHierarchyDefInterface hierarchyDef)
Checks if the tree node definition is based on the same def as view row's view def.
|
protected void |
populate(java.sql.ResultSet resultSet)
Internal: Applications should not use this method.
|
protected void |
populateAttribute(int index,
java.lang.Object value)
Populates the attribute at the given index with the given attribute value.
|
protected void |
populateAttributeAsChanged(int index,
java.lang.Object value) |
protected void |
readAttributeFromXMLElement(org.w3c.dom.Node rowElt,
AttributeDefImpl ad) |
void |
readXML(org.w3c.dom.Element rowElt,
int depthCount)
Reads the content of the row and updates the attributes, from given
XML document.
|
void |
refresh(int refreshMode)
Refreshes the row's attributes with values from database.
|
protected void |
refreshViewAccessor(ViewAccessorDef va,
java.util.Map attrNameValues,
RowSet rs) |
protected void |
registerAttributeException(AttributeDef attrDef,
java.lang.Object val,
JboException ex) |
void |
remove()
Deletes the row.
|
void |
removeAndRetain()
Removes the row from the collection and then retain it for insertion
into another location.
|
void |
removeFromCollection()
Removes the row from the collection.
|
protected org.w3c.dom.Element |
renderAttributeInXMLElement(org.w3c.dom.Document xmlDoc,
AttributeDefImpl ad,
boolean explicitNull) |
protected org.w3c.dom.Element |
renderAttributeInXMLElement(org.w3c.dom.Document xmlDoc,
AttributeDefImpl ad,
boolean explicitNull,
byte version) |
void |
resetAttributeException(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 |
resetForwardAttributes(ViewAttributeDefImpl[] attrDefs,
java.util.List<java.lang.String> skipAttrs)
Deprecated.
|
void |
resetHintsSuffix(java.lang.String suffix) |
void |
revert()
Reverts this row back to its initial state.
|
void |
revertRow()
Reverts this row back to its initial state.
|
void |
revertRowAndContainees()
Reverts this row And all it's containee rows to the initial state.
|
void |
setAttribute(int index,
java.lang.Object val)
Sets an attribute.
|
void |
setAttribute(java.lang.String name,
java.lang.Object val)
Sets the value of an attribute by name.
|
protected void |
setAttributeInternal(int index,
java.lang.Object val)
This is an "inner" accessor for an attribute and does not
call out to the getXXX() method.
|
void |
setAttributeValues(java.util.List names,
java.util.List values)
Set attribute values for the given list of attributes names.
|
void |
setAttributeValuesInternal(java.util.List names,
java.util.List values,
boolean onlyValidate) |
protected void |
setAttrInvokeAccessor(int index,
java.lang.Object val,
AttributeDefImpl attrRef) |
void |
setEffectiveDateMode(int mode)
Set the Effective Date mode in which the row updates
need to be carried out.
|
protected void |
setEffectiveDateOnEntities()
Sets the Effective Date on the underlying entity rows.
|
protected void |
setEntities(EntityImpl[] rows)
Sets the entities that this view row is composed of.
|
protected void |
setEntity(int index,
EntityImpl row)
Sets the entity (at
index ) for this view row. |
void |
setNewRowState(byte state)
void setIterator(ViewRowSetIteratorImpl rsi)
{
mRSI = rsi;
}
public ViewRowSetIteratorImpl getIterator()
{
return mRSI;
}
|
protected void |
setStateOnEntity(EntityImpl entity,
int state) |
void |
setTransientAttributeValue(ViewAttributeDefImpl vad,
java.lang.Object val)
Deprecated.
for internal framework use only.
|
protected boolean |
shouldAddViewAccessorRSToRow()
Internal: Applications should not use this method.
|
protected boolean |
skipFilterListOnKeyAttributes(ListBinding lb,
java.util.Map valuesMap) |
boolean |
throwOnListBindingMismatch() |
java.lang.String |
toString() |
void |
validate()
Calls validate on each this view row's Entity Objects.
|
void |
writeAsXml(XmlOutput out,
org.w3c.dom.Node node,
Criteria rules) |
void |
writeAsXml(XmlOutput output,
org.w3c.dom.Node node,
Criteria rules,
byte version) |
org.w3c.dom.Node |
writeXML(long options,
java.util.HashMap voAttrRules)
Writes this row as XML in the given XML document.
|
addListBindingsForAttribute, clearAllExceptions, clearRowExceptions, createXMLDefinition, ensureVariableManager, findAttrAndGetIndex, forceFilterListExecute, getAllExceptions, getAttributeInternal, getAttributeSecurityHints, getAttributeSecurityHints, getCombinedAttrNames, getEffectiveDateMode, getExprMethodVal, getExprVarValType, getGlobalOperations, getHints, getMessageBundleClass, getMethodKind, getResourceBundleDef, getRowExceptions, getSecurityHints, getVariableManager, getViewAccessorResultIndex, hasAttributeException, hasVariables, invokeMethod, isRefreshRequired, isRefreshRequired, lookupListBinding, printXMLDefinition, readXML, refreshViewAccessor, refreshViewAccessor, registerRowException, setAttributeInternal, setExprVarVal, setInMultiSetter, variablesAdded, writeXML, writeXML, writeXML
public static final byte CURRENT_VERSION
public static final byte ORIGINAL_VERSION
public static final java.lang.String XML_POSTSTATE_TAG
public static final java.lang.String XML_POSTSTATE_REMOVE
protected void initDefaults()
protected oracle.jbo.server.ViewRowStorage getRowStorageInternal()
public boolean throwOnListBindingMismatch()
protected void create(AttributeList nvp)
This method invokes create(AttributeList)
on each of the "new" entities
that make up this View Row.
The attribute list nvp is simply passed to the new entity rows that make up this View Row.
Note: the names in the attribute list are not transformed into entity-relative names hoping that the caller has done so already. If not, the entity's create() method might fail.
nvp
- the list of attributtes.public QueryCollection getQueryCollection(java.lang.Object accessKey)
public ViewRowSetImpl findRowSetForRow(java.lang.Object accessKey)
public java.lang.Object getHandle()
Each row in a collection can be identified by either its Java object reference or by its row handle. The row handle, together with the collection name, forms an identifier that can be stored externally, in order to identify the row in future operations.
Applications should not rely on indentifier having a specific format: it is subject to change.
A row handle can be converted to a string using toString()
methods, and compared using equals
public Key getKey()
public void validate()
validate
in interface Row
validate
in class RowImpl
JboException
- if validation fails.EntityImpl.validate()
,
validate()
protected java.lang.Object getAttributeInternal(int index)
Note that this is an "inner" accessor for an attribute and does
not callout to the generated getXXX() method
on a subclass of a
ViewRowImpl. getAttribute()
methods are the "outer"
methods that callout to a subclass's getXXX() method where
XXX is the name of the attribute.
getAttributeInternal
in class RowImpl
index
- the index of the attribute.public java.lang.Object getAttribute(int ix)
AttributeList
getAttribute
in interface AttributeList
ix
- an integer in the range 0
to getAttributeCount() - 1
.index
.protected java.lang.Object getAttrInvokeAccessor(int ix, AttributeDefImpl attrRef) throws java.lang.Exception
java.lang.Exception
public AttributeHints getAttributeHints(java.lang.String attrName)
Row
getAttributeHints
in interface InternalViewRowInterface
getAttributeHints
in interface Row
attrName
- the name of the attribute.public AttributeHints getAttributeHints(int attrIndex)
Row
getAttributeHints
in interface InternalViewRowInterface
getAttributeHints
in interface Row
attrIndex
- the index of the attribute.protected ViewRowAttrHintsImpl createViewRowAttrHints(AttributeDefImpl attrDef)
attrDef
- The attribute defintion for which the hints need to be created.public java.lang.Object getAttribute(java.lang.String name)
getAttribute
in interface AttributeList
name
- the name of the attribute.public void setAttribute(java.lang.String name, java.lang.Object val)
setAttribute
in interface AttributeList
name
- the name of the attribute.val
- the value of the attribute.public void setAttribute(int index, java.lang.Object val)
This method performs a type-check on the value, so that it matches the Java type of the attribute.
setAttribute
in interface AttributeList
index
- the index of the attribute.val
- the new value.ReadOnlyAttrException
- if the attribute is not updateable.InvalidOperException
- if this row
belongs is to a forward-only View Object.DataCreationException
- if the given value is not
convertible to the Java type of the attribute.AttrSetValException
- if any validation logic fails
while setting this attribute to the mapped Entity Object attribute.protected boolean hasAttributeException(int index)
RowImpl
hasAttributeException
in class RowImpl
public boolean hasDeferredExceptions()
hasDeferredExceptions
in class RowImpl
public final void resetAttributeException(java.lang.String name)
resetAttributeException
in interface InternalViewRowInterface
protected void clearAttributeException(java.lang.String name)
clearAttributeException
in class RowImpl
protected void clearAttributeException(int index)
clearAttributeException
in class RowImpl
protected void registerAttributeException(AttributeDef attrDef, java.lang.Object val, JboException ex)
registerAttributeException
in class RowImpl
protected void setAttrInvokeAccessor(int index, java.lang.Object val, AttributeDefImpl attrRef) throws java.lang.Exception
java.lang.Exception
protected void setAttributeInternal(int index, java.lang.Object val)
This method also does not perform any type-check for the value's java type and assumes that the value-type is same as the java-type for this attribute.
setAttributeInternal
in class RowImpl
index
- The index of the attribute.val
- The value.ReadOnlyAttrException
- if the attribute is not updateable.AttrSetValException
- if any validation logic fails while setting this attribute to the mapped Entity attribute.protected void handleListBindingMismatch(ListBinding lb, java.util.Map valuesMap, RowIterator listRSI)
RowImpl
handleListBindingMismatch
in class RowImpl
public boolean hasListBindings()
RowImpl
hasListBindings
in class RowImpl
public int getListBindingCount()
@Concealed public void setTransientAttributeValue(ViewAttributeDefImpl vad, java.lang.Object val)
@Concealed public void setAttributeValuesInternal(java.util.List names, java.util.List values, boolean onlyValidate)
setAttributeValuesInternal
in interface InternalViewRowInterface
public void setAttributeValues(java.util.List names, java.util.List values)
RowImpl
setAttributeValues
in interface Row
setAttributeValues
in class RowImpl
public final RowSet getRowSet()
public final ViewObject getViewObject()
public StructureDef getStructureDef()
Row
getStructureDef
in interface Row
getStructureDef
in class RowImpl
protected java.util.List getListBindings()
getListBindings
in class RowImpl
protected void doAutoClearAttribute(java.lang.String attrName)
doAutoClearAttribute
in class RowImpl
protected ListBinding createListBinding(ListBindingDef lbDef, RowSetIterator rsi)
lbDef
- The definition objectrsi
- The Rowset that is created from the Accessor Definiton specified in List binding definitionprotected java.lang.String findListBindingName(java.lang.String attrName, java.lang.String lbName)
RowImpl
findListBindingName
in class RowImpl
protected RowSetIterator findListBindingRSI(java.lang.String attrName, java.lang.String lbName, java.lang.String prefCrName)
protected EntityImpl getEntityForListBinding(java.lang.String eoName)
eoName
- name of the entity to be returnedprotected RowSetIterator getPreferredListBindingRSI(ListBindingDef def, java.lang.String prefCrName)
protected RowSetIterator getListBindingRSI(ListBindingDef def)
getListBindingRSI
in class RowImpl
protected boolean skipFilterListOnKeyAttributes(ListBinding lb, java.util.Map valuesMap)
skipFilterListOnKeyAttributes
in class RowImpl
lb
- ListBinding instance on which filter is being runvaluesMap
- Current set of values to filter the list onprotected ApplicationModule getApplicationModuleForViewAccessor()
protected boolean shouldAddViewAccessorRSToRow()
protected RowSet findOrCreateViewAccessorRS(ViewAccessorDef va)
public RowSet findOrCreateViewLinkAccessorRS(java.lang.String accessor)
getAttribute(accessor)
method.
For the "one" kind accessor this will return the rowset that contains the
associated row. Callers would typically use this method to create an associated row.
Creating a row in the rowset will automatically populate the foreign key
values for the attributes declared in the view link.findOrCreateViewLinkAccessorRS
in interface InternalViewRowInterface
accessor
- The name of the view link accessorpublic RowSet findOrCreateViewAccessorRS(java.lang.String vaName)
findOrCreateViewAccessorRS
in interface InternalViewRowInterface
findOrCreateViewAccessorRS
in class RowImpl
protected RowSet createViewAccessorRS(ViewAccessorDef va)
protected RowSet createViewAccessorRS(java.lang.String vaName)
public final ApplicationModule getApplicationModule()
public final ViewDefImpl getViewDef()
public boolean isSubclassRow()
public java.util.HashMap<java.lang.String,java.util.HashMap> getCtrlHints(java.util.List<java.lang.String> attrNames, java.lang.String localeName)
public final boolean hasExtendedViewDef()
public AttributeDef lookupAttributeDef(java.lang.String attrName)
lookupAttributeDef
in interface InternalViewRowInterface
public AttributeDef findAttributeDef(java.lang.String attrName)
public int getAttributeIndexOf(java.lang.String attrName)
getAttributeIndexOf
in interface AttributeList
getAttributeIndexOf
in class RowImpl
attrName
- the alias of the attribute.public java.lang.String[] getAttributeNames()
AttributeList
getAttributeNames
in interface AttributeList
public java.lang.Object[] getAttributeValues()
AttributeList
getAttributeValues
in interface AttributeList
public java.lang.Object getExprVarVal(java.lang.String varName)
getExprVarVal
in interface ExprValueSupplier
getExprVarVal
in class RowImpl
protected EntityImpl[] createEntities()
protected EntityImpl[] createMissingEntitiesFromViewDef(ViewDefImpl viewDef, int[] eoIndices, EntityImpl[] entities, java.sql.ResultSet resultSet, AttributeList initValues, boolean isNewRow, ApplicationModule viewAccessorAM)
protected void setStateOnEntity(EntityImpl entity, int state)
public void lock()
public void revert()
public final void revertRow()
public final void revertRowAndContainees()
public void refresh(int refreshMode)
Row
refreshMode
should be a combination of REFRESH_...
.
See REFRESH_...
constants for further information.
public void remove()
remove
on the updateable Entity Rows that are referenced by this View Object Row.
After the referenced, updateable entity rows have been removed this method
will remove the View Object Row from the View Object's RowSet.public void removeFromCollection()
Row
This method differs from
in that
it just removes the row from the collection. It does not
remove the underlying Entity row(s) or database row(s).
However, once the row is removed, it cannot be used any more.
If you want to remove the row from the collection and insert it elsewhere,
call Row.remove()
.Row.removeAndRetain()
removeFromCollection
in interface Row
public void removeAndRetain()
Row
This method differs from
in that
it just removes the row from the collection. It does not
remove the underlying Entity row(s) or database row(s).
Row.remove()
This method also differs from
in that after the row is removed from the collection, it can be inserted
back into the collection at another location.Row.removeFromCollection()
removeAndRetain
in interface Row
public int getEntityCount()
public final EntityImpl getEntity(int index)
index
- the index of the Entity.public final Entity getEntityForAttribute(java.lang.String attrName)
attrName
- name of an attributepublic final AttributeDefImpl getEntityAttrForAttribute(java.lang.String attrName)
@Concealed protected EntityImpl[] getEntitiesInternal()
public EntityImpl[] getEntities()
This method makes a copy of the internal list of Entity rows and returns that copy to the caller.
protected void setEntities(EntityImpl[] rows)
This method is called by framework, after entites are created for this row. This must be protected because subclasses can create their own entity instances and have the viewrow manage them.
For example, assume there is a ViewRow on the Doc Entity where Doc has subclasses PO and Req, the ViewRow subclass can create PO/Req instances of entities based on some logic and have ViewRow manage them as an entity of type Doc.
protected void setEntity(int index, EntityImpl row)
index
) for this view row.
A view row is based on entity rows. This method can be used
to set the entity row for the specified entity index. For
example, a view row may consist of two entity rows, Emp
and Dept. To set the entity row for the Dept part, one
can call this method with index
of 1.
index
- index of the entitypublic final int getAttributeCount()
getAttributeCount
in interface AttributeList
getAttributeCount
in class RowImpl
public boolean isAttributeUpdateable(int index)
RowImpl
isAttributeUpdateable
in interface Row
isAttributeUpdateable
in class RowImpl
index
- the index of the attribute.public boolean isDead()
Row
public final boolean isAttributeChanged(java.lang.String attrName)
public void entityCacheAdd()
protected void populate(java.sql.ResultSet resultSet)
Populate this row from the ResultSet.
This is a Framework-internal method. This method is used to fill in entity-attributes from a JDBC ResultSet that is returned by executeQuery().
Note that the method works on the current row of the result set and any currecy change on the ResultSet could throw it off. This method is protected to let sub-ViewRows fill in custom-entities created based on data.
For example, if fax is a subtype of doc and based on a column value, either doc is created or a fax is created for a given entity type, this method may be used to create entities based on the data values. Note that the developer needs to know exact position of values in the JDBC ResultSet.
resultSet
- the JDBC ResultSet containing the row data.protected void populateAttribute(int index, java.lang.Object value)
RowImpl
populateAttribute
in class RowImpl
index
- an attribute position.value
- the value to be assigned to the attribute.protected void populateAttributeAsChanged(int index, java.lang.Object value)
public byte getNewRowState()
public byte getPostState()
protected RowSet findAssociatedObjects(java.lang.String name)
name
- that defines the associationpublic DBTransaction getDBTransaction()
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object other)
equals
in class java.lang.Object
other
- the object to which the ViewRowImpl should be compared.public java.lang.String getXMLElementTag()
public final org.w3c.dom.Node writeXML(long options, java.util.HashMap voAttrRules)
writeXML
in interface XMLInterface
writeXML
in class RowImpl
options
- a set of bit flags that will control the writeXML behavior.voAttrRules
- HashMap containing Definition names of ViewObjects and an
array of AttributeDef to render for a ViewObject of that definition type.protected void appendXMLElementNodes(org.w3c.dom.Document xmlDoc, org.w3c.dom.Node node, int depthCount, long options, java.util.HashMap voAttrMap, AttributeDef[] attrs)
Override this method to perform custom XML-rendering on a Row.
xmlDoc
- name of the XML document where the node resides.node
- the name of the Row object node where new nodes will be appended.depthCount
- number of child levels deep to appendrow nodes.options
- a set of bit flags that will control the writeXML behavior.voAttrMap
- of what attributes to xmlize for different ViewObjects.attrs
- an array of AttriubuteDefImpls.protected void appendXMLElementNodes(org.w3c.dom.Document xmlDoc, org.w3c.dom.Node node, int depthCount, long options, AttributeDefImpl[] attrs)
Override this method to perform custom XML-rendering on a Row.
xmlDoc
- name of the XML document where the node resides.node
- the name of the Row object node where new nodes will be appended.depthCount
- number of child levels deep to appendrow nodes.options
- a set of bit flags that will control the writeXML behavior.attrs
- an array of AttriubuteDefImpls.protected org.w3c.dom.Element renderAttributeInXMLElement(org.w3c.dom.Document xmlDoc, AttributeDefImpl ad, boolean explicitNull, byte version)
protected org.w3c.dom.Element renderAttributeInXMLElement(org.w3c.dom.Document xmlDoc, AttributeDefImpl ad, boolean explicitNull)
protected void readAttributeFromXMLElement(org.w3c.dom.Node rowElt, AttributeDefImpl ad)
public final void readXML(org.w3c.dom.Element rowElt, int depthCount)
remove()
on this row.readXML
in interface XMLInterface
readXML
in class RowImpl
rowElt
- name of the XML element.depthCount
- the number of child levels deep to which data should be read.public void setNewRowState(byte state)
setNewRowState
in interface Row
setNewRowState
in class RowImpl
state
- This could be STATUS_NEW or STATUS_INITIALIZED.public java.lang.String getElementTagName()
getElementTagName
in interface XmlSerializable
public void writeAsXml(XmlOutput out, org.w3c.dom.Node node, Criteria rules)
writeAsXml
in interface XmlSerializable
public java.lang.Object getAttributeInternal(int index, byte version)
public final java.lang.Object getOriginalAttributeValue(java.lang.String attrName)
public void writeAsXml(XmlOutput output, org.w3c.dom.Node node, Criteria rules, byte version)
protected VariableValueManager getParentVariableManager()
getParentVariableManager
in class RowImpl
protected void copyFrom(ViewRowImpl other)
other
- protected void checkForOuterJoins(int[] eoIndices, EntityImpl[] initEntities)
protected boolean isViewAccessorAttribute(int indexAttribute)
indexAttribute
- The index of the attribute.protected void setEffectiveDateOnEntities()
protected void refreshViewAccessor(ViewAccessorDef va, java.util.Map attrNameValues, RowSet rs)
refreshViewAccessor
in class RowImpl
protected boolean isRefreshRequired(ViewAccessorDef va, java.lang.String[] attrNames, java.lang.Object[] attrValues, RowSet rs)
isRefreshRequired
in class RowImpl
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.Object getEffectiveDate()
getEffectiveDate
in class RowImpl
public void setEffectiveDateMode(int mode)
Row
setEffectiveDateMode
in interface Row
setEffectiveDateMode
in class RowImpl
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_INSERT_MODE
,
Row.EFFDT_UPDATE_NEW_EARLIEST_CHANGE_MODE
,
Row.EFFDT_ADJUST_EFFECTIVE_START_DATE_MODE
,
Row.EFFDT_ADJUST_EFFECTIVE_END_DATE_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
protected void doEffectiveDateRangeOperation(EffectiveDateRangeOperationParams params)
params
- EffectiveDateRangeOperationParamsEffectiveDateRangeOperationParams
public ViewAccessorDef findViewAccessorDef(java.lang.String name)
ViewAccessorDef
with the specified name.findViewAccessorDef
in class RowImpl
name
- The name of the ViewAccessorDef
.ViewAccessorDef
protected ViewObject findOrCreateLocalViewObject(ViewAccessorDef vaDef)
vaDef
- The ViewAccessorDef
.protected oracle.adf.share.security.authorization.PrivilegeHolder doAllowsOperation(java.lang.String operationName)
doAllowsOperation
in class RowImpl
@Concealed protected java.util.List getViewAccessorDefsInternal()
protected void markViewAccessorsDirty(java.lang.String[] attrNames)
markViewAccessorsDirty
in class RowImpl
@Concealed protected java.util.List _internal_dbg_debug_data()
public ViewDefImpl getViewLogicGroupDef()
@Concealed public java.lang.String getLookupDescription(java.lang.String attrName)
public java.util.List<java.lang.String> getSelectedListDisplayValues(java.lang.String attrName)
attrName
- Name of the attribute to usepublic java.lang.String getSelectedListDisplayValue(java.lang.String attrName)
attrName
- Name of the attribute to useprotected EntityReference getPrimaryEntityReference()
@Deprecated public ViewRowImpl.PostState getPrimaryPostState()
getPrimaryRowState()
instead.InvalidOperException
- if view row has no entity usagespublic ViewRowImpl.RowState getPrimaryRowState()
InvalidOperException
- if view row has no entity usages@Concealed protected void resetForwardAttributes(ViewAttributeDefImpl[] attrDefs, java.util.List<java.lang.String> skipAttrs)
@Concealed protected java.lang.Object evaluateLovFinderExpressionInternal(AttributeDefImpl attr, Row row)
@Concealed protected final java.lang.Object internalGetCachedCalcAttributeValue(AttributeDefImpl attr)
@Concealed protected void clearViewAccessorResultsRecursively()
@Concealed protected ViewAttributeDefImpl getRowHintsAttributeDef(int attrIndex)
public java.io.Serializable getClientChangeIndicator()
ConsistentRow
getClientChangeIndicator
in interface ConsistentRow
public boolean checkConsistency(java.io.Serializable changeIndicator)
ConsistentRow
checkConsistency
in interface ConsistentRow
@Concealed public java.lang.String getOwningAccessorName()
@Concealed public void resetHintsSuffix(java.lang.String suffix)
resetHintsSuffix
in interface InternalViewRowInterface
public java.lang.Object invokeRowFunction(java.lang.String methodId, java.lang.String scriptName)
public java.lang.Object invokeRowFunction(java.lang.String methodId, java.lang.String scriptName, java.lang.Class[] paramTypes, java.lang.Object[] paramValues)
public java.lang.String getKeyForLogger()
ContextualLogging
getKeyForLogger
in interface ContextualLogging
public java.lang.String getStringForLogger()
ContextualLogging
getStringForLogger
in interface ContextualLogging
@Concealed public boolean matchesHierarchyDef(AccessorHierarchyDefInterface hierarchyDef)
matchesHierarchyDef
in interface InternalViewRowInterface
hierarchyDef
- tree definition that contains a reference to the view def name@Concealed public ExprEval getRowOperations()
RowImpl
getRowOperations
in interface RowExprEvalSupplier
getRowOperations
in class RowImpl
@Concealed public final java.lang.String getAccessorStructureDefName(java.lang.String accName)
getAccessorStructureDefName
in interface InternalViewRowInterface
accName
- accessor name.