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.MutableValueGraph<V,W>>
org.jgrapht.graph.guava.MutableValueGraphAdapter<V,Double>
org.jgrapht.graph.guava.MutableDoubleValueGraphAdapter<V>
- Type Parameters:
V- the graph vertex type
- All Implemented Interfaces:
Serializable,Cloneable,Graph<V,com.google.common.graph.EndpointPair<V>>
A graph adapter class using Guava's
MutableValueGraph specialized with double values.
The adapter uses class EndpointPair to represent edges. Changes in the adapter such as
adding or removing vertices and edges are reflected in the underlying value graph.
Each edge in MutableValueGraph is associated with a double value which is mapped to the
edge weight in the resulting Graph. Thus, the graph is weighted and calling methods
Graph.getEdgeWeight(Object) and setEdgeWeight(EndpointPair, double) will get and set
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);
Graph<String, EndpointPair<String>> graph = new MutableDoubleValueGraphAdapter<>(mutableValueGraph);
System.out.println(graph.getEdgeWeight(EndpointPair.ordered("v1", "v2")); // outputs 3.0
graph.setEdgeWeight(EndpointPair.ordered("v1", "v2"), 7.0);
System.out.println(graph.getEdgeWeight(EndpointPair.ordered("v1", "v2")); // outputs 7.0
- Author:
- Dimitrios Michail
- See Also:
-
Field Summary
Fields inherited from class org.jgrapht.graph.guava.MutableValueGraphAdapter
defaultValueFields inherited from class org.jgrapht.graph.guava.BaseValueGraphAdapter
edgeSupplier, LOOPS_NOT_ALLOWED, unmodifiableEdgeSet, unmodifiableVertexSet, valueConverter, valueGraph, vertexOrder, vertexOrderMethod, vertexSupplierFields inherited from interface org.jgrapht.Graph
DEFAULT_EDGE_WEIGHT -
Constructor Summary
ConstructorsConstructorDescriptionMutableDoubleValueGraphAdapter(com.google.common.graph.MutableValueGraph<V, Double> valueGraph) Create a new adapter.MutableDoubleValueGraphAdapter(com.google.common.graph.MutableValueGraph<V, Double> valueGraph, Supplier<V> vertexSupplier, Supplier<com.google.common.graph.EndpointPair<V>> edgeSupplier) Create a new adapter. -
Method Summary
Modifier and TypeMethodDescriptionvoidsetEdgeWeight(com.google.common.graph.EndpointPair<V> e, double weight) Assigns a weight to an edge.Methods inherited from class org.jgrapht.graph.guava.MutableValueGraphAdapter
addEdge, addEdge, addVertex, addVertex, clone, removeEdge, removeEdge, removeVertexMethods inherited from class org.jgrapht.graph.guava.BaseValueGraphAdapter
containsEdge, containsVertex, createVertexOrder, degreeOf, edgeSet, edgesOf, getAllEdges, getEdge, getEdgeSource, getEdgeSupplier, getEdgeTarget, getEdgeWeight, getType, getVertexSupplier, incomingEdgesOf, inDegreeOf, outDegreeOf, outgoingEdgesOf, setEdgeSupplier, setVertexSupplier, vertexSetMethods inherited from class org.jgrapht.graph.AbstractGraph
assertVertexExist, containsEdge, equals, hashCode, removeAllEdges, removeAllEdges, removeAllEdges, removeAllVertices, toString, toStringFromSetsMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.jgrapht.Graph
containsEdge, containsEdge, containsVertex, degreeOf, edgeSet, edgesOf, getAllEdges, getEdge, getEdgeSource, getEdgeSupplier, getEdgeTarget, getEdgeWeight, getType, getVertexSupplier, incomingEdgesOf, inDegreeOf, iterables, outDegreeOf, outgoingEdgesOf, removeAllEdges, removeAllEdges, removeAllVertices, setEdgeWeight, vertexSet
-
Constructor Details
-
MutableDoubleValueGraphAdapter
public MutableDoubleValueGraphAdapter(com.google.common.graph.MutableValueGraph<V, Double> valueGraph) Create a new adapter.- Parameters:
valueGraph- the value graph
-
MutableDoubleValueGraphAdapter
public MutableDoubleValueGraphAdapter(com.google.common.graph.MutableValueGraph<V, Double> valueGraph, Supplier<V> vertexSupplier, Supplier<com.google.common.graph.EndpointPair<V>> edgeSupplier) Create a new adapter.- Parameters:
valueGraph- the value graphvertexSupplier- the vertex supplieredgeSupplier- the edge supplier
-
-
Method Details
-
setEdgeWeight
Description copied from class:MutableValueGraphAdapterAssigns a weight to an edge. This method always throws anUnsupportedOperationExceptionsince the adapter works one-way from values to weights. Adjusting the weights can be done by adjusting the values in the underlyingValueGraphwhich will automatically be propagated using the provided converter.- Specified by:
setEdgeWeightin interfaceGraph<V,com.google.common.graph.EndpointPair<V>> - Overrides:
setEdgeWeightin classMutableValueGraphAdapter<V,Double> - Parameters:
e- edge on which to set weightweight- new weight for edge
-