Class ImmutableDoubleValueGraphAdapter<V>

java.lang.Object
org.jgrapht.graph.AbstractGraph<V,com.google.common.graph.EndpointPair<V>>
org.jgrapht.graph.guava.BaseValueGraphAdapter<V,W,com.google.common.graph.ImmutableValueGraph<V,W>>
org.jgrapht.graph.guava.ImmutableValueGraphAdapter<V,Double>
org.jgrapht.graph.guava.ImmutableDoubleValueGraphAdapter<V>
Type Parameters:
V - the graph vertex type
All Implemented Interfaces:
Serializable, Cloneable, Graph<V,com.google.common.graph.EndpointPair<V>>

public class ImmutableDoubleValueGraphAdapter<V> extends ImmutableValueGraphAdapter<V,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:
  • Constructor Details

    • ImmutableDoubleValueGraphAdapter

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