|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.graphstream.graph.Path
public class Path
Path description.
A path is a class that stores ordered lists of nodes and links that are adjacent. Such a path may be manipulated with nodes and/or edges added or removed. This class is designed as a dynamic structure that is, to add edges during the construction of the path. Only edges need to be added, the nodes list is maintained automatically.
The two lists (one for nodes, one for edges) may be acceded at any moment in constant time.
The constraint of this class is that it needs to know the first node of the
path (the root). This root can be set with the setRoot(Node)
method
or by using the add(Node, Edge)
method.
The normal use with this class is to first use the setRoot(Node)
method to initialize the path; then to use the add(Edge)
method to
grow it and the popEdge()
or popNode()
.
Constructor Summary | |
---|---|
Path()
New empty path. |
Method Summary | ||
---|---|---|
void |
add(Edge edge)
Method that adds an edge an a node to the path. |
|
void |
add(Node from,
Edge edge)
Method that adds a node (and an edge) to the path. |
|
void |
clear()
Clears the path; |
|
boolean |
contains(Edge edge)
Says whether the path contains this edge or not. |
|
boolean |
contains(Node node)
Says whether the path contains this node or not. |
|
boolean |
empty()
Returns true if the path is empty. |
|
boolean |
equals(Path p)
Compare the content of the current path and the specified path to decide weather they are equal or not. |
|
Path |
getACopy()
Get a copy of this path |
|
|
getEachEdge()
Set of edges usable in a for-each instruction. |
|
|
getEachNode()
Set of nodes usable in a for-each instruction. |
|
int |
getEdgeCount()
Number of edges in this graph. |
|
|
getEdgeIterator()
Iterator on the set of edges, in an undefined order. |
|
List<Edge> |
getEdgePath()
Returns the list of edges representing the path. |
|
|
getEdgeSet()
Unmodifiable view of the set of edges. |
|
int |
getNodeCount()
Returns the size of the path. |
|
|
getNodeIterator()
Iterator on the set of nodes, in an undefined order. |
|
List<Node> |
getNodePath()
Construct an return a list of nodes that represents the path. |
|
|
getNodeSet()
Unmodifiable view of the set of nodes. |
|
Double |
getPathWeight(String characteristic)
It returns the sum of the characteristic given value in the
Edges of the path. |
|
Node |
getRoot()
Get the root (the first node) of the path. |
|
Edge |
peekEdge()
Looks at the edge at the top of the stack without removing it from the stack. |
|
Node |
peekNode()
Looks at the node at the top of the stack without removing it from the stack. |
|
Edge |
popEdge()
This methods pops the 2 stacks ( edgePath and
nodePath ) and returns the removed edge. |
|
Node |
popNode()
This methods pops the 2 stacks ( edgePath and
nodePath ) and returns the removed node. |
|
void |
push(Edge edge)
A synonym for add(Edge) . |
|
void |
push(Node from,
Edge edge)
A synonym for add(Edge) . |
|
void |
removeLoops()
Remove all parts of the path that start at a given node and pass a new at this node. |
|
void |
setRoot(Node root)
Set the root (first node) of the path. |
|
int |
size()
Returns the size of the path |
|
String |
toString()
Returns a String description of the path. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public Path()
Method Detail |
---|
public Node getRoot()
public void setRoot(Node root)
root
- The root of the path.public boolean contains(Node node)
node
- The node tested for existence in the path.
true
if the path contains the node.public boolean contains(Edge edge)
edge
- The edge tested for existence in the path.
true
if the path contains the edge.public boolean empty()
true
if the path is empty.public int size()
public Double getPathWeight(String characteristic)
characteristic
given value in the
Edges of the path.
characteristic
- The characteristic.
public List<Edge> getEdgePath()
public List<Node> getNodePath()
public void add(Node from, Edge edge)
from
- The start node.edge
- The edge used.public void add(Edge edge)
edge
- The edge to add to the path.public void push(Node from, Edge edge)
add(Edge)
.
public void push(Edge edge)
add(Edge)
.
public Edge popEdge()
edgePath
and
nodePath
) and returns the removed edge.
public Node popNode()
edgePath
and
nodePath
) and returns the removed node.
public Node peekNode()
public Edge peekEdge()
public void clear()
public Path getACopy()
public void removeLoops()
public boolean equals(Path p)
p
- A path to compare to the curent one.
public String toString()
toString
in class Object
public int getNodeCount()
size()
.
getNodeCount
in interface Structure
public int getEdgeCount()
Structure
getEdgeCount
in interface Structure
public <T extends Node> Iterator<T> getNodeIterator()
Structure
Iterator<ExtendedNode> ite = graph.getNodeIterator();the method will return an Iterator<ExtendedNode>. If no left part exists, method will just return an Iterator<Node>.
getNodeIterator
in interface Structure
public <T extends Edge> Iterator<T> getEdgeIterator()
Structure
Iterator<ExtendedEdge> ite = graph.getEdgeIterator();the method will return an Iterator<ExtendedEdge>. If no left part exists, method will just return an Iterator<Edge>.
getEdgeIterator
in interface Structure
public <T extends Node> Iterable<? extends T> getEachNode()
Structure
Iterable<ExtendedNode> ite = struct.getEachNode();the method will return an Iterable<ExtendedNode>. If no left part exists, method will just return an Iterable<Node>. It is possible to use it in a for-each loop by giving the parameter :
for (ExtendedNode n : struct.<ExtendedNode> getEachNode()) { // ... }
getEachNode
in interface Structure
Structure.getNodeIterator()
,
Structure.getEachNode()
public <T extends Edge> Iterable<? extends T> getEachEdge()
Structure
Iterable<ExtendedNEdge> ite = struct.getEachEdge();the method will return an Iterable<ExtendedEdge>. If no left part exists, method will just return an Iterable<Edge>. It is possible to use it in a for-each loop by giving the parameter :
for (ExtendedEdge e : struct.<ExtendedEdge> getEachEdge()) { // ... }
getEachEdge
in interface Structure
Structure.getEdgeIterator()
,
Structure.getEdgeSet()
public <T extends Node> Collection<T> getNodeSet()
Structure
Collection<ExtendedNode> c = struct.getNodeSet();the method will return a Collection<ExtendedNode>. If no left part exists, method will just return a Collection<Node>.
getNodeSet
in interface Structure
Structure.getNodeIterator()
,
Structure.getEachNode()
public <T extends Edge> Collection<T> getEdgeSet()
Structure
Collection<ExtendedEdge> c = struct.getEdgeSet();the method will return a Collection<ExtendedEdge>. If no left part exists, method will just return a Collection<Edge>.
getEdgeSet
in interface Structure
Structure.getEdgeIterator()
,
Structure.getEachEdge()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |