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(java.lang.Object node)
Returns the node that is adjacent tonode
along the origin edge.abstract boolean
equals(@Nullable 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(java.lang.Object node)
Returns the node that is adjacent tonode
along the origin edge.- Throws:
java.lang.IllegalArgumentException
- if thisEndpointPair
does not containnode
-
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(@Nullable 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
-
-