Package com.google.common.graph
Class ConfigurableMutableGraph<N>
- java.lang.Object
-
- com.google.common.graph.AbstractGraph<N>
-
- com.google.common.graph.ForwardingGraph<N>
-
- com.google.common.graph.ConfigurableMutableGraph<N>
-
- Type Parameters:
N- Node parameter type
- All Implemented Interfaces:
Graph<N>,MutableGraph<N>
final class ConfigurableMutableGraph<N> extends ForwardingGraph<N> implements MutableGraph<N>
Configurable implementation ofMutableGraphthat supports both directed and undirected graphs. Instances of this class should be constructed withGraphBuilder.Time complexities for mutation methods are all O(1) except for
removeNode(N node), which is in O(d_node) where d_node is the degree ofnode.
-
-
Field Summary
Fields Modifier and Type Field Description private MutableValueGraph<N,GraphConstants.Presence>backingValueGraph
-
Constructor Summary
Constructors Constructor Description ConfigurableMutableGraph(AbstractGraphBuilder<? super N> builder)Constructs aMutableGraphwith the properties specified inbuilder.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddNode(N node)Addsnodeif it is not already present.protected Graph<N>delegate()booleanputEdge(N nodeU, N nodeV)Adds an edge connectingnodeUtonodeVif one is not already present.booleanremoveEdge(java.lang.Object nodeU, java.lang.Object nodeV)Removes the edge connectingnodeUtonodeV, if it is present.booleanremoveNode(java.lang.Object node)Removesnodeif it is present; all edges incident tonodewill also be removed.-
Methods inherited from class com.google.common.graph.ForwardingGraph
adjacentNodes, allowsSelfLoops, degree, edges, inDegree, isDirected, nodeOrder, nodes, outDegree, predecessors, successors
-
Methods inherited from class com.google.common.graph.AbstractGraph
edgeCount, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.google.common.graph.Graph
adjacentNodes, allowsSelfLoops, degree, edges, equals, hashCode, inDegree, isDirected, nodeOrder, nodes, outDegree, predecessors, successors
-
-
-
-
Field Detail
-
backingValueGraph
private final MutableValueGraph<N,GraphConstants.Presence> backingValueGraph
-
-
Constructor Detail
-
ConfigurableMutableGraph
ConfigurableMutableGraph(AbstractGraphBuilder<? super N> builder)
Constructs aMutableGraphwith the properties specified inbuilder.
-
-
Method Detail
-
delegate
protected Graph<N> delegate()
- Specified by:
delegatein classForwardingGraph<N>
-
addNode
public boolean addNode(N node)
Description copied from interface:MutableGraphAddsnodeif it is not already present.Nodes must be unique, just as
Mapkeys must be. They must also be non-null.- Specified by:
addNodein interfaceMutableGraph<N>- Returns:
trueif the graph was modified as a result of this call
-
putEdge
public boolean putEdge(N nodeU, N nodeV)
Description copied from interface:MutableGraphAdds an edge connectingnodeUtonodeVif one is not already present. In an undirected graph, the edge will also connectnodeVtonodeU.Behavior if
nodeUandnodeVare not already present in this graph is implementation-dependent. Suggested behaviors include (a) silentlyaddingnodeUandnodeVto the graph (this is the behavior of the default implementations) or (b) throwingIllegalArgumentException.- Specified by:
putEdgein interfaceMutableGraph<N>- Returns:
trueif the graph was modified as a result of this call
-
removeNode
public boolean removeNode(java.lang.Object node)
Description copied from interface:MutableGraphRemovesnodeif it is present; all edges incident tonodewill also be removed.- Specified by:
removeNodein interfaceMutableGraph<N>- Returns:
trueif the graph was modified as a result of this call
-
removeEdge
public boolean removeEdge(java.lang.Object nodeU, java.lang.Object nodeV)Description copied from interface:MutableGraphRemoves the edge connectingnodeUtonodeV, if it is present.- Specified by:
removeEdgein interfaceMutableGraph<N>- Returns:
trueif the graph was modified as a result of this call
-
-