wt.graph
Class AbstractObjectGraph

java.lang.Object
  extended bywt.fc.WTObject
      extended bywt.graph.AbstractObjectGraph
All Implemented Interfaces:
Cloneable, DisplayIdentification, Externalizable, GraphModel, GraphNodeModel, NetFactor, NodeExpander, ObjectGraph, ObjectGraphNode, ObjectMappable, Persistable, Serializable, Walker
Direct Known Subclasses:
AbstractObjectGraphTemplate, ExportObjectGraph, ImportObjectGraph

public abstract class AbstractObjectGraph
extends WTObject
implements ObjectGraph, Externalizable

Provides a value-add "basic" implementation of an object graph abstraction. It wraps the object graph factory, and extends the notion of persistability by being a type of WTObject.

This "basic" implementation can be the customizaton point of where to begin specializing. Or alternatively specialization could start at its supertype the object graph for maximum flexibility.



Supported API: true

Extendable: false

See Also:
Serialized Form

Field Summary
private static String CLASSNAME
           
private  String edgeImpl
           
private  GraphEdgeModel[] edgeList
           
private  Boolean excluded
           
static long EXTERNALIZATION_VERSION_UID
           
private  ObjectReference graph
           
private  String id
           
private static int ID_UPPER_LIMIT
           
private  ObjectInfo info
           
private  Vector neighbor
           
private  ObjectGraphNodeExpander nodeExpander
           
private  String nodeImpl
           
private  GraphNodeModel[] nodeList
           
protected static long OLD_FORMAT_VERSION_UID
           
private static String RESOURCE
           
static String ROOT
          Label for the attribute.
private  ObjectReference rootReference
           
(package private) static long serialVersionUID
           
private  ObjectGraphCallback visitor
           
private  ObjectGraphWalker walkerImpl
           
 
Fields inherited from class wt.fc.WTObject
CREATE_TIMESTAMP, MODIFY_TIMESTAMP
 
Fields inherited from interface wt.graph.ObjectGraph
NODE_EXPANDER, ROOT_REFERENCE, VISITOR, WALKER_IMPL
 
Fields inherited from interface wt.fc.Persistable
IDENTITY, PERSIST_INFO, TYPE
 
Fields inherited from interface wt.graph.ObjectGraphNode
EXCLUDED, GRAPH, ID, INFO
 
Fields inherited from interface wt.util.graph.GraphNodeModel
NEIGHBOR
 
Fields inherited from interface wt.util.graph.GraphModel
EDGE_IMPL, EDGE_LIST, NODE_IMPL, NODE_LIST
 
Fields inherited from interface wt.identity.DisplayIdentification
DISPLAY_IDENTIFIER, DISPLAY_IDENTITY, DISPLAY_TYPE
 
Constructor Summary
AbstractObjectGraph()
           
 
Method Summary
 Object clone()
          

Supported API: false
private  void edgeImplValidate(String a_EdgeImpl)
           
 boolean equals(Object obj)
          Tests if two references refer to the same object.
 void expandNode(Persistable parentNode, Vector links, Vector nodes)
          Expands the node returning all of the links and nodes associated with the parent node.
 String getEdgeImpl()
          Gets the value of the attribute: EDGE_IMPL.
 GraphEdgeModel[] getEdgeList()
          Gets the value of the attribute: EDGE_LIST.
 ObjectReference getGraph()
          Gets the object for the association that plays role: GRAPH.
 String getId()
          Gets the value of the attribute: ID.
 ObjectInfo getInfo()
          

Supported API: false
 NodeExpander getNodeExpander()
          [Default implementation that] gets the object graph's node expander (i.e., the node).
 String getNodeImpl()
          Gets the value of the attribute: NODE_IMPL.
 GraphNodeModel[] getNodeList()
          Gets the value of the attribute: NODE_LIST.
 ObjectGraphNode getRoot()
          Gets the object for the association that plays role: ROOT.
 ObjectReference getRootReference()
          Gets the value of the attribute: ROOT_REFERENCE.
 Visitor getVisitor()
          [Default implementation that] gets the object graph's visitor.
 ObjectGraphWalker getWalkerImpl()
          Gets the object for the association that plays role: WALKER_IMPL.
private  void graphValidate(ObjectReference a_Graph)
           
 int hashCode()
          Returns a hash code for this object based upon its ObjectIdentifier.
private  void idValidate(String a_Id)
           
 boolean isExcluded()
          

Supported API: false
private  void nodeExpanderValidate(NodeExpander a_NodeExpander)
           
private  void nodeImplValidate(String a_NodeImpl)
           
 void readExternal(ObjectInput input)
          Reads the non-transient fields of this class from an external source.
 void readExternal(PersistentRetrieveIfc input)
          Used by Persistent Data Service to populate the persistent attributes of this class from a persistent store.
private  boolean readOldVersion(ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source, which is not the current version.
protected  boolean readVersion(AbstractObjectGraph thisObject, ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source.
 void setEdgeImpl(String a_EdgeImpl)
          Sets the value of the attribute: EDGE_IMPL.
 void setEdgeList(GraphEdgeModel[] a_EdgeList)
          Sets the value of the attribute: EDGE_LIST.
 void setExcluded(Boolean value)
          

Supported API: false
 void setGraph(ObjectReference a_Graph)
          Sets the object for the association that plays role: GRAPH.
 void setId(String a_Id)
          Sets the value of the attribute: ID.
 void setInfo(ObjectInfo info)
          

Supported API: false
 void setNodeExpander(NodeExpander node)
          [Default implementation that] sets the object graph's node expander (i.e., the node).
 void setNodeImpl(String a_NodeImpl)
          Sets the value of the attribute: NODE_IMPL.
 void setNodeList(GraphNodeModel[] a_NodeList)
          Sets the value of the attribute: NODE_LIST.
 void setRoot(ObjectGraphNode a_Root)
          Sets the object for the association that plays role: ROOT.
 void setRootReference(ObjectReference a_RootReference)
          Sets the value of the attribute: ROOT_REFERENCE.
 void setVisitor(Visitor visitor)
          [Default implementation that] sets the object graph's visitor.
 void setWalkerImpl(ObjectGraphWalker a_WalkerImpl)
          Sets the object for the association that plays role: WALKER_IMPL.
 void traverse()
          Traverses the root node.
 void traverse(Persistable root)
          Traverses the root node.
private  void visitorValidate(Visitor a_Visitor)
           
 void writeExternal(ObjectOutput output)
          Writes the non-transient fields of this class to an external source.
 void writeExternal(PersistentStoreIfc output)
          Used by Persistent Data Service to obtain the values of the persistent attributes of this class, so they can be written to a persistent store.
 
Methods inherited from class wt.fc.WTObject
checkAttributes, duplicate, finalize, getClassInfo, getCreateTimestamp, getDisplayIdentifier, getDisplayIdentity, getDisplayType, getIdentity, getModifyTimestamp, getPersistInfo, getType, initialize, readVersion, setPersistInfo, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface wt.fc.Persistable
checkAttributes, getIdentity, getPersistInfo, getType, setPersistInfo
 
Methods inherited from interface wt.fc.NetFactor
getClassInfo, getConceptualClassname
 

Field Detail

RESOURCE

private static final String RESOURCE
See Also:
Constant Field Values

CLASSNAME

private static final String CLASSNAME

ROOT

public static final String ROOT
Label for the attribute.

Supported API: false

See Also:
Constant Field Values

rootReference

private ObjectReference rootReference

visitor

private ObjectGraphCallback visitor

walkerImpl

private ObjectGraphWalker walkerImpl

nodeExpander

private ObjectGraphNodeExpander nodeExpander

ID_UPPER_LIMIT

private static int ID_UPPER_LIMIT

id

private String id

excluded

private Boolean excluded

info

private ObjectInfo info

graph

private ObjectReference graph

neighbor

private Vector neighbor

nodeList

private GraphNodeModel[] nodeList

edgeList

private GraphEdgeModel[] edgeList

nodeImpl

private String nodeImpl

edgeImpl

private String edgeImpl

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

EXTERNALIZATION_VERSION_UID

public static final long EXTERNALIZATION_VERSION_UID
See Also:
Constant Field Values

OLD_FORMAT_VERSION_UID

protected static final long OLD_FORMAT_VERSION_UID
See Also:
Constant Field Values
Constructor Detail

AbstractObjectGraph

public AbstractObjectGraph()
Method Detail

writeExternal

public void writeExternal(ObjectOutput output)
                   throws IOException
Writes the non-transient fields of this class to an external source.

Supported API: false

Specified by:
writeExternal in interface Externalizable
Overrides:
writeExternal in class WTObject
Parameters:
output -
Throws:
IOException

readExternal

public void readExternal(ObjectInput input)
                  throws IOException,
                         ClassNotFoundException
Reads the non-transient fields of this class from an external source.

Supported API: false

Specified by:
readExternal in interface Externalizable
Overrides:
readExternal in class WTObject
Parameters:
input -
Throws:
IOException
ClassNotFoundException

readVersion

protected boolean readVersion(AbstractObjectGraph thisObject,
                              ObjectInput input,
                              long readSerialVersionUID,
                              boolean passThrough,
                              boolean superDone)
                       throws IOException,
                              ClassNotFoundException
Reads the non-transient fields of this class from an external source.

Supported API: false

Parameters:
thisObject -
input -
readSerialVersionUID -
passThrough -
superDone -
Returns:
boolean
Throws:
IOException
ClassNotFoundException

readOldVersion

private boolean readOldVersion(ObjectInput input,
                               long readSerialVersionUID,
                               boolean passThrough,
                               boolean superDone)
                        throws IOException,
                               ClassNotFoundException
Reads the non-transient fields of this class from an external source, which is not the current version.

Parameters:
input -
readSerialVersionUID -
passThrough -
superDone -
Returns:
boolean
Throws:
IOException
ClassNotFoundException

writeExternal

public void writeExternal(PersistentStoreIfc output)
                   throws SQLException,
                          DatastoreException
Used by Persistent Data Service to obtain the values of the persistent attributes of this class, so they can be written to a persistent store.

(Not intended for general use.)

Supported API: false

Specified by:
writeExternal in interface ObjectMappable
Overrides:
writeExternal in class WTObject
Parameters:
output -
Throws:
SQLException
DatastoreException

readExternal

public void readExternal(PersistentRetrieveIfc input)
                  throws SQLException,
                         DatastoreException
Used by Persistent Data Service to populate the persistent attributes of this class from a persistent store.

(Not intended for general use.)

Supported API: false

Specified by:
readExternal in interface ObjectMappable
Overrides:
readExternal in class WTObject
Parameters:
input -
Throws:
SQLException
DatastoreException

clone

public Object clone()


Supported API: false

Specified by:
clone in interface GraphNodeModel
Returns:
Object

equals

public boolean equals(Object obj)
Tests if two references refer to the same object.

Supported API: false

Specified by:
equals in interface GraphNodeModel
Overrides:
equals in class WTObject
Parameters:
obj -
Returns:
true if both references refer to the same object, otherwise false.

traverse

public void traverse()
              throws WTException
Traverses the root node.

Supported API: true

Specified by:
traverse in interface GraphModel
Throws:
WTException

traverse

public void traverse(Persistable root)
              throws WTException
Traverses the root node.

Supported API: true

Specified by:
traverse in interface Walker
Parameters:
root -
Throws:
WTException

expandNode

public void expandNode(Persistable parentNode,
                       Vector links,
                       Vector nodes)
                throws ObjectGraphException
Expands the node returning all of the links and nodes associated with the parent node.

Supported API: true

Specified by:
expandNode in interface NodeExpander
Parameters:
parentNode -
links -
nodes -
Throws:
ObjectGraphException

getVisitor

public Visitor getVisitor()
[Default implementation that] gets the object graph's visitor.

Supported API: false

Specified by:
getVisitor in interface ObjectGraph
Returns:
Visitor

setVisitor

public void setVisitor(Visitor visitor)
[Default implementation that] sets the object graph's visitor. The superclass's throws clause has been eliminated by this overriding method.

Supported API: false

Specified by:
setVisitor in interface ObjectGraph
Parameters:
visitor -

setNodeExpander

public void setNodeExpander(NodeExpander node)
[Default implementation that] sets the object graph's node expander (i.e., the node). The superclass's throws clause has been eliminated by this overriding method.

Supported API: false

Specified by:
setNodeExpander in interface ObjectGraph
Parameters:
node -

getNodeExpander

public NodeExpander getNodeExpander()
[Default implementation that] gets the object graph's node expander (i.e., the node).

Supported API: false

Specified by:
getNodeExpander in interface ObjectGraph
Returns:
NodeExpander

setInfo

public void setInfo(ObjectInfo info)


Supported API: false

Specified by:
setInfo in interface ObjectGraphNode
Parameters:
info -

getInfo

public ObjectInfo getInfo()


Supported API: false

Specified by:
getInfo in interface ObjectGraphNode
Returns:
ObjectInfo

setExcluded

public void setExcluded(Boolean value)


Supported API: false

Specified by:
setExcluded in interface ObjectGraphNode
Parameters:
value -

isExcluded

public boolean isExcluded()


Supported API: false

Specified by:
isExcluded in interface ObjectGraphNode
Returns:
boolean

getRoot

public ObjectGraphNode getRoot()
Gets the object for the association that plays role: ROOT.

Supported API: false

Specified by:
getRoot in interface ObjectGraph
Returns:
ObjectGraphNode

setRoot

public void setRoot(ObjectGraphNode a_Root)
             throws WTException
Sets the object for the association that plays role: ROOT.

Supported API: false

Specified by:
setRoot in interface ObjectGraph
Parameters:
a_Root -
Throws:
WTException

getRootReference

public ObjectReference getRootReference()
Gets the value of the attribute: ROOT_REFERENCE.

Supported API: false

Specified by:
getRootReference in interface ObjectGraph
Returns:
ObjectReference

setRootReference

public void setRootReference(ObjectReference a_RootReference)
Sets the value of the attribute: ROOT_REFERENCE.

Supported API: false

Specified by:
setRootReference in interface ObjectGraph
Parameters:
a_RootReference -

getWalkerImpl

public ObjectGraphWalker getWalkerImpl()
Gets the object for the association that plays role: WALKER_IMPL.

Supported API: false

Specified by:
getWalkerImpl in interface ObjectGraph
Returns:
ObjectGraphWalker

setWalkerImpl

public void setWalkerImpl(ObjectGraphWalker a_WalkerImpl)
Sets the object for the association that plays role: WALKER_IMPL.

Supported API: false

Specified by:
setWalkerImpl in interface ObjectGraph
Parameters:
a_WalkerImpl -

visitorValidate

private void visitorValidate(Visitor a_Visitor)
                      throws WTPropertyVetoException
Parameters:
a_Visitor -
Throws:
WTPropertyVetoException

nodeExpanderValidate

private void nodeExpanderValidate(NodeExpander a_NodeExpander)
                           throws WTPropertyVetoException
Parameters:
a_NodeExpander -
Throws:
WTPropertyVetoException

getId

public String getId()
Gets the value of the attribute: ID.

Supported API: false

Specified by:
getId in interface ObjectGraphNode
Returns:
String

setId

public void setId(String a_Id)
           throws WTPropertyVetoException
Sets the value of the attribute: ID.

Supported API: false

Specified by:
setId in interface ObjectGraphNode
Parameters:
a_Id -
Throws:
WTPropertyVetoException

idValidate

private void idValidate(String a_Id)
                 throws WTPropertyVetoException
Parameters:
a_Id -
Throws:
WTPropertyVetoException

getGraph

public ObjectReference getGraph()
Gets the object for the association that plays role: GRAPH.

Supported API: false

Specified by:
getGraph in interface ObjectGraphNode
Returns:
ObjectReference

setGraph

public void setGraph(ObjectReference a_Graph)
              throws WTPropertyVetoException
Sets the object for the association that plays role: GRAPH.

Supported API: false

Specified by:
setGraph in interface ObjectGraphNode
Parameters:
a_Graph -
Throws:
WTPropertyVetoException

graphValidate

private void graphValidate(ObjectReference a_Graph)
                    throws WTPropertyVetoException
Parameters:
a_Graph -
Throws:
WTPropertyVetoException

getNodeList

public GraphNodeModel[] getNodeList()
Gets the value of the attribute: NODE_LIST.

Supported API: false

Specified by:
getNodeList in interface GraphModel
Returns:
GraphNodeModel[]

setNodeList

public void setNodeList(GraphNodeModel[] a_NodeList)
                 throws WTPropertyVetoException
Sets the value of the attribute: NODE_LIST.

Supported API: false

Specified by:
setNodeList in interface GraphModel
Parameters:
a_NodeList -
Throws:
WTPropertyVetoException

getEdgeList

public GraphEdgeModel[] getEdgeList()
Gets the value of the attribute: EDGE_LIST.

Supported API: false

Specified by:
getEdgeList in interface GraphModel
Returns:
GraphEdgeModel[]

setEdgeList

public void setEdgeList(GraphEdgeModel[] a_EdgeList)
                 throws WTPropertyVetoException
Sets the value of the attribute: EDGE_LIST.

Supported API: false

Specified by:
setEdgeList in interface GraphModel
Parameters:
a_EdgeList -
Throws:
WTPropertyVetoException

getNodeImpl

public String getNodeImpl()
Gets the value of the attribute: NODE_IMPL.

Supported API: false

Specified by:
getNodeImpl in interface GraphModel
Returns:
String

setNodeImpl

public void setNodeImpl(String a_NodeImpl)
                 throws WTPropertyVetoException
Sets the value of the attribute: NODE_IMPL.

Supported API: false

Specified by:
setNodeImpl in interface GraphModel
Parameters:
a_NodeImpl -
Throws:
WTPropertyVetoException

nodeImplValidate

private void nodeImplValidate(String a_NodeImpl)
                       throws WTPropertyVetoException
Parameters:
a_NodeImpl -
Throws:
WTPropertyVetoException

getEdgeImpl

public String getEdgeImpl()
Gets the value of the attribute: EDGE_IMPL.

Supported API: false

Specified by:
getEdgeImpl in interface GraphModel
Returns:
String

setEdgeImpl

public void setEdgeImpl(String a_EdgeImpl)
                 throws WTPropertyVetoException
Sets the value of the attribute: EDGE_IMPL.

Supported API: false

Specified by:
setEdgeImpl in interface GraphModel
Parameters:
a_EdgeImpl -
Throws:
WTPropertyVetoException

edgeImplValidate

private void edgeImplValidate(String a_EdgeImpl)
                       throws WTPropertyVetoException
Parameters:
a_EdgeImpl -
Throws:
WTPropertyVetoException

hashCode

public int hashCode()
Returns a hash code for this object based upon its ObjectIdentifier. Delegates to PersistenceHelper.hashCode(Persistable).

Warning: Certain core Windchill operations may depend upon hashCode being ObjectIdentifier-based. Changes to the default implementation should be done with care, if at all.

Supported API: false

Overrides:
hashCode in class WTObject
Returns:
int