Class ValueGraphBuilder<N,V>
- java.lang.Object
- 
- com.google.common.graph.ValueGraphBuilder<N,V>
 
- 
- Type Parameters:
- N- The most general node type this builder will support. This is normally- Objectunless it is constrained by using a method like- nodeOrder(com.google.common.graph.ElementOrder<N1>), or the builder is constructed based on an existing- ValueGraphusing- from(ValueGraph).
- V- The most general value type this builder will support. This is normally- Objectunless the builder is constructed based on an existing- Graphusing- from(ValueGraph).
 
 @Beta public final class ValueGraphBuilder<N,V> extends java.lang.Object A builder for constructing instances ofMutableValueGraphorImmutableValueGraphwith user-defined properties.A ValueGraphbuilt by this class has the following default properties:- does not allow self-loops
- orders ValueGraph.nodes()in the order in which the elements were added (insertion order)
 ValueGraphs built by this class also guarantee that each collection-returning accessor returns a (live) unmodifiable view; see the external documentation for details.Examples of use: // Building a mutable value graph MutableValueGraph<String, Double> graph = ValueGraphBuilder.undirected().allowsSelfLoops(true).build(); graph.putEdgeValue("San Francisco", "San Francisco", 0.0); graph.putEdgeValue("San Jose", "San Jose", 0.0); graph.putEdgeValue("San Francisco", "San Jose", 48.4); // Building an immutable value graph ImmutableValueGraph<String, Double> immutableGraph = ValueGraphBuilder.undirected() .allowsSelfLoops(true) .<String, Double>immutable() .putEdgeValue("San Francisco", "San Francisco", 0.0) .putEdgeValue("San Jose", "San Jose", 0.0) .putEdgeValue("San Francisco", "San Jose", 48.4) .build();- Since:
- 20.0
- Author:
- James Sexton, Joshua O'Madadhain
 
- 
- 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ValueGraphBuilder<N,V>allowsSelfLoops(boolean allowsSelfLoops)Specifies whether the graph will allow self-loops (edges that connect a node to itself).<N1 extends N,V1 extends V>
 MutableValueGraph<N1,V1>build()Returns an emptyMutableValueGraphwith the properties of thisValueGraphBuilder.static ValueGraphBuilder<java.lang.Object,java.lang.Object>directed()Returns aValueGraphBuilderfor building directed graphs.ValueGraphBuilder<N,V>expectedNodeCount(int expectedNodeCount)Specifies the expected number of nodes in the graph.static <N,V>
 ValueGraphBuilder<N,V>from(ValueGraph<N,V> graph)Returns aValueGraphBuilderinitialized with all properties queryable fromgraph.<N1 extends N,V1 extends V>
 ImmutableValueGraph.Builder<N1,V1>immutable()Returns anImmutableValueGraph.Builderwith the properties of thisValueGraphBuilder.<N1 extends N>
 ValueGraphBuilder<N1,V>incidentEdgeOrder(ElementOrder<N1> incidentEdgeOrder)Specifies the order of iteration for the elements ofValueGraph.edges(),ValueGraph.adjacentNodes(Object),ValueGraph.predecessors(Object),ValueGraph.successors(Object)andValueGraph.incidentEdges(Object).<N1 extends N>
 ValueGraphBuilder<N1,V>nodeOrder(ElementOrder<N1> nodeOrder)Specifies the order of iteration for the elements ofGraph.nodes().static ValueGraphBuilder<java.lang.Object,java.lang.Object>undirected()Returns aValueGraphBuilderfor building undirected graphs.
 
- 
- 
- 
Method Detail- 
directedpublic static ValueGraphBuilder<java.lang.Object,java.lang.Object> directed() Returns aValueGraphBuilderfor building directed graphs.
 - 
undirectedpublic static ValueGraphBuilder<java.lang.Object,java.lang.Object> undirected() Returns aValueGraphBuilderfor building undirected graphs.
 - 
frompublic static <N,V> ValueGraphBuilder<N,V> from(ValueGraph<N,V> graph) Returns aValueGraphBuilderinitialized with all properties queryable fromgraph.The "queryable" properties are those that are exposed through the ValueGraphinterface, such asValueGraph.isDirected(). Other properties, such asexpectedNodeCount(int), are not set in the new builder.
 - 
immutablepublic <N1 extends N,V1 extends V> ImmutableValueGraph.Builder<N1,V1> immutable() Returns anImmutableValueGraph.Builderwith the properties of thisValueGraphBuilder.The returned builder can be used for populating an ImmutableValueGraph.Note that the returned builder will always have incidentEdgeOrder(com.google.common.graph.ElementOrder<N1>)set toElementOrder.stable(), regardless of the value that was set in this builder.- Since:
- 28.0
 
 - 
allowsSelfLoops@CanIgnoreReturnValue public ValueGraphBuilder<N,V> allowsSelfLoops(boolean allowsSelfLoops) Specifies whether the graph will allow self-loops (edges that connect a node to itself). Attempting to add a self-loop to a graph that does not allow them will throw anUnsupportedOperationException.The default value is false.
 - 
expectedNodeCount@CanIgnoreReturnValue public ValueGraphBuilder<N,V> expectedNodeCount(int expectedNodeCount) Specifies the expected number of nodes in the graph.- Throws:
- java.lang.IllegalArgumentException- if- expectedNodeCountis negative
 
 - 
nodeOrderpublic <N1 extends N> ValueGraphBuilder<N1,V> nodeOrder(ElementOrder<N1> nodeOrder) Specifies the order of iteration for the elements ofGraph.nodes().The default value is insertion order.
 - 
incidentEdgeOrderpublic <N1 extends N> ValueGraphBuilder<N1,V> incidentEdgeOrder(ElementOrder<N1> incidentEdgeOrder) Specifies the order of iteration for the elements ofValueGraph.edges(),ValueGraph.adjacentNodes(Object),ValueGraph.predecessors(Object),ValueGraph.successors(Object)andValueGraph.incidentEdges(Object).The default value is unorderedfor mutable graphs. For immutable graphs, this value is ignored; they always have astableorder.- Throws:
- java.lang.IllegalArgumentException- if- incidentEdgeOrderis not either- ElementOrder.unordered()or- ElementOrder.stable().
- Since:
- 29.0
 
 - 
buildpublic <N1 extends N,V1 extends V> MutableValueGraph<N1,V1> build() Returns an emptyMutableValueGraphwith the properties of thisValueGraphBuilder.
 
- 
 
-