Interface MutableValueGraph<N,​V>

    • 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
      • putEdgeValue

        @CanIgnoreReturnValue
        V putEdgeValue​(N nodeU,
                       N nodeV,
                       V value)
        Adds an edge connecting nodeU to nodeV if one is not already present, and sets a value for that edge to value (overwriting the existing value, if any).

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

        Values do not have to be unique. However, values must be non-null.

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

        Returns:
        the value previously associated with the edge connecting nodeU to nodeV, or null if there was no such edge.
        Throws:
        IllegalArgumentException - if the introduction of the edge would violate ValueGraph.allowsSelfLoops()
      • putEdgeValue

        @CanIgnoreReturnValue
        V putEdgeValue​(EndpointPair<N> endpoints,
                       V value)
        Adds an edge connecting endpoints if one is not already present, and sets a value for that edge to value (overwriting the existing value, if any).

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

        If this graph is directed, endpoints must be ordered.

        Values do not have to be unique. However, values must be non-null.

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

        Returns:
        the value previously associated with the edge connecting nodeU to nodeV, or null if there was no such edge.
        Throws:
        IllegalArgumentException - if the introduction of the edge would violate ValueGraph.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
        V removeEdge​(N nodeU,
                     N nodeV)
        Removes the edge connecting nodeU to nodeV, if it is present.
        Returns:
        the value previously associated with the edge connecting nodeU to nodeV, or null if there was no such edge.
      • removeEdge

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

        If this graph is directed, endpoints must be ordered.

        Returns:
        the value previously associated with the edge connecting endpoints, or null if there was no such edge.
        Since:
        27.1