public abstract class Struct extends java.lang.Object implements LobInterface, DomainOwnerInterface, XMLDomainInterface, AttributeList, ORAData, OracleData, java.io.Serializable, MarshalledDomain
The oracle.jbo.domain.StructDomain class is the Java representation of the underlying database type that you must use if you want to exploit the domain feature of Business Components for Java.
| Modifier and Type | Field and Description | 
|---|---|
| protected XMLDomainFactory[] | mAttrXmlFacFactories for each of the attibutes if they have one. | 
| protected java.util.HashMap | mContextInternal: Applications should not use this field. | 
| protected java.lang.Object[] | mDataInternal: Applications should not use this field. | 
| protected int | mOwnerAttrIndexIndex of the attribute in the domain owner's container. | 
| protected Transaction | mTxnInternal: Applications should not use this field. | 
| protected XMLDomainFactory | mXmlFacThe factory object that creates an instance of this STRUCT given
 an XML element. | 
| Modifier | Constructor and Description | 
|---|---|
| protected  | Struct()Constructs an instance of this class. | 
| protected  | Struct(Datum d)Internal: Applications should not use this constructor. | 
| Modifier and Type | Method and Description | 
|---|---|
| int[] | buildAttrSQLTypes()Returns an array of the SQL datatypes of the attributes in this
 StructDomain object. | 
| 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  thisfor equality with another object. | 
| static void | fillObjectAttributeDefs(AttributeList al,
                       StructureDef def,
                       java.lang.String[] attrNames,
                       AttributeDef[] ads) | 
| java.lang.Object | getAttribute(int index)Returns the attribute from this StructDomain object, given its index. | 
| java.lang.Object | getAttribute(java.lang.String name)Returns the attribute from this StructDomain object, given its name. | 
| int | getAttributeCount()Returns the number of attributes in this StructDomain object. | 
| int | getAttributeIndexOf(java.lang.String name)Returns the index of a named attribute in this StructDomain object. | 
| 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. | 
| abstract ORADataFactory[] | getAttrORADataFactories()Returns factories that oracle.sql requires to create the attributes of
 this structure. | 
| abstract int[] | getAttrSQLTypes()Returns the SQL types for the attributes of the structure. | 
| protected java.lang.String | getAttrXMLElementTag(AttributeDef ad)Returns the class name of this domain, appended with the name of the
 attribute  as xml-element tag for this domain-attribute. | 
| abstract java.lang.String | getColumnType()Returns the column type of the database column that corresponds to
 this STRUCT. | 
| java.lang.Object | getData()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() | 
| protected DomainOwnerInterface | getOwnerRow() | 
| java.lang.String | getRemoteIdString() | 
| long | getSize() | 
| static java.lang.Object | getStructAttribute(AttributeList inAttrList,
                  StructureDef inStructDef,
                  java.lang.String fullAttrName) | 
| abstract StructureDef | getStructureDef()Returns the structure definition, that describes the details of the
 attributes, of this domain. | 
| 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)Internal: Applications should not use this method. | 
| protected java.lang.String | getXMLElementTag()Returns this class name as xml-element tag for this Struct domain object. | 
| int | hashCode()Computes a hash code for  thisStructDomain object. | 
| protected void | initAttrXMLDomainFactories(AttributeDef[] attrs)Internal: Applications should not use this method. | 
| protected abstract void | initStructureDef()Initializes the structure definition of this object and its
 attribute definitions. | 
| protected boolean | isAttrXMLCData(AttributeDef ad)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. | 
| static StructureDef | resolveAndGetStructureDef(java.lang.Class objectDomainClz) | 
| 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 | setAttribute(int index,
            java.lang.Object value)Sets the value of an attribute in this StructDomain, at the given index
 position. | 
| void | setAttribute(java.lang.String name,
            java.lang.Object value)Sets the value of an attribute in this StructDomain object, given the
 attributes's name. | 
| void | setAttributeNoCheck(int index,
                   java.lang.Object value)Sets the value of an attribute in this StructDomain object, at the given index
 position. | 
| void | setContext(DomainOwnerInterface owner,
          Transaction trans,
          java.lang.Object ctx)Internal: Applications should not use this method. | 
| static void | setStructAttribute(AttributeList inAttrList,
                  StructureDef inStructDef,
                  java.lang.String fullAttrName,
                  java.lang.Object value) | 
| void | syncClientLob(LobInterface old)Synchronize client-side data from the given lob | 
| void | syncServerLob(LobInterface old)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 use this method. | 
| java.lang.Object | toJDBCObject(java.sql.Connection connection) | 
| java.lang.String | toString()Internal: Applications should not use this method. | 
protected java.lang.Object[] mData
protected transient Transaction mTxn
protected java.util.HashMap mContext
protected int mOwnerAttrIndex
protected XMLDomainFactory mXmlFac
protected XMLDomainFactory[] mAttrXmlFac
protected Struct()
          throws java.sql.SQLException
java.sql.SQLExceptionprotected Struct(Datum d) throws java.sql.SQLException
d - a datum object.java.sql.SQLExceptionpublic abstract java.lang.String getColumnType()
public abstract StructureDef getStructureDef()
public abstract int[] getAttrSQLTypes()
public abstract ORADataFactory[] getAttrORADataFactories()
protected abstract void initStructureDef()
public static StructureDef resolveAndGetStructureDef(java.lang.Class objectDomainClz)
public java.lang.Object getData()
 Converts this to a Struct JDBC object.
getData in interface DomainInterfacethis, or  null,
 if the conversion fails.public void domainToBeModified(DomainInterface d)
domainToBeModified in interface DomainOwnerInterfaced - the domain being modified.public void setContext(DomainOwnerInterface owner, Transaction trans, java.lang.Object ctx)
setContext in interface DomainInterfacepublic boolean equals(java.lang.Object obj)
this for equality with another object.
  The argument is converted to a STRUCT object, if necessary.
equals in class java.lang.Objectobj - an arbitrary Object.true if conversion was successful and the converted
 argument is identical to this.public int hashCode()
this StructDomain object.hashCode in class java.lang.Objectthis StructDomain object.public java.lang.String toString()
 For testing purposes only. Converts this Struct
 object to a text representation.
toString in class java.lang.Objectpublic Datum toDatum(java.sql.Connection conn) throws java.sql.SQLException
 Converts this Struct Domain object back into an
 SQL STRUCT object.
public java.lang.Object getAttribute(int index)
getAttribute in interface AttributeListindex - index for the attribute in the StructDomain object.public java.lang.Object getAttribute(java.lang.String name)
getAttribute in interface AttributeListname - name for the attribute in the StructDomain object.public void setAttribute(int index,
                java.lang.Object value)
setAttribute in interface AttributeListindex - index for the attribute in the StructDomain object.value - value for the attribute.public java.lang.String getRemoteIdString()
getRemoteIdString in interface LobInterfacepublic void setAttributeNoCheck(int index,
                       java.lang.Object value)
index - index for the attribute in the StructDomain object.value - value for the attribute.public void setAttribute(java.lang.String name,
                java.lang.Object value)
setAttribute in interface AttributeListname - name of the attribute in the StructDomain object.value - value for the attribute.public int getAttributeCount()
getAttributeCount in interface AttributeListpublic int getAttributeIndexOf(java.lang.String name)
getAttributeIndexOf in interface AttributeListname - name of an attribute in this StructDomain object.public int[] buildAttrSQLTypes()
public ResponseValues marshal()
marshal in interface MarshalledDomainprotected java.lang.String getXMLElementTag()
protected java.lang.String getAttrXMLElementTag(AttributeDef ad)
ad - the name of an AttributeDef.protected boolean isAttrXMLCData(AttributeDef ad)
ad - name of an AttributeDef.public Node getXMLContentNode(Document xmlDoc)
getXMLContentNode in interface XMLDomainInterfacexmlDoc - name of the XML document in which the node should be created.protected void readAttrsFromXML(Element rowElt)
public java.lang.String printXMLDefinition(java.util.Hashtable allDefs,
                                  java.io.PrintWriter pw,
                                  boolean bContainees)
The allDefs hashtable contains predefined XML definitions and is passed by whatever calls this method.
printXMLDefinition in interface XMLDomainInterfaceallDefs - 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.public static XMLDomainFactory getXMLDomainFactory(java.lang.Class attrClass)
protected void initAttrXMLDomainFactories(AttributeDef[] attrs)
public void loadFromDatabase(Transaction transaction) throws java.lang.Exception
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.
loadFromDatabase in interface BlobDomainInterfacetransaction - the DBTransactionImpl
 of the current Application Module.java.lang.Exceptionpublic void saveToDatabase(Transaction transaction) throws java.lang.Exception
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.
saveToDatabase in interface BlobDomainInterfacetransaction - the DBTransactionImpl
 instance of the current Application Module.java.lang.Exceptionpublic void saveToDatabase(Transaction transaction, java.lang.Object postedSQLObject) throws java.lang.Exception
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.
saveToDatabase in interface BlobDomainInterfacejava.lang.Exceptionpublic void prepareForDML(java.lang.Object context)
BlobDomainInterfaceprepareForDML in interface BlobDomainInterfacepublic void syncClientLob(LobInterface old)
LobInterfacesyncClientLob in interface LobInterfacepublic void syncServerLob(LobInterface old)
LobInterfacesyncServerLob in interface LobInterfacepublic DomainOwnerInterface getOwner()
LobInterfacegetOwner in interface LobInterfacepublic int getOwnerAttributeIndex()
getOwnerAttributeIndex in interface LobInterfaceprotected DomainOwnerInterface getOwnerRow()
public long getSize()
getSize in interface LobInterfacepublic static void setStructAttribute(AttributeList inAttrList, StructureDef inStructDef, java.lang.String fullAttrName, java.lang.Object value)
public static java.lang.Object getStructAttribute(AttributeList inAttrList, StructureDef inStructDef, java.lang.String fullAttrName)
public static void fillObjectAttributeDefs(AttributeList al, StructureDef def, java.lang.String[] attrNames, AttributeDef[] ads)
public java.lang.String[] getAttributeNames()
AttributeListgetAttributeNames in interface AttributeListpublic java.lang.Object[] getAttributeValues()
AttributeListgetAttributeValues in interface AttributeListpublic java.lang.Object toJDBCObject(java.sql.Connection connection)
                              throws java.sql.SQLException
toJDBCObject in interface OracleDatajava.sql.SQLException