|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
UEDigraph is an interface for representing directed graphs of nodes linked by zero or one edge. Each node and edge must be a unique Object in the digraph. Reusing edges and nodes may produce unpredictable results.
By default, this digraph uses equals() as the method to determine identity.
One could create a subclass of UEDigraph that will work with zero or more edges by extending this interface. I have not done that.
Direct implementations of UEDigraph should have a single constructor that takes a UEDigraph as a parameter.
Field Summary | |
static UEDigraph |
EMPTY
|
Method Summary | |
boolean |
containsEdge(java.lang.Object edge)
Returns true if edge exists in the digraph anywhere |
boolean |
containsEdge(java.lang.Object fromNode,
java.lang.Object toNode,
java.lang.Object edge)
Returns true if edge links fromNode to toNode |
boolean |
containsEdges(java.util.Set edges)
|
boolean |
containsUEDigraph(UEDigraph digraph)
Returns true if digraph is a subgraph of this UEDigraph. |
EdgeIterator |
edgeIterator()
|
java.lang.Object |
getEdge(java.lang.Object fromNode,
java.lang.Object toNode)
Returns null if no edge links fromNode to toNode |
java.util.Set |
getEdges()
|
java.lang.Object |
getFromNode(java.lang.Object edge)
|
java.util.Set |
getInboundEdges(java.lang.Object node)
Returns the empty set if node has no inbound edges. |
java.util.Set |
getOutboundEdges(java.lang.Object node)
Returns the empty set if node has no outbound edges. |
java.lang.Object |
getToNode(java.lang.Object edge)
|
UEDigraph |
intersectWithUEDigraph(UEDigraph digraph)
Returns a new digraph that is the intersection of this with digraph. |
boolean |
sameUEDigraphAs(UEDigraph digraph)
Returns true if digraph is the same as this; that is, if this.containsUEDigraph(digraph) and digraph.containsUEDigraph(this). |
UEDigraph |
unionUEDigraph(UEDigraph digraph)
Returns a new digraph that is the union of this with digraph. |
Methods inherited from interface net.walend.digraph.Digraph |
containsEdge, containsNode, containsNodes, countInboundEdges, countOutboundEdges, edgeCount, edgeNodeIterator, getFromNodes, getNodes, getToNodes, isEdgeFree, isEmpty, nodeCount, nodeIterator |
Methods inherited from interface net.walend.collection.HasState |
getPrincipleInterface, sameStateAs |
Field Detail |
public static final UEDigraph EMPTY
Method Detail |
public boolean containsEdge(java.lang.Object fromNode, java.lang.Object toNode, java.lang.Object edge) throws NodeMissingException
NodeMissingException
- if either node is missing from the digraph.public boolean containsEdge(java.lang.Object edge)
public java.util.Set getInboundEdges(java.lang.Object node) throws NodeMissingException
NodeMissingException
- if node is not in the digraph.public java.util.Set getOutboundEdges(java.lang.Object node) throws NodeMissingException
NodeMissingException
- if node is not in the digraph.public java.lang.Object getFromNode(java.lang.Object edge) throws EdgeMissingException
EdgeMissingException
- if the edge is not in the digraph.public java.lang.Object getToNode(java.lang.Object edge) throws EdgeMissingException
EdgeMissingException
- if the edge is not in the digraph.public java.lang.Object getEdge(java.lang.Object fromNode, java.lang.Object toNode) throws NodeMissingException
NodeMissingException
- if either node is missing from the digraph.public EdgeIterator edgeIterator()
public java.util.Set getEdges()
public boolean containsEdges(java.util.Set edges)
public boolean containsUEDigraph(UEDigraph digraph)
public boolean sameUEDigraphAs(UEDigraph digraph)
public UEDigraph intersectWithUEDigraph(UEDigraph digraph)
public UEDigraph unionUEDigraph(UEDigraph digraph)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |