edu.isi.pegasus.planner.partitioner.graph
public interface Graph extends GraphNodeContent
Modifier and Type | Field and Description |
---|---|
static String |
VERSION
The version number associated with this Graph API.
|
Modifier and Type | Method and Description |
---|---|
void |
addEdge(String parent,
String child)
Adds an edge between two already existing nodes in the graph.
|
void |
addEdges(String child,
List parents)
A convenience method that allows for bulk addition of edges between
already existing nodes in the graph.
|
void |
addNode(GraphNode node)
Adds a node to the Graph.
|
void |
addRoot(GraphNode root)
Adds a single root node to the Graph.
|
List<GraphNode> |
getLeaves()
Returns the leaf nodes of the Graph.
|
GraphNode |
getNode(String identifier)
Returns the node matching the id passed.
|
List<GraphNode> |
getRoots()
Returns the root nodes of the Graph.
|
boolean |
isEmpty()
Returns a boolean if there are no nodes in the graph.
|
Iterator<GraphNode> |
iterator()
Returns an iterator that traverses through the graph using a graph
traversal algorithm.
|
Iterator<GraphNode> |
nodeIterator()
Returns an iterator for the nodes in the Graph.
|
boolean |
remove(String identifier)
Removes a node from the Graph.
|
int |
size()
Returns the number of nodes in the graph.
|
Iterator<GraphNode> |
topologicalSortIterator()
Returns an iterator for the graph that traverses in topological sort
order.
|
static final String VERSION
void addNode(GraphNode node)
node
- the node to be added to the Graph.void addEdge(String parent, String child)
parent
- the parent node ID.child
- the child node ID.void addEdges(String child, List parents)
child
- the child node IDparents
- list of parent identifiers as String
.GraphNode getNode(String identifier)
identifier
- the id of the node.void addRoot(GraphNode root)
root
- the GraphNode
to be added as a root.RuntimeException
- if a node with the same id already exists.boolean remove(String identifier)
identifier
- the id of the node to be removed.Iterator<GraphNode> nodeIterator()
Iterator<GraphNode> iterator()
Iterator<GraphNode> topologicalSortIterator()
int size()
List<GraphNode> getRoots()
GraphNode
corressponding to the
root nodes.List<GraphNode> getLeaves()
GraphNode
corressponding to the
leaf nodes.boolean isEmpty()