Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Business Components
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## oracle.jbo.server
Class ViewRowImpl

    java.lang.Object
      |
      +--oracle.jbo.common.BaseObject
            |
            +--oracle.jbo.server.RowImpl
                  |
                  +--oracle.jbo.server.ViewRowImpl

Direct Known Subclasses:
  EJBEntityImpl

public class ViewRowImpl
extends RowImpl
implements Row

A View Object Row. This class provides access to a View Object Row. The View Object Row can contain one or more Entity Object Rows in addition to derived attributes such as calculated columns.

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.

Since:
  JDeveloper 3.0
See Also:
  `RowImpl`, `Row`

Field Summary
`static java.lang.String` | `XML_POSTSTATE_REMOVE`
`static java.lang.String` | `XML_POSTSTATE_TAG`

Fields inherited from class oracle.jbo.common.BaseObject
`TRACE_EVERY_ALLOC, TRACE_NONE, TRACE_OCCASIONAL, TRACE_UNINITIALIZED`

Fields inherited from interface oracle.jbo.XMLInterface
`XML_OPT_ALL_ROWS, XML_OPT_ASSOC_CONSISTENT, XML_OPT_CHANGES_ONLY, XML_OPT_LIMIT_RANGE`

Constructor Summary
`ViewRowImpl()` Public constructor for this class.

Method Summary
`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` | `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.
`boolean` | `equals(java.lang.Object other)` Tests if the specified value is equal to this `ViewRowImpl` object.
`protected RowSet` | `findAssociatedObjects(java.lang.String name)` Finds Objects in a ViewRowSetImpl that follow the given association.
`ApplicationModule` | `getApplicationModule()` Gets the Application Module to which the containing View Object belongs.
`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.
`int` | `getAttributeIndexOf(java.lang.String alias)` 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.
`protected EntityImpl` | `getEntity(int index)` Gets the Entity at the given index.
`Entity` | `getEntityForAttribute(java.lang.String attrName)` Gets an entity object that contains the given attribute name.
`java.lang.Object` | `getHandle()` Creates a row identifier that is unique in the query collection.
`Key` | `getKey()` Returns the identifier object for this row.
`QueryCollection` | `getQueryCollection(java.lang.Object accessKey)` Gets the QueryCollection this row exists in.
`ViewObject` | `getViewObject()` Gets the View Object to which this row belongs.
`protected java.lang.String` | `getXMLElementTag()` Returns the XML-element tag for this row.
`int` | `hashCode()` Computes an integer hash code for this `ViewRowImpl` object
`boolean` | `isAttributeUpdateable(int index)` Tests if an attribute is updateable.
`void` | `lock()` Locks the referenced Entity Rows.
`protected void` | `populate(java.sql.ResultSet resultSet)` Internal: Applications should not use this method.
`protected void` | `populateAttribute(int index, java.lang.Object 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` | `remove()` Deletes the row.
`protected org.w3c.dom.Element` | `renderAttributeInXMLElement(org.w3c.dom.Document xmlDoc, AttributeDefImpl ad, boolean explicitNull)`
`void` | `revert()` Reverts this row back to its 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 `get` XXX`()` method.
`protected void` | `setEntities(EntityImpl[] rows)` Sets the entities that this view row is composed of.
`void` | `validate()` Calls validate on each this view row's Entity Objects.

Methods inherited from class oracle.jbo.server.RowImpl
`createXMLDefinition, getAttributeInternal, printXMLDefinition, readXML, setAttributeInternal, writeXML, writeXML`

Methods inherited from class oracle.jbo.common.BaseObject
`dumpState, setTraceLevel, setTraceWriter`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### XML_POSTSTATE_TAG

    public static final java.lang.String XML_POSTSTATE_TAG

### XML_POSTSTATE_REMOVE

    public static final java.lang.String XML_POSTSTATE_REMOVE

Constructor Detail

### ViewRowImpl

    public ViewRowImpl()

  Public constructor for this class.

Method Detail

### create

    protected void create(AttributeList nvp)

  Initialization method to be over-ridden in generated code for custom defaulting.

  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.

  Overrides:
    create in class RowImpl
  Parameters:
    `nvp` - the list of attributtes.

### getQueryCollection

    public QueryCollection getQueryCollection(java.lang.Object accessKey)

  Gets the QueryCollection this row exists in.
  Returns:
    the QueryCollection that the row exists in.

### getHandle

    public java.lang.Object getHandle()

  Creates a row identifier that is unique in the query collection.

  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`

  Returns:
    a unique row identifier.

### getKey

    public Key getKey()

  Returns the identifier object for this row.
  Specified by:
    getKey in interface Row
  Overrides:
    getKey in class RowImpl
  Returns:
    the key of the row.

### validate

    public void validate()

  Calls validate on each this view row's Entity Objects.
  Specified by:
    validate in interface Row
  Overrides:
    validate in class RowImpl
  Throws:
    JboException - if validation fails.

### getAttributeInternal

    protected java.lang.Object getAttributeInternal(int index)

  Gets the value of the attribute by index. If the attribute is mapped to an entity-attribute, invoke that entity.getAttribute() with the mapped index. For all other attributes, return the value from the ViewRow's storage.

  Note that this is an "inner" accessor for an attribute and does not callout to the generated `get` XXX`()` method on a subclass of a `ViewRowImpl`. `getAttribute()` methods are the "outer" methods that callout to a subclass's `get` XXX`()` method where XXX is the name of the attribute.

  Overrides:
    getAttributeInternal in class RowImpl
  Parameters:
    `index` - the index of the attribute.
  Returns:
    the value of the column at the index.

### getAttribute

    public java.lang.Object getAttribute(int ix)

  Description copied from interface: AttributeList
  Selects the attribute at the given index.
  Tags copied from interface: AttributeList
  Parameters:
    `index` - an integer in the range `0` to `getAttributeCount() - 1`.
  Returns:
    the attribute associated with `index`.

### getAttribute

    public final java.lang.Object getAttribute(java.lang.String name)

  Gets the value of an attribute by name.
  Parameters:
    `name` - the name of the attribute.
  Returns:
    the value of the attribute.

### setAttribute

    public final void setAttribute(java.lang.String name,
                                   java.lang.Object val)

  Sets the value of an attribute by name.
  Parameters:
    `name` - the name of the attribute.
    `val` - the value of the attribute.

### setAttribute

    public void setAttribute(int index,
                             java.lang.Object val)

  Sets an attribute.

  This method performs a type-check on the value, so that it matches the Java type of the attribute.

  Parameters:
    `index` - the index of the attribute.
    `val` - the new value.
  Throws:
    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.

### setAttributeInternal

    protected void setAttributeInternal(int index,
                                        java.lang.Object val)

  This is an "inner" accessor for an attribute and does not call out to the `get` XXX`()` method. This method sets the value to the mapping entity attribute or stores the value in ViewRow cache for the given attribute.

  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.

  Overrides:
    setAttributeInternal in class RowImpl
  Parameters:
    `index` - The index of the attribute.
    `val` - The value.
  Throws:
    ReadOnlyAttrException - if the attribute is not updateable.
    AttrSetValException - if any validation logic fails while setting this attribute to the mapped Entity attribute.

### getViewObject

    public final ViewObject getViewObject()

  Gets the View Object to which this row belongs.
  Returns:
    the View Object.

### getApplicationModule

    public final ApplicationModule getApplicationModule()

  Gets the Application Module to which the containing View Object belongs.
  Returns:
    an Application Module.

### getAttributeIndexOf

    public int getAttributeIndexOf(java.lang.String alias)

  Gets the index of the attribute, given it's name.
  Overrides:
    getAttributeIndexOf in class RowImpl
  Parameters:
    `alias` - the alias of the attribute.
  Returns:
    the attribute's index.

### createEntities

    protected EntityImpl[] createEntities()

  Creates blank instances of the Entity Objects that this row is composed of. Advanced method used by subclasses to create their own instances of entities based on custom-logic to bypass entity-creation from the framework.
  Returns:
    array of EntityImpls that is then set as the array of Entities this ViewRow is composed of.

### lock

    public void lock()

  Locks the referenced Entity Rows. This method uses the design-time View Object metadata to determine which of the Entity Rows that are referenced by the View Object are updateable and should consequently be locked.
  Specified by:
    lock in interface Row
  Overrides:
    lock in class RowImpl
  Tags copied from interface: Row
  Throws:
    JboException - a runtime exception, if an exception occurs during access.

### revert

    public void revert()

  Reverts this row back to its initial state. If a row is used in multiple View Objects, this operation's effect will be visible to all.

### remove

    public void remove()

  Deletes the row. This method will invoke `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.
  Specified by:
    remove in interface Row
  Overrides:
    remove in class RowImpl
  Tags copied from interface: Row
  Throws:
    JboException - a runtime exception, if an exception occurs during access.

### getEntity

    protected final EntityImpl getEntity(int index)

  Gets the Entity at the given index. Used in generated code for viewrow to get to the attribute mapped to an entity.
  Parameters:
    `index` - the index of the Entity.

### getEntityForAttribute

    public final Entity getEntityForAttribute(java.lang.String attrName)

  Gets an entity object that contains the given attribute name.
  Parameters:
    `attrName` - name of an attribute
  Returns:
    an entity object.

### setEntities

    protected final void setEntities(EntityImpl[] rows)

  Sets the entities that this view row is composed of.

  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`.

### getAttributeCount

    public final int getAttributeCount()

  Gets the attribute count in this ViewRow.
  Overrides:
    getAttributeCount in class RowImpl
  Returns:
    the number of attributes.

### isAttributeUpdateable

    public boolean isAttributeUpdateable(int index)

  Description copied from interface: Row
  Tests if an attribute is updateable.
  Specified by:
    isAttributeUpdateable in interface Row
  Overrides:
    isAttributeUpdateable in class RowImpl
  Tags copied from interface: Row
  Parameters:
    `index` - the index of the attribute.
  Returns:
    `true` if the row is marked `UPDATEABLE`, or if the row is marked `UPDATEABLE_WHILE_NEW` and the current row is new.

### populate

    protected void populate(java.sql.ResultSet resultSet)

  Internal: Applications should not use this method.

  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.

  Parameters:
    `resultSet` - the JDBC ResultSet containing the row data.

### populateAttribute

    protected void populateAttribute(int index,
                                     java.lang.Object value)

  Overrides:
    populateAttribute in class RowImpl

### populateAttributeAsChanged

    protected void populateAttributeAsChanged(int index,
                                              java.lang.Object value)

### findAssociatedObjects

    protected RowSet findAssociatedObjects(java.lang.String name)

  Finds Objects in a ViewRowSetImpl that follow the given association.
  Parameters:
    `name` - that defines the association
  Returns:
    A set of associated object/s.

### hashCode

    public int hashCode()

  Computes an integer hash code for this `ViewRowImpl` object
  Overrides:
    hashCode in class java.lang.Object
  Returns:
    the hash code of this `ViewRowImpl` object.

### equals

    public boolean equals(java.lang.Object other)

  Tests if the specified value is equal to this `ViewRowImpl` object.
  Overrides:
    equals in class java.lang.Object
  Parameters:
    `other` - the object to which the `ViewRowImpl` should be compared.
  Returns:
    `true` if the specified object is equal to the this `ViewRowImpl`.

### getXMLElementTag

    protected java.lang.String getXMLElementTag()

  Returns the XML-element tag for this row. If no custom-property (of the name `XML_ROW_ELEMENT`) is found, it returns the name of the View Object + the suffix "Row". For example, "EmpViewRow".

### appendXMLElementNodes

    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.

  Override this method to perform custom XML-rendering on a Row.

  Parameters:
    `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.

### renderAttributeInXMLElement

    protected org.w3c.dom.Element renderAttributeInXMLElement(org.w3c.dom.Document xmlDoc,
                                                              AttributeDefImpl ad,
                                                              boolean explicitNull)

### readAttributeFromXMLElement

    protected void readAttributeFromXMLElement(org.w3c.dom.Node rowElt,
                                               AttributeDefImpl ad)

### readXML

    public final void readXML(org.w3c.dom.Element rowElt,
                              int depthCount)

  Reads the content of the row and updates the attributes, from given XML document. If there's a process instruction in the row like: <?bc4j remove?> then calls `remove()` on this row.
  Overrides:
    readXML in class RowImpl
  Parameters:
    `rowElt` - name of the XML element.
    `depthCount` - the number of child levels deep to which data should be read.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Business Components
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD