public class DefaultOrientedForest extends DefaultGraph implements OrientedForest
Graph and
OrientedForest interfaces.Graph.Edge| Constructor and Description |
|---|
DefaultOrientedForest()
Creates a new
DefaultOrientedForest. |
DefaultOrientedForest(Graph graph)
Creates a new
DefaultOrientedForest which is a
copy of the specified Graph. |
| Modifier and Type | Method and Description |
|---|---|
Graph.Edge |
addEdge(Object object,
Object tail,
Object head,
boolean isDirected)
Adds the specified edge to the
Graph (optional
operation). |
Traverser |
childTraverser(Object node)
Traverses over the children of the specified node.
|
protected Graph.Edge |
createEdge(Object object,
Object tail,
Object head,
boolean isDirected,
Object edgeState)
Creates a new
Graph.Edge. |
int |
getDepth(Object node)
Gets the depth of the specified node.
|
int |
getHeight(Object node)
Gets the height of the specified node.
|
Object |
getLeastCommonAncestor(Object aNode,
Object bNode)
Returns the least common ancestor of the specified nodes, or
null if none exists. |
Object |
getParent(Object node)
Gets the parent of the specified node, or
null if
it doesn't have one. |
Graph.Edge |
getParentEdge(Object node)
Gets the parent
Edge of the specified node, or
null if it doesn't have one. |
Object |
getParentEndpoint(Graph.Edge edge)
Returns the parent endpoint of the specified forest
Edge. |
Object |
getRoot(Object node)
Gets the root of the subgraph containing the specified node.
|
boolean |
isAncestor(Object ancestor,
Object descendant)
Returns
true if ancestor is actually
an ancestor of descendant. |
boolean |
isForestEdge(Graph.Edge edge)
Gets whether or not the specified
Edge is a
forest edge. |
boolean |
isLeaf(Object node)
Returns
true if the specified node has no
children. |
Collection |
rootNodes()
Returns the root nodes of this forest.
|
Graph.Edge |
setParent(Object object,
Object tail,
Object head,
boolean isDirected,
Object parent)
Adds a new forest
Edge. |
addEdge, addGraphListener, addNode, adjacentNodes, containsEdge, containsNode, degree, degree, edgeAdded, edgeAdding, edgeRemoved, edgeRemoving, edges, equals, getAdjacentNode, getEdge, getIncidentEdge, getNode, hashCode, incidentEdges, nodeAdded, nodeAdding, nodeRemoved, nodeRemoving, nodes, removeEdge, removeGraphListener, removeNode, toString, traverserpublic DefaultOrientedForest()
DefaultOrientedForest.public DefaultOrientedForest(Graph graph)
DefaultOrientedForest which is a
copy of the specified Graph.protected Graph.Edge createEdge(Object object, Object tail, Object head, boolean isDirected, Object edgeState)
DefaultGraphGraph.Edge. This method can be
overridden by subclasses to provide a different implementation
than this one, which produces a DefaultObjectEdge.
This method should simply create the requested
Graph.Edge, without checking to see whether it
already exists. DefaultGraph will not allow
two edges which are .equals() in the same
adjacency list.createEdge in class DefaultGraphpublic Graph.Edge addEdge(Object object, Object tail, Object head, boolean isDirected)
GraphGraph (optional
operation). Returns the newly created Graph.Edge
if this Graph changed as a result of the call.
Returns null if this Graph does not
allow duplicate edges and already contains the specified edge.
If a Graph refuses to add a particular edge
for any reason other than that it already contains the edge,
it must throw an exception (rather than returning
null). This preserves the invariant that a
Graph always contains the specified edge after
this call returns. Graph classes should clearly
specify in their documentation any other restrictions on what
edges may be added.
addEdge in interface GraphaddEdge in class DefaultGraphobject - the user-defined object to be contained in the
new edge.tail - the first endpoint of the new edge.head - the second endpoint of the new edge.isDirected - whether the new edge is directed.Graph.Edge if this
Graph changed as a result of the call,
null if this Graph does not allow
duplicate edges and already contains the specified edge.public Object getParent(Object node)
OrientedForestnull if
it doesn't have one. If null is a valid node,
then OrientedForest.getParentEdge(java.lang.Object) must be used to distinguish the
two cases.getParent in interface OrientedForestpublic Traverser childTraverser(Object node)
OrientedForestchildTraverser in interface OrientedForestpublic Graph.Edge getParentEdge(Object node)
OrientedForestEdge of the specified node, or
null if it doesn't have one.getParentEdge in interface OrientedForestpublic boolean isForestEdge(Graph.Edge edge)
OrientedForestEdge is a
forest edge.isForestEdge in interface OrientedForestpublic Object getParentEndpoint(Graph.Edge edge)
OrientedForestEdge. If the specified Edge is not
a forest edge, throws an
IllegalArgumentException.getParentEndpoint in interface OrientedForestpublic Collection rootNodes()
OrientedForestrootNodes in interface OrientedForestpublic Object getRoot(Object node)
OrientedForestgetRoot in interface OrientedForestpublic boolean isLeaf(Object node)
OrientedForesttrue if the specified node has no
children.isLeaf in interface OrientedForestpublic boolean isAncestor(Object ancestor, Object descendant)
OrientedForesttrue if ancestor is actually
an ancestor of descendant.isAncestor in interface OrientedForestpublic Object getLeastCommonAncestor(Object aNode, Object bNode)
OrientedForestnull if none exists. If null is a
valid node, then some other method must be used to distinguish
the two cases.getLeastCommonAncestor in interface OrientedForestpublic int getDepth(Object node)
OrientedForestgetDepth in interface OrientedForestpublic int getHeight(Object node)
OrientedForestgetHeight in interface OrientedForestpublic Graph.Edge setParent(Object object, Object tail, Object head, boolean isDirected, Object parent)
Edge. The specified
parent must be one of the specified endpoints.
If the child endpoint already has a parent edge, it will be
removed.See the Plexus project home, hosted by SourceForge.
Copyright ? 1994-2006, by Phoenix Software Technologists, Inc. and others. All Rights Reserved. Use is subject to license terms.