Oracle Fusion Middleware Java API Reference for Oracle ADF Model
11g Release 2 (11.1.2.1.0)

E17483-02

oracle.jbo.domain
Class Array

java.lang.Object
  extended by oracle.jbo.domain.Array
All Implemented Interfaces:
java.io.Serializable, BlobDomainInterface, DomainInterface, DomainOwnerInterface, LobInterface, MarshalledDomain, MutableDomainInterface, XMLDomainInterface, oracle.jdbc.internal.ObjectData, ORAData

public class Array
extends java.lang.Object
implements LobInterface, DomainOwnerInterface, XMLDomainInterface, ORAData, java.io.Serializable, MarshalledDomain

This class provides a lightweight wrapper for oracle.sql.ARRAY, the Java representation of the ARRAY database type. This wrapper allows an instance of the oracle.sql.ARRAY to be used as an immutable Domain object. This class also provides a wrapper for the data that comes from nested tables and nested arrays.

Since:
JDeveloper 3.0
See Also:
Serialized Form
javabean.class
name=Array

Field Summary
protected  int mOwnerAttrIndex
          Index of the attribute in the domain owner's container.
static java.lang.String XML_ELEM_TYPE
           
static java.lang.String XML_SQL_TYPE
           
 
Constructor Summary
protected Array()
          Constructs an instance of this class.
  Array(ArrayDescriptor descriptor, java.sql.Connection conn, byte[] bytes)
          Internal: Applications should not use this constructor.
  Array(ArrayDescriptor type, java.sql.Connection conn, java.lang.Object elements)
          Internal: Applications should not use this constructor.
  Array(Datum d)
          Internal: Applications should not use this constructor.
  Array(java.util.List list)
          This constructor does not verify that this array's length w.r.t the corresponding database/source description.
  Array(java.lang.Object[] elements)
          This constructor does not verify that this array's length w.r.t the corresponding database/source description.
 
Method Summary
 void domainToBeModified(DomainInterface d)
          Notification method that this domain calls whenever any of its attribute values are about to be modified.
 boolean equals(java.lang.Object obj)
          Tests this for equality with another object.
 java.lang.Object[] getArray()
          Returns the elements of this array into an Object array.
 java.lang.Object getData()
          Internal: Applications should not use this method.
 java.lang.Class getElemType()
          Contents of this array should be of this type.
protected  java.lang.String getElemXMLElementTag()
          Returns the classname of this domain, appended with the name of the attribute as XML-element tag for this domain-attribute.
 java.lang.Object[] getInternalArray()
           
 java.util.List getList()
          Returns the elements of this array in a List object.
static ORADataFactory getORADataFactory()
          Internal: Applications should not use this method.
 DomainOwnerInterface getOwner()
          Returns the reference to owner of this domain (could be the row that this domain instance belongs to.)
 int getOwnerAttributeIndex()
           
 java.lang.String getRemoteIdString()
           
 long getSize()
           
 Node getXMLContentNode(Document xmlDoc)
          Creates the XML node in the given xml document for this domain's data.
static XMLDomainFactory getXMLDomainFactory(java.lang.Class attrClass)
           
protected  java.lang.String getXMLElementTag()
          Returns this class name as XML-element tag for this Array domain object.
 int hashCode()
          Returns a hash code value based on the array elements in the object.
protected  boolean isElemXMLCData()
          Returns false always.
 void loadFromDatabase(Transaction transaction)
          Internal: Applications should not use this method.
 ResponseValues marshal()
           
 void prepareForDML(java.lang.Object context)
          Internal: Applications should not use this method.
 java.lang.String printXMLDefinition(java.util.Hashtable allDefs, java.io.PrintWriter pw, boolean bContainees)
          Prints the DTD info for this domain in the given print writer.
protected  void readAttrsFromXML(Element rowElt)
          Reads all the attribute values from the XML-element and sets them into this row.
 void saveToDatabase(Transaction transaction)
          Internal: Applications should not use this method.
 void saveToDatabase(Transaction transaction, java.lang.Object postedSQLObject)
          Internal: Applications should not use this method.
 void setContext(DomainOwnerInterface owner, Transaction trans, java.lang.Object ctx)
          Internal: Applications should not use this method.
 void syncClientLob(LobInterface old)
          Synchronize client-side data from the given lob
 void syncServerLob(LobInterface oldObj)
          Synchronize the streams from an older version of this object so that this version works with the opened streams (if any).
 Datum toDatum(java.sql.Connection conn)
          Internal: Applications should not invoke this method.
 void useElementType(java.lang.Class claz)
          If this array's element Type is not already set, use the given class as the element Type for this array.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XML_ELEM_TYPE

public static final java.lang.String XML_ELEM_TYPE
See Also:
Constant Field Values

XML_SQL_TYPE

public static final java.lang.String XML_SQL_TYPE
See Also:
Constant Field Values

mOwnerAttrIndex

protected int mOwnerAttrIndex
Index of the attribute in the domain owner's container.

Constructor Detail

Array

protected Array()
         throws java.sql.SQLException
Constructs an instance of this class.

Throws:
java.sql.SQLException

Array

public Array(java.lang.Object[] elements)
This constructor does not verify that this array's length w.r.t the corresponding database/source description. Length validation is performed when this array is set into a Bc4J row as an attribute.


Array

public Array(java.util.List list)
This constructor does not verify that this array's length w.r.t the corresponding database/source description. Length validation is performed when this array is set into a Bc4J row as an attribute.


Array

public Array(ArrayDescriptor type,
             java.sql.Connection conn,
             java.lang.Object elements)
      throws java.sql.SQLException
Internal: Applications should not use this constructor.

Throws:
java.sql.SQLException

Array

public Array(ArrayDescriptor descriptor,
             java.sql.Connection conn,
             byte[] bytes)
      throws java.sql.SQLException
Internal: Applications should not use this constructor.

Throws:
java.sql.SQLException

Array

public Array(Datum d)
      throws java.sql.SQLException
Internal: Applications should not use this constructor.

Throws:
java.sql.SQLException
Method Detail

getORADataFactory

public static ORADataFactory getORADataFactory()
Internal: Applications should not use this method.


useElementType

public void useElementType(java.lang.Class claz)
If this array's element Type is not already set, use the given class as the element Type for this array.


toDatum

public Datum toDatum(java.sql.Connection conn)
              throws java.sql.SQLException
Internal: Applications should not invoke this method.

Converts this Array Domain object back into an SQL ARRAY object.

Specified by:
toDatum in interface ORAData
Parameters:
conn - OracleConnection Not used.
Returns:
A Datum containing ARRAY object.
Throws:
SQLException - Never.
java.sql.SQLException

getData

public java.lang.Object getData()
Internal: Applications should not use this method.

Specified by:
getData in interface DomainInterface
Returns:
a formatted value object.

domainToBeModified

public void domainToBeModified(DomainInterface d)
Notification method that this domain calls whenever any of its attribute values are about to be modified. This Domain should always notify its owner.

Specified by:
domainToBeModified in interface DomainOwnerInterface
Parameters:
d - the domain being modified.

setContext

public void setContext(DomainOwnerInterface owner,
                       Transaction trans,
                       java.lang.Object ctx)
Internal: Applications should not use this method.

Specified by:
setContext in interface DomainInterface

getRemoteIdString

public java.lang.String getRemoteIdString()
Specified by:
getRemoteIdString in interface LobInterface

getArray

public java.lang.Object[] getArray()
Returns the elements of this array into an Object array. The elements are converted to the Java types corresponding to the SQL type of the data in the original array.

Returns:
an Object array that contains the array elements.
javabean.property

getList

public java.util.List getList()
Returns the elements of this array in a List object. The elements are converted to the Java types corresponding to the SQL type of the data in the original array.

Returns:
a List that contains the array elements.
javabean.property

getInternalArray

public java.lang.Object[] getInternalArray()

getElemType

public java.lang.Class getElemType()
Contents of this array should be of this type.


equals

public boolean equals(java.lang.Object obj)
Tests this for equality with another object.

Overrides:
equals in class java.lang.Object
Parameters:
obj - an arbitrary Object.
Returns:
true if conversion was successful and the converted argument is identical to this.

hashCode

public int hashCode()
Returns a hash code value based on the array elements in the object.

Overrides:
hashCode in class java.lang.Object
Returns:
hash code value of the object

getXMLElementTag

protected java.lang.String getXMLElementTag()
Returns this class name as XML-element tag for this Array domain object. Override this method to return a custom XML-element tag for this domain.


getElemXMLElementTag

protected java.lang.String getElemXMLElementTag()
Returns the classname of this domain, appended with the name of the attribute as XML-element tag for this domain-attribute. Override this method to return a custom XML-element tag for the given attribute.


isElemXMLCData

protected boolean isElemXMLCData()
Returns false always. Override to determine whether the given domain-attribute is to be rendered in CDATA format in xml.


getXMLContentNode

public Node getXMLContentNode(Document xmlDoc)
Creates the XML node in the given xml document for this domain's data.

Specified by:
getXMLContentNode in interface XMLDomainInterface
Parameters:
xmlDoc - the XML document in which the node is to be created.

readAttrsFromXML

protected void readAttrsFromXML(Element rowElt)
Reads all the attribute values from the XML-element and sets them into this row. If the XML has a process instruction of the form: <?bc4j remove?> then, invokes remove() on this row.

Parameters:
rowElt - the XML element from which the attribute values should be read.

printXMLDefinition

public java.lang.String printXMLDefinition(java.util.Hashtable allDefs,
                                           java.io.PrintWriter pw,
                                           boolean bContainees)
Prints the DTD info for this domain in the given print writer. Returns the DTD string to be added to this domain's container entity/domain.

The allDefs hashtable contains predefined XML definitions and is passed by whatever calls this method.

Specified by:
printXMLDefinition in interface XMLDomainInterface
Parameters:
allDefs - a hashtable of predefined XML definitions passed from whatever calls this method.
pw - print writer into which the defnition is being printed.
bContainees - if true, prints definitions of contained objects.

getXMLDomainFactory

public static XMLDomainFactory getXMLDomainFactory(java.lang.Class attrClass)

loadFromDatabase

public void loadFromDatabase(Transaction transaction)
                      throws java.lang.Exception
Internal: Applications should not use this method.

Loads the actual data of the LOB-type database attribute into memory.

The transaction argument is needed to perform an additional query into the database to extract the data.

This method does not need to be invoked for a new attribute.

Specified by:
loadFromDatabase in interface BlobDomainInterface
Parameters:
transaction - the DBTransactionImpl of the current Application Module.
Throws:
java.lang.Exception

saveToDatabase

public void saveToDatabase(Transaction transaction)
                    throws java.lang.Exception
Internal: Applications should not use this method.

Saves data in memory to a database LOB-type attribute.

The transaction argument is is needed to perform an additional query into the database to write the data.

This method does not need to be invoked if this attribute's data has not changed.

Specified by:
saveToDatabase in interface BlobDomainInterface
Parameters:
transaction - the DBTransactionImpl instance of the current Application Module.
Throws:
java.lang.Exception

saveToDatabase

public void saveToDatabase(Transaction transaction,
                           java.lang.Object postedSQLObject)
                    throws java.lang.Exception
Internal: Applications should not use this method.

Uses the given transaction context to store data back into the database using the LOB-locator which should be set before this method is invoked.

Specified by:
saveToDatabase in interface BlobDomainInterface
Throws:
java.lang.Exception

prepareForDML

public void prepareForDML(java.lang.Object context)
Description copied from interface: BlobDomainInterface
Internal: Applications should not use this method.

Specified by:
prepareForDML in interface BlobDomainInterface

syncClientLob

public void syncClientLob(LobInterface old)
Description copied from interface: LobInterface
Synchronize client-side data from the given lob

Specified by:
syncClientLob in interface LobInterface

syncServerLob

public void syncServerLob(LobInterface oldObj)
Description copied from interface: LobInterface
Synchronize the streams from an older version of this object so that this version works with the opened streams (if any).

Specified by:
syncServerLob in interface LobInterface

getOwner

public DomainOwnerInterface getOwner()
Description copied from interface: LobInterface
Returns the reference to owner of this domain (could be the row that this domain instance belongs to.)

Specified by:
getOwner in interface LobInterface

getOwnerAttributeIndex

public int getOwnerAttributeIndex()
Specified by:
getOwnerAttributeIndex in interface LobInterface

getSize

public long getSize()
Specified by:
getSize in interface LobInterface

marshal

public ResponseValues marshal()
Specified by:
marshal in interface MarshalledDomain

Oracle Fusion Middleware Java API Reference for Oracle ADF Model
11g Release 2 (11.1.2.1.0)

E17483-02

Copyright © 1997, 2011, Oracle. All rights reserved.