Package ghidra.graph.graphs

# Class GroupingVisualGraph<V extends VisualVertex,E extends VisualEdge<V>>

java.lang.Object
edu.uci.ics.jung.graph.AbstractGraph<V,E>
edu.uci.ics.jung.graph.AbstractTypedGraph<V,E>
edu.uci.ics.jung.graph.DirectedSparseGraph<V,E>
ghidra.graph.jung.JungDirectedGraph<V,E>
ghidra.graph.graphs.JungDirectedVisualGraph<V,E>
ghidra.graph.graphs.DefaultVisualGraph<V,E>
ghidra.graph.graphs.GroupingVisualGraph<V,E>

Type Parameters:
  `V` - the vertex type
  `E` - the edge type

All Implemented Interfaces:
  `edu.uci.ics.jung.graph.DirectedGraph<V,E>`, `edu.uci.ics.jung.graph.Graph<V,E>`, `edu.uci.ics.jung.graph.Hypergraph<V,E>`, `GDirectedGraph<V,E>`, `GImplicitDirectedGraph<V,E>`, `VisualGraph<V,E>`, `Serializable`

public abstract class GroupingVisualGraph<V extends VisualVertex,E extends VisualEdge<V>> extends DefaultVisualGraph<V,E>
A visual graph with methods needed to facilitate grouping of vertices.

See Also:
  - Serialized Form

- ## Field Summary

  ### Fields inherited from class ghidra.graph.graphs.DefaultVisualGraph

  `focusedVertex`

  ### Fields inherited from class edu.uci.ics.jung.graph.DirectedSparseGraph

  `edges, vertices`

  ### Fields inherited from class edu.uci.ics.jung.graph.AbstractTypedGraph

  `edge_type`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GroupingVisualGraph()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract V`
  `findMatchingVertex(V v)`
  Finds a vertex that matches the given vertex.
  `abstract V`
  `findMatchingVertex(V v, Collection<V> ignore)`
  The same as `findMatchingVertex(VisualVertex)`, except that you can provide a collection of vertices to be ignored.

  ### Methods inherited from class ghidra.graph.graphs.DefaultVisualGraph

  `addEdge, addGraphChangeListener, addVertex, clearSelectedVertices, copy, dispose, fireEdgesAdded, fireEdgesRemoved, fireVerticesAdded, fireVerticesRemoved, getAllEdges, getEdges, getFocusedVertex, getSelectedVertices, initializeLocation, removeEdge, removeGraphChangeListener, removeVertex, removeVertices, setSelectedVertices, setVertexFocused, vertexLocationChanged, verticesAdded, verticesRemoved`

  ### Methods inherited from class ghidra.graph.jung.JungDirectedGraph

  `addEdge, containsEdge, emptyCopy, isEmpty, removeEdges`

  ### Methods inherited from class edu.uci.ics.jung.graph.DirectedSparseGraph

  `containsEdge, containsVertex, findEdge, findEdgeSet, getDest, getEdgeCount, getEdges, getEndpoints, getFactory, getIncidentEdges, getIncoming_internal, getInEdges, getNeighbors, getOutEdges, getOutgoing_internal, getPredecessors, getPreds_internal, getSource, getSuccessors, getSuccs_internal, getVertexCount, getVertices, isDest, isSource`

  ### Methods inherited from class edu.uci.ics.jung.graph.AbstractTypedGraph

  `getDefaultEdgeType, getEdgeCount, getEdges, getEdgeType, hasEqualEdgeType, validateEdgeType`

  ### Methods inherited from class edu.uci.ics.jung.graph.AbstractGraph

  `addEdge, addEdge, addEdge, addEdge, addEdge, degree, getIncidentCount, getIncidentVertices, getNeighborCount, getOpposite, getPredecessorCount, getSuccessorCount, getValidatedEndpoints, inDegree, isIncident, isNeighbor, isPredecessor, isSuccessor, outDegree, toString`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface ghidra.graph.GDirectedGraph

  `addEdge, containsEdge, containsEdge, containsVertex, emptyCopy, findEdge, getEdgeCount, getEdges, getIncidentEdges, getInEdges, getOutEdges, getPredecessors, getSuccessors, getVertexCount, getVertices, isEmpty, removeEdges`

  ### Methods inherited from interface edu.uci.ics.jung.graph.Graph

  `addEdge, addEdge, getOpposite, getPredecessorCount, getSuccessorCount, inDegree, isPredecessor, isSuccessor, outDegree`

  ### Methods inherited from interface edu.uci.ics.jung.graph.Hypergraph

  `addEdge, addEdge, degree, getDefaultEdgeType, getEdgeCount, getEdges, getEdgeType, getIncidentCount, getIncidentVertices, getNeighborCount, isIncident, isNeighbor`

  ### Methods inherited from interface ghidra.graph.VisualGraph

  `getLayout`

- ## Constructor Details

  - ### GroupingVisualGraph

    public GroupingVisualGraph()

- ## Method Details

  - ### findMatchingVertex

    public abstract V findMatchingVertex(V v)
    Finds a vertex that matches the given vertex.

    Grouping can trigger vertex adds and removals. This method is a way for subclasses to search for a vertex that matches the given vertex, but may or may not be the same instance.

    Parameters:
      `v` - the vertex
    Returns:
      the matching vertex or null

  - ### findMatchingVertex

    public abstract V findMatchingVertex(V v, Collection<V> ignore)
    The same as `findMatchingVertex(VisualVertex)`, except that you can provide a collection of vertices to be ignored.

    This is useful during graph transformations when duplicate vertices may be in the graph at the same time.

    Parameters:
      `v` - the vertex
      `ignore` - vertices to ignore when searching
    Returns:
      the matching vertex or null