Package com.google.common.graph
Class EndpointPair<N>
- java.lang.Object
-
- com.google.common.graph.EndpointPair<N>
-
- All Implemented Interfaces:
Iterable<N>
@Beta @Immutable(containerOf="N") public abstract class EndpointPair<N> extends Object implements Iterable<N>
An immutable pair representing the two endpoints of an edge in a graph. TheEndpointPairof a directed edge is an ordered pair of nodes (source()andtarget()). TheEndpointPairof an undirected edge is an unordered pair of nodes (nodeU()andnodeV()).The edge is a self-loop if, and only if, the two endpoints are equal.
- Since:
- 20.0
- Author:
- James Sexton
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description NadjacentNode(N node)Returns the node that is adjacent tonodealong the origin edge.abstract booleanequals(@Nullable Object obj)abstract inthashCode()The hashcode of an orderedEndpointPairis equal toObjects.hashCode(source(), target()).abstract booleanisOrdered()Returnstrueif thisEndpointPairis an ordered pair (i.e. represents the endpoints of a directed edge).UnmodifiableIterator<N>iterator()NnodeU()If thisEndpointPairisOrdered()returns thesource(); otherwise, returns an arbitrary (but consistent) endpoint of the origin edge.NnodeV()static <N> EndpointPair<N>ordered(N source, N target)Returns anEndpointPairrepresenting the endpoints of a directed edge.abstract Nsource()If thisEndpointPairisOrdered(), returns the node which is the source.abstract Ntarget()If thisEndpointPairisOrdered(), returns the node which is the target.static <N> EndpointPair<N>unordered(N nodeU, N nodeV)Returns anEndpointPairrepresenting the endpoints of an undirected edge.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Method Detail
-
ordered
public static <N> EndpointPair<N> ordered(N source, N target)
Returns anEndpointPairrepresenting the endpoints of a directed edge.
-
unordered
public static <N> EndpointPair<N> unordered(N nodeU, N nodeV)
Returns anEndpointPairrepresenting the endpoints of an undirected edge.
-
source
public abstract N source()
If thisEndpointPairisOrdered(), returns the node which is the source.- Throws:
UnsupportedOperationException- if thisEndpointPairis not ordered
-
target
public abstract N target()
If thisEndpointPairisOrdered(), returns the node which is the target.- Throws:
UnsupportedOperationException- if thisEndpointPairis not ordered
-
nodeU
public final N nodeU()
If thisEndpointPairisOrdered()returns thesource(); otherwise, returns an arbitrary (but consistent) endpoint of the origin edge.
-
nodeV
public final N nodeV()
Returns the nodeadjacenttonodeU()along the origin edge. If thisEndpointPairisOrdered(), this is equal totarget().
-
adjacentNode
public final N adjacentNode(N node)
Returns the node that is adjacent tonodealong the origin edge.- Throws:
IllegalArgumentException- if thisEndpointPairdoes not containnode- Since:
- 20.0 (but the argument type was changed from
ObjecttoNin 31.0)
-
isOrdered
public abstract boolean isOrdered()
Returnstrueif thisEndpointPairis an ordered pair (i.e. represents the endpoints of a directed edge).
-
iterator
public final UnmodifiableIterator<N> iterator()
-
equals
public abstract boolean equals(@Nullable Object obj)
Two orderedEndpointPairs are equal if theirsource()andtarget()are equal. Two unorderedEndpointPairs are equal if they contain the same nodes. An orderedEndpointPairis never equal to an unorderedEndpointPair.
-
hashCode
public abstract int hashCode()
The hashcode of an orderedEndpointPairis equal toObjects.hashCode(source(), target()). The hashcode of an unorderedEndpointPairis equal tonodeU().hashCode() + nodeV().hashCode().
-
-