edu.uci.ics.jung.graph.impl
Class SparseTree

java.lang.Object
  extended by edu.uci.ics.jung.utils.UserDataDelegate
      extended by edu.uci.ics.jung.graph.impl.AbstractArchetypeGraph
          extended by edu.uci.ics.jung.graph.impl.AbstractSparseGraph
              extended by edu.uci.ics.jung.graph.impl.SparseGraph
                  extended by edu.uci.ics.jung.graph.impl.SparseTree
All Implemented Interfaces:
ArchetypeGraph, DirectedGraph, Graph, UserDataContainer, Cloneable

public class SparseTree
extends SparseGraph
implements DirectedGraph

An implementation of Graph that consists of a Vertex set and a DirectedEdge set. Further, a vertex can have no more than one incoming directed edge (enforced with TreePredicate); the tree must define a root vertex at construction time. This implementation does NOT ALLOW parallel edges. SimpleDirectedSparseVertex is the most efficient vertex for this graph type.

Edge constraints imposed by this class: DIRECTED_EDGE, TreePredicate, NOT_PARALLEL_EDGE

For additional system and user constraints defined for this class, see the superclasses of this class.

Author:
Danyel Fisher, Joshua O'Madadhain
See Also:
DirectedSparseVertex, DirectedSparseEdge

Nested Class Summary
 
Nested classes/interfaces inherited from class edu.uci.ics.jung.graph.impl.AbstractArchetypeGraph
AbstractArchetypeGraph.Requirements
 
Nested classes/interfaces inherited from interface edu.uci.ics.jung.utils.UserDataContainer
UserDataContainer.CopyAction
 
Field Summary
static Object IN_TREE_KEY
           
protected  Vertex mRoot
           
static Object SPARSE_ROOT_KEY
           
 
Fields inherited from class edu.uci.ics.jung.graph.impl.AbstractSparseGraph
mEdges, mVertices
 
Fields inherited from class edu.uci.ics.jung.graph.impl.AbstractArchetypeGraph
edge_requirements, mEdgeIDs, mGraphListenerHandler, mVertexIDs, vertex_requirements
 
Fields inherited from class edu.uci.ics.jung.utils.UserDataDelegate
factory, udc_delegate
 
Fields inherited from interface edu.uci.ics.jung.graph.Graph
DIRECTED_EDGE, NOT_PARALLEL_EDGE, SIMPLE_EDGE, UNDIRECTED_EDGE
 
Fields inherited from interface edu.uci.ics.jung.graph.ArchetypeGraph
SUBSET_MANAGER
 
Constructor Summary
SparseTree(Vertex root)
           
 
Method Summary
 Edge addEdge(Edge e)
          Adds e to this graph, and returns a reference to the added vertex.
 Vertex getRoot()
           
 
Methods inherited from class edu.uci.ics.jung.graph.impl.AbstractSparseGraph
addVertex, getEdges, getVertices, initialize, isDirected, removeEdge, removeEdges, removeVertex, removeVertices
 
Methods inherited from class edu.uci.ics.jung.graph.impl.AbstractArchetypeGraph
addAllNotInitializers, addListener, checkConstraints, copy, getEdgeConstraints, getVertexConstraints, listenersExist, newInstance, numEdges, numVertices, removeAllEdges, removeAllVertices, removeListener, toString
 
Methods inherited from class edu.uci.ics.jung.utils.UserDataDelegate
addUserDatum, clone, containsUserDatumKey, getUserDatum, getUserDatumCopyAction, getUserDatumKeyIterator, importUserData, removeUserDatum, setUserDataFactory, setUserDatum
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface edu.uci.ics.jung.graph.Graph
addVertex, isDirected, removeEdge, removeVertex
 
Methods inherited from interface edu.uci.ics.jung.graph.ArchetypeGraph
addListener, copy, getEdgeConstraints, getEdges, getVertexConstraints, getVertices, newInstance, numEdges, numVertices, removeAllEdges, removeAllVertices, removeEdges, removeListener, removeVertices
 
Methods inherited from interface edu.uci.ics.jung.utils.UserDataContainer
addUserDatum, clone, containsUserDatumKey, getUserDatum, getUserDatumCopyAction, getUserDatumKeyIterator, importUserData, removeUserDatum, setUserDatum
 

Field Detail

mRoot

protected Vertex mRoot

SPARSE_ROOT_KEY

public static final Object SPARSE_ROOT_KEY

IN_TREE_KEY

public static final Object IN_TREE_KEY
Constructor Detail

SparseTree

public SparseTree(Vertex root)
Parameters:
root -
Method Detail

getRoot

public Vertex getRoot()
Returns:
the root of this tree

addEdge

public Edge addEdge(Edge e)
Description copied from interface: Graph
Adds e to this graph, and returns a reference to the added vertex.

Specified by:
addEdge in interface Graph
Overrides:
addEdge in class AbstractSparseGraph
Parameters:
e - the edge to be added
See Also:
Graph.addEdge(edu.uci.ics.jung.graph.Edge)