|
Plexus v0.13.1 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.phoenixst.plexus.DefaultGraph
com.phoenixst.plexus.DefaultOrientedForest
public class DefaultOrientedForest
A default implementation of the Graph
and
OrientedForest
interfaces.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface com.phoenixst.plexus.Graph |
---|
Graph.Edge |
Constructor Summary | |
---|---|
DefaultOrientedForest()
Creates a new DefaultOrientedForest . |
|
DefaultOrientedForest(Graph graph)
Creates a new DefaultOrientedForest which is a
copy of the specified Graph . |
Method Summary | |
---|---|
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 . |
Methods inherited from class com.phoenixst.plexus.DefaultGraph |
---|
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, traverser |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public DefaultOrientedForest()
DefaultOrientedForest
.
public DefaultOrientedForest(Graph graph)
DefaultOrientedForest
which is a
copy of the specified Graph
.
Method Detail |
---|
protected Graph.Edge createEdge(Object object, Object tail, Object head, boolean isDirected, Object edgeState)
DefaultGraph
Graph.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 DefaultGraph
public Graph.Edge addEdge(Object object, Object tail, Object head, boolean isDirected)
Graph
Graph
(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 Graph
addEdge
in class DefaultGraph
object
- 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)
OrientedForest
null
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 OrientedForest
public Traverser childTraverser(Object node)
OrientedForest
childTraverser
in interface OrientedForest
public Graph.Edge getParentEdge(Object node)
OrientedForest
Edge
of the specified node, or
null
if it doesn't have one.
getParentEdge
in interface OrientedForest
public boolean isForestEdge(Graph.Edge edge)
OrientedForest
Edge
is a
forest edge.
isForestEdge
in interface OrientedForest
public Object getParentEndpoint(Graph.Edge edge)
OrientedForest
Edge
. If the specified Edge
is not
a forest edge, throws an
IllegalArgumentException
.
getParentEndpoint
in interface OrientedForest
public Collection rootNodes()
OrientedForest
rootNodes
in interface OrientedForest
public Object getRoot(Object node)
OrientedForest
getRoot
in interface OrientedForest
public boolean isLeaf(Object node)
OrientedForest
true
if the specified node has no
children.
isLeaf
in interface OrientedForest
public boolean isAncestor(Object ancestor, Object descendant)
OrientedForest
true
if ancestor
is actually
an ancestor of descendant
.
isAncestor
in interface OrientedForest
public Object getLeastCommonAncestor(Object aNode, Object bNode)
OrientedForest
null
if none exists. If null
is a
valid node, then some other method must be used to distinguish
the two cases.
getLeastCommonAncestor
in interface OrientedForest
public int getDepth(Object node)
OrientedForest
getDepth
in interface OrientedForest
public int getHeight(Object node)
OrientedForest
getHeight
in interface OrientedForest
public 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.
|
Plexus v0.13.1 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |