Package ghidra.util.graph
Class DependencyGraph<T>
java.lang.Object
ghidra.util.graph.AbstractDependencyGraph<T>
ghidra.util.graph.DependencyGraph<T>
- Type Parameters:
T
- the type of value. This class uses the values as keys in HashSets, so the value type must be meet the equals() and hashCode() requirements for hashing.
Original Dependency Graph implementation that uses
HashMap
s and HashSet
s.
Side affect of these is that data pulled from the graph (AbstractDependencyGraph.pop()
) is not performed
in a deterministic order. However, load time for the graph is O(1).- See Also:
-
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
-
Method Summary
Modifier and TypeMethodDescriptioncopy()
Returns a copy of this graph.protected Set
<AbstractDependencyGraph<T>.DependencyNode> Creates the Set ofAbstractDependencyGraph<T>.DependencyNode
s appropriate for the implementer.protected Map
<T, AbstractDependencyGraph<T>.DependencyNode> Creates the Map of Nodes toAbstractDependencyGraph<T>.DependencyNode
s appropriate for the implementer.Creates the Set of Nodes appropriate for the implementer.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 Details
-
DependencyGraph
public DependencyGraph() -
DependencyGraph
Copy constructor- Parameters:
other
- the other DependencyGraph to copy
-
-
Method Details
-
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
Description copied from class:AbstractDependencyGraph
Creates the Map of Nodes toAbstractDependencyGraph<T>.DependencyNode
s appropriate for the implementer.- Specified by:
createNodeMap
in classAbstractDependencyGraph<T>
- Returns:
- a new Map of Nodes to
AbstractDependencyGraph<T>.DependencyNode
s.
-
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
Description copied from class:AbstractDependencyGraph
Creates the Set ofAbstractDependencyGraph<T>.DependencyNode
s appropriate for the implementer.- Specified by:
createDependencyNodeSet
in classAbstractDependencyGraph<T>
- Returns:
- a new Set of
AbstractDependencyGraph<T>.DependencyNode
s.
-
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.
-