public abstract class AbstractSpanningTree extends Object implements SpanningTree
The result is stored in an edge attribute which name is defined by
flagAttribute and value is flagOn if the edge is in the
tree or flagOff if not. If flagAttribute is null
nothing is stored in the edges. If flagOn is null edges in
the tree are not tagged. If flagOff is null edges out of the
tree are not tagged.
Spanning tree algorithms have to extend this class and to implements the
makeTree() and getTreeEdgesIterator() methods.
edgeOn(Edge) and edgeOff(Edge) methods have to be used to
properly tag edges.
A call to compute reset the values of edges attribute. Then a call to
makeTree() is made.
Using the CSS, it is possible to highlight the spanning tree result using classes. Considering two css edge classes have been defined in the CSS, for example :
edge .in {
size: 3px;
fill-color: black;
}
edge .notin {
size: 2px;
fill-color: gray;
}
You can tell the algorithm to set up the value of the "ui.class" attribute of edges to "in" when the edge is in the tree or "notin" when edge is not in the tree.
This can be done by setting the flagAttribute of the algorithm using
the setter setFlagAttribute(String) and the flag values
flagOn and flagOff with setFlagOn(Object) and
setFlagOff(Object) setters.
Graph graph = ...;
AbstractSpanningTree sp = ...;
...
sp.setFlagAttribute("ui.class");
sp.setFlagOn("in");
sp.setFlagOff("notin");
sp.init(graph);
sp.compute();
graph.display();
..
| Constructor and Description |
|---|
AbstractSpanningTree()
Create a new SpanningTree algorithm.
|
AbstractSpanningTree(String flagAttribute)
Create a new SpanningTree algorithm.
|
AbstractSpanningTree(String flagAttribute,
Object flagOn,
Object flagOff)
Create a new SpanningTree algorithm.
|
| Modifier and Type | Method and Description |
|---|---|
void |
clear()
Removes the tags of all edges.
|
void |
compute()
Run the algorithm.
|
String |
getFlagAttribute()
Get key attribute which will be used to set if edges are in the spanning
tree, or not.
|
Object |
getFlagOff()
Get value used to set that an edge is not in the spanning tree.
|
Object |
getFlagOn()
Get value used to set that an edge is in the spanning tree.
|
<T extends org.graphstream.graph.Edge> |
getTreeEdges()
Iterable view of the spanning tree edges.
|
abstract <T extends org.graphstream.graph.Edge> |
getTreeEdgesIterator()
An iterator on the tree edges.
|
void |
init(org.graphstream.graph.Graph graph)
Initialization of the algorithm.
|
void |
setFlagAttribute(String flagAttribute)
Set the flag attribute.
|
void |
setFlagOff(Object flagOff)
Set value used to set that an edge is not in the spanning tree.
|
void |
setFlagOn(Object flagOn)
Set value used to set that an edge is in the spanning tree.
|
public AbstractSpanningTree()
public AbstractSpanningTree(String flagAttribute)
true for edges in the tree and false for the remaining
edges.flagAttribute - attribute used to compare edgespublic AbstractSpanningTree(String flagAttribute, Object flagOn, Object flagOff)
flagAttribute - attribute used to set if an edge is in the spanning treeflagOn - value of the flagAttribute if edge is in the spanning
treeflagOff - value of the flagAttribute if edge is not in the
spanning treepublic String getFlagAttribute()
SpanningTreegetFlagAttribute in interface SpanningTreepublic void setFlagAttribute(String flagAttribute)
SpanningTreesetFlagAttribute in interface SpanningTreeflagAttribute - New attribute used. If null edges are not tagged.public Object getFlagOn()
SpanningTreegetFlagOn in interface SpanningTreepublic void setFlagOn(Object flagOn)
SpanningTreesetFlagOn in interface SpanningTreeflagOn - on value. If null edges in the tree are not tagged.public Object getFlagOff()
SpanningTreegetFlagOff in interface SpanningTreepublic void setFlagOff(Object flagOff)
SpanningTreesetFlagOff in interface SpanningTreepublic abstract <T extends org.graphstream.graph.Edge> Iterator<T> getTreeEdgesIterator()
SpanningTreegetTreeEdgesIterator in interface SpanningTreepublic <T extends org.graphstream.graph.Edge> Iterable<T> getTreeEdges()
SpanningTreeSpanningTree.getTreeEdgesIterator().getTreeEdges in interface SpanningTreepublic void clear()
SpanningTreeclear in interface SpanningTreepublic void init(org.graphstream.graph.Graph graph)
AlgorithmAlgorithm.compute() method to initialize or reset the algorithm according
to the new given graph.public void compute()
AlgorithmAlgorithm.init(Graph) method has to be called
before computing.compute in interface AlgorithmAlgorithm.init(Graph)Copyright © 2015. All rights reserved.