Package org.jgrapht.experimental.dag
Class DirectedAcyclicGraph.TopoVertexMap
- java.lang.Object
-
- org.jgrapht.experimental.dag.DirectedAcyclicGraph.TopoVertexMap
-
- All Implemented Interfaces:
java.io.Serializable
,DirectedAcyclicGraph.TopoOrderMapping<V>
,DirectedAcyclicGraph.TopoOrderMappingFactory<V>
- Enclosing class:
- DirectedAcyclicGraph<V,E>
public class DirectedAcyclicGraph.TopoVertexMap extends java.lang.Object implements DirectedAcyclicGraph.TopoOrderMapping<V>, DirectedAcyclicGraph.TopoOrderMappingFactory<V>
For performance and flexibility uses an ArrayList for topological index to vertex mapping, and a HashMap for vertex to topological index mapping.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private static long
serialVersionUID
private java.util.List<V>
topoToVertex
private java.util.Map<V,java.lang.Integer>
vertexToTopo
-
Constructor Summary
Constructors Constructor Description TopoVertexMap()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Integer
getTopologicalIndex(V vertex)
Get the topological index of the given vertex.DirectedAcyclicGraph.TopoOrderMapping<V>
getTopoOrderMapping()
Create a new instance of aDirectedAcyclicGraph.TopoOrderMapping
.V
getVertex(java.lang.Integer index)
Get the vertex at the given topological index.void
putVertex(java.lang.Integer index, V vertex)
Add a vertex at the given topological index.void
removeAllVertices()
Remove all vertices from the topological orderingjava.lang.Integer
removeVertex(V vertex)
Remove the given vertex from the topological orderingprivate int
translateIndex(int index)
We translate the topological index to an ArrayList index.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
topoToVertex
private final java.util.List<V> topoToVertex
-
vertexToTopo
private final java.util.Map<V,java.lang.Integer> vertexToTopo
-
-
Method Detail
-
putVertex
public void putVertex(java.lang.Integer index, V vertex)
Description copied from interface:DirectedAcyclicGraph.TopoOrderMapping
Add a vertex at the given topological index.- Specified by:
putVertex
in interfaceDirectedAcyclicGraph.TopoOrderMapping<V>
- Parameters:
index
- the topological indexvertex
- the vertex
-
getVertex
public V getVertex(java.lang.Integer index)
Description copied from interface:DirectedAcyclicGraph.TopoOrderMapping
Get the vertex at the given topological index.- Specified by:
getVertex
in interfaceDirectedAcyclicGraph.TopoOrderMapping<V>
- Parameters:
index
- the topological index- Returns:
- vertex the vertex
-
getTopologicalIndex
public java.lang.Integer getTopologicalIndex(V vertex)
Description copied from interface:DirectedAcyclicGraph.TopoOrderMapping
Get the topological index of the given vertex.- Specified by:
getTopologicalIndex
in interfaceDirectedAcyclicGraph.TopoOrderMapping<V>
- Parameters:
vertex
- the vertex- Returns:
- the index that the vertex is at, or null if the vertex isn't in the topological ordering
-
removeVertex
public java.lang.Integer removeVertex(V vertex)
Description copied from interface:DirectedAcyclicGraph.TopoOrderMapping
Remove the given vertex from the topological ordering- Specified by:
removeVertex
in interfaceDirectedAcyclicGraph.TopoOrderMapping<V>
- Parameters:
vertex
- the vertex- Returns:
- the index that the vertex was at, or null if the vertex wasn't in the topological ordering
-
removeAllVertices
public void removeAllVertices()
Description copied from interface:DirectedAcyclicGraph.TopoOrderMapping
Remove all vertices from the topological ordering- Specified by:
removeAllVertices
in interfaceDirectedAcyclicGraph.TopoOrderMapping<V>
-
getTopoOrderMapping
public DirectedAcyclicGraph.TopoOrderMapping<V> getTopoOrderMapping()
Description copied from interface:DirectedAcyclicGraph.TopoOrderMappingFactory
Create a new instance of aDirectedAcyclicGraph.TopoOrderMapping
.- Specified by:
getTopoOrderMapping
in interfaceDirectedAcyclicGraph.TopoOrderMappingFactory<V>
- Returns:
- a new instance of a
DirectedAcyclicGraph.TopoOrderMapping
-
translateIndex
private int translateIndex(int index)
We translate the topological index to an ArrayList index. We have to do this because topological indices can be negative, and we want to do it because we can make better use of space by only needing an ArrayList of size |AR|.- Returns:
- the ArrayList index
-
-