Package com.google.common.graph
Class EndpointPair<N>
- java.lang.Object
-
- com.google.common.graph.EndpointPair<N>
-
- All Implemented Interfaces:
java.lang.Iterable<N>
@Beta @Immutable(containerOf="N") public abstract class EndpointPair<N> extends java.lang.Object implements java.lang.Iterable<N>
An immutable pair representing the two endpoints of an edge in a graph. TheEndpointPair
of a directed edge is an ordered pair of nodes (source()
andtarget()
). TheEndpointPair
of 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 N
adjacentNode(N node)
Returns the node that is adjacent tonode
along the origin edge.abstract boolean
equals(java.lang.Object obj)
abstract int
hashCode()
The hashcode of an orderedEndpointPair
is equal toObjects.hashCode(source(), target())
.abstract boolean
isOrdered()
Returnstrue
if thisEndpointPair
is an ordered pair (i.e.UnmodifiableIterator<N>
iterator()
N
nodeU()
If thisEndpointPair
isOrdered()
returns thesource()
; otherwise, returns an arbitrary (but consistent) endpoint of the origin edge.N
nodeV()
static <N> EndpointPair<N>
ordered(N source, N target)
Returns anEndpointPair
representing the endpoints of a directed edge.abstract N
source()
If thisEndpointPair
isOrdered()
, returns the node which is the source.abstract N
target()
If thisEndpointPair
isOrdered()
, returns the node which is the target.static <N> EndpointPair<N>
unordered(N nodeU, N nodeV)
Returns anEndpointPair
representing the endpoints of an undirected edge.
-
-
-
Method Detail
-
ordered
public static <N> EndpointPair<N> ordered(N source, N target)
Returns anEndpointPair
representing the endpoints of a directed edge.
-
unordered
public static <N> EndpointPair<N> unordered(N nodeU, N nodeV)
Returns anEndpointPair
representing the endpoints of an undirected edge.
-
source
public abstract N source()
If thisEndpointPair
isOrdered()
, returns the node which is the source.- Throws:
java.lang.UnsupportedOperationException
- if thisEndpointPair
is not ordered
-
target
public abstract N target()
If thisEndpointPair
isOrdered()
, returns the node which is the target.- Throws:
java.lang.UnsupportedOperationException
- if thisEndpointPair
is not ordered
-
nodeU
public final N nodeU()
If thisEndpointPair
isOrdered()
returns thesource()
; otherwise, returns an arbitrary (but consistent) endpoint of the origin edge.
-
nodeV
public final N nodeV()
Returns the nodeadjacent
tonodeU()
along the origin edge. If thisEndpointPair
isOrdered()
, this is equal totarget()
.
-
adjacentNode
public final N adjacentNode(N node)
Returns the node that is adjacent tonode
along the origin edge.- Throws:
java.lang.IllegalArgumentException
- if thisEndpointPair
does not containnode
- Since:
- 20.0 (but the argument type was changed from
Object
toN
in 31.0)
-
isOrdered
public abstract boolean isOrdered()
Returnstrue
if thisEndpointPair
is an ordered pair (i.e. represents the endpoints of a directed edge).
-
iterator
public final UnmodifiableIterator<N> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<N>
-
equals
public abstract boolean equals(@CheckForNull java.lang.Object obj)
Two orderedEndpointPair
s are equal if theirsource()
andtarget()
are equal. Two unorderedEndpointPair
s are equal if they contain the same nodes. An orderedEndpointPair
is never equal to an unorderedEndpointPair
.- Overrides:
equals
in classjava.lang.Object
-
hashCode
public abstract int hashCode()
The hashcode of an orderedEndpointPair
is equal toObjects.hashCode(source(), target())
. The hashcode of an unorderedEndpointPair
is equal tonodeU().hashCode() + nodeV().hashCode()
.- Overrides:
hashCode
in classjava.lang.Object
-
-