Package ghidra.util.graph
Class DeterministicDependencyGraph<T>
- java.lang.Object
-
- ghidra.util.graph.AbstractDependencyGraph<T>
-
- ghidra.util.graph.DeterministicDependencyGraph<T>
-
- Type Parameters:
T
- the type of value.
public class DeterministicDependencyGraph<T> extends AbstractDependencyGraph<T>
Dependency Graph that usesTreeMap
s andListOrderedSet
s to provide determinism in pulling (AbstractDependencyGraph.pop()
) from the graph. This class seems to consume more memory thanDependencyGraph
, and if memory is not an issue, it also seems to be slightly faster as well.This class was implemented to provide determinism while doing developmental debugging.
- See Also:
AbstractDependencyGraph
,DependencyGraph
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ghidra.util.graph.AbstractDependencyGraph
AbstractDependencyGraph.DependencyNode
-
-
Field Summary
-
Fields inherited from class ghidra.util.graph.AbstractDependencyGraph
nodeMap, unvisitedIndependentSet
-
-
Constructor Summary
Constructors Constructor Description DeterministicDependencyGraph()
DeterministicDependencyGraph(DeterministicDependencyGraph<T> other)
Copy constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DeterministicDependencyGraph<T>
copy()
Returns a copy of this graph.protected java.util.Set<AbstractDependencyGraph.DependencyNode>
createDependencyNodeSet()
Creates the Set ofAbstractDependencyGraph.DependencyNode
s appropriate for the implementer.protected java.util.Map<T,AbstractDependencyGraph.DependencyNode>
createNodeMap()
Creates the Map of Nodes toAbstractDependencyGraph.DependencyNode
s appropriate for the implementer.protected java.util.Set<T>
createNodeSet()
Creates the Set of Nodes appropriate for the implementer.java.util.Set<T>
getNodeMapValues()
Returns the set of values in this graph.-
Methods inherited from class ghidra.util.graph.AbstractDependencyGraph
addDependency, addValue, contains, getAllIndependentValues, getDependentValues, getNodeMap, getUnvisitedIndependentValues, getValues, hasCycles, hasUnVisitedIndependentValues, isEmpty, pop, remove, size
-
-
-
-
Constructor Detail
-
DeterministicDependencyGraph
public DeterministicDependencyGraph()
-
DeterministicDependencyGraph
public DeterministicDependencyGraph(DeterministicDependencyGraph<T> other)
Copy constructor- Parameters:
other
- the other DependencyGraph to copy
-
-
Method Detail
-
copy
public DeterministicDependencyGraph<T> copy()
Description copied from class:AbstractDependencyGraph
Returns a copy of this graph.- Specified by:
copy
in classAbstractDependencyGraph<T>
- Returns:
- a copy of this graph.
-
createNodeMap
protected java.util.Map<T,AbstractDependencyGraph.DependencyNode> createNodeMap()
Description copied from class:AbstractDependencyGraph
Creates the Map of Nodes toAbstractDependencyGraph.DependencyNode
s appropriate for the implementer.- Specified by:
createNodeMap
in classAbstractDependencyGraph<T>
- Returns:
- a new Map of Nodes to
AbstractDependencyGraph.DependencyNode
s.
-
createNodeSet
protected java.util.Set<T> createNodeSet()
Description copied from class:AbstractDependencyGraph
Creates the Set of Nodes appropriate for the implementer.- Specified by:
createNodeSet
in classAbstractDependencyGraph<T>
- Returns:
- a new Set of Nodes.
-
createDependencyNodeSet
protected java.util.Set<AbstractDependencyGraph.DependencyNode> createDependencyNodeSet()
Description copied from class:AbstractDependencyGraph
Creates the Set ofAbstractDependencyGraph.DependencyNode
s appropriate for the implementer.- Specified by:
createDependencyNodeSet
in classAbstractDependencyGraph<T>
- Returns:
- a new Set of
AbstractDependencyGraph.DependencyNode
s.
-
getNodeMapValues
public java.util.Set<T> getNodeMapValues()
Description copied from class:AbstractDependencyGraph
Returns the set of values in this graph.- Specified by:
getNodeMapValues
in classAbstractDependencyGraph<T>
- Returns:
- the set of values in this graph.
-
-