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(). 
 - 
 
 -