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. 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(Object node)
Returns the node that is adjacent tonode
along the origin edge.abstract boolean
equals(@Nullable 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.-
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 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:
UnsupportedOperationException
- if thisEndpointPair
is not ordered
-
target
public abstract N target()
If thisEndpointPair
isOrdered()
, returns the node which is the target.- Throws:
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(Object node)
Returns the node that is adjacent tonode
along the origin edge.- Throws:
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()
-
equals
public abstract boolean equals(@Nullable 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 classObject
- Parameters:
obj
- the reference object with which to compare.- Returns:
true
if this object is the same as the obj argument;false
otherwise.- See Also:
Object.hashCode()
,HashMap
-
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 classObject
- Returns:
- a hash code value for this object.
- See Also:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-