Class ImmutableDoubleValueGraphAdapter<V>

  • Type Parameters:
    V - the graph vertex type
    All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Graph<V,​com.google.common.graph.EndpointPair<V>>

    public class ImmutableDoubleValueGraphAdapter<V>
    extends ImmutableValueGraphAdapter<V,​java.lang.Double>
    A graph adapter class using Guava's ImmutableValueGraph specialized with double values.

    The adapter uses class EndpointPair to represent edges. Since the underlying value graph is immutable, the resulting graph is unmodifiable.

    Each edge in ImmutableValueGraph is associated with a double value which is mapped to the edge weight in the resulting Graph. Thus, the graph is weighted and calling method Graph.getEdgeWeight(Object) will return the value of an edge.

    See the example below on how to create such an adapter:

     MutableValueGraph<String, Double> mutableValueGraph =
         ValueGraphBuilder.directed().allowsSelfLoops(true).build();
     
     mutableValueGraph.addNode("v1");
     mutableValueGraph.addNode("v2");
     mutableValueGraph.putEdgeValue("v1", "v2", 3.0);
     
     ImmutableValueGraph<String, Double> immutableValueGraph = ImmutableValueGraph.copyOf(mutableValueGraph);
     
     Graph<String, EndpointPair<String>> graph = new ImmutableDoubleValueGraphAdapter<>(immutableValueGraph);
     
     System.out.println(graph.getEdgeWeight(EndpointPair.ordered("v1", "v2")); // outputs 3.0
     
    Author:
    Dimitrios Michail
    See Also:
    Serialized Form
    • Constructor Detail

      • ImmutableDoubleValueGraphAdapter

        public ImmutableDoubleValueGraphAdapter​(com.google.common.graph.ImmutableValueGraph<V,​java.lang.Double> valueGraph)
        Create a new adapter.
        Parameters:
        valueGraph - the value graph