Class DirectedAcyclicGraph.VisitedBitSetImpl
java.lang.Object
org.jgrapht.graph.DirectedAcyclicGraph.VisitedBitSetImpl
- All Implemented Interfaces:
Serializable, DirectedAcyclicGraph.VisitedStrategy, DirectedAcyclicGraph.VisitedStrategyFactory
- Enclosing class:
DirectedAcyclicGraph<V,E>
protected static class DirectedAcyclicGraph.VisitedBitSetImpl
extends Object
implements DirectedAcyclicGraph.VisitedStrategy, DirectedAcyclicGraph.VisitedStrategyFactory
A visited strategy which uses a
BitSet.
This implementation is close to the performance of DirectedAcyclicGraph.VisitedArrayListImpl, with 1/8 the
memory usage.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate DirectedAcyclicGraph.Regionprivate static final longprivate final BitSet -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclearVisited(int index) Clear the visited state of the given topological index.booleangetVisited(int index) Get if the given topological index has been visited.getVisitedStrategy(DirectedAcyclicGraph.Region affectedRegion) Create a new instance ofDirectedAcyclicGraph.VisitedStrategy.voidsetVisited(int index) Mark the given topological index as visited.private inttranslateIndex(int index) We translate the topological index to an ArrayList index.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
visited
-
affectedRegion
-
-
Constructor Details
-
VisitedBitSetImpl
public VisitedBitSetImpl()Constructor
-
-
Method Details
-
getVisitedStrategy
public DirectedAcyclicGraph.VisitedStrategy getVisitedStrategy(DirectedAcyclicGraph.Region affectedRegion) Description copied from interface:DirectedAcyclicGraph.VisitedStrategyFactoryCreate a new instance ofDirectedAcyclicGraph.VisitedStrategy.- Specified by:
getVisitedStrategyin interfaceDirectedAcyclicGraph.VisitedStrategyFactory- Parameters:
affectedRegion- the affected region- Returns:
- a new instance of
DirectedAcyclicGraph.VisitedStrategyfor the affected region
-
setVisited
public void setVisited(int index) Description copied from interface:DirectedAcyclicGraph.VisitedStrategyMark the given topological index as visited.- Specified by:
setVisitedin interfaceDirectedAcyclicGraph.VisitedStrategy- Parameters:
index- the topological index
-
getVisited
public boolean getVisited(int index) Description copied from interface:DirectedAcyclicGraph.VisitedStrategyGet if the given topological index has been visited.- Specified by:
getVisitedin interfaceDirectedAcyclicGraph.VisitedStrategy- Parameters:
index- the topological index- Returns:
- true if the given topological index has been visited, false otherwise
-
clearVisited
Description copied from interface:DirectedAcyclicGraph.VisitedStrategyClear the visited state of the given topological index.- Specified by:
clearVisitedin interfaceDirectedAcyclicGraph.VisitedStrategy- Parameters:
index- the index- Throws:
UnsupportedOperationException- if the implementation doesn't support (or doesn't need) clearance. For example, if the factory creates a new instance every time, it is a waste of cycles to reset the state after the search of the Affected Region is done, so an UnsupportedOperationException *should* be thrown.
-
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
-