Interface MutableGraph<N>

    • Method Detail

      • addNode

        @CanIgnoreReturnValue
        boolean addNode​(N node)
        Adds node if it is not already present.

        Nodes must be unique, just as Map keys must be. They must also be non-null.

        Returns:
        true if the graph was modified as a result of this call
      • putEdge

        @CanIgnoreReturnValue
        boolean putEdge​(N nodeU,
                        N nodeV)
        Adds an edge connecting nodeU to nodeV if one is not already present.

        If the graph is directed, the resultant edge will be directed; otherwise, it will be undirected.

        If nodeU and nodeV are not already present in this graph, this method will silently add nodeU and nodeV to the graph.

        Returns:
        true if the graph was modified as a result of this call
        Throws:
        IllegalArgumentException - if the introduction of the edge would violate Graph.allowsSelfLoops()
      • putEdge

        @CanIgnoreReturnValue
        boolean putEdge​(EndpointPair<N> endpoints)
        Adds an edge connecting endpoints (in the order, if any, specified by endpoints) if one is not already present.

        If this graph is directed, endpoints must be ordered and the added edge will be directed; if it is undirected, the added edge will be undirected.

        If this graph is directed, endpoints must be ordered.

        If either or both endpoints are not already present in this graph, this method will silently add each missing endpoint to the graph.

        Returns:
        true if the graph was modified as a result of this call
        Throws:
        IllegalArgumentException - if the introduction of the edge would violate Graph.allowsSelfLoops()
        IllegalArgumentException - if the endpoints are unordered and the graph is directed
        Since:
        27.1
      • removeNode

        @CanIgnoreReturnValue
        boolean removeNode​(N node)
        Removes node if it is present; all edges incident to node will also be removed.
        Returns:
        true if the graph was modified as a result of this call
      • removeEdge

        @CanIgnoreReturnValue
        boolean removeEdge​(N nodeU,
                           N nodeV)
        Removes the edge connecting nodeU to nodeV, if it is present.
        Returns:
        true if the graph was modified as a result of this call
      • removeEdge

        @CanIgnoreReturnValue
        boolean removeEdge​(EndpointPair<N> endpoints)
        Removes the edge connecting endpoints, if it is present.

        If this graph is directed, endpoints must be ordered.

        Returns:
        true if the graph was modified as a result of this call
        Throws:
        IllegalArgumentException - if the endpoints are unordered and the graph is directed
        Since:
        27.1