|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
GEDigraph is an interface for representing directed graphs of nodes linked by zero or one edge. Each node must be a unique Object in the digraph. Edges are not objects at all, and are represented simply by being present or not.
By default, this digraph uses equals() as the method to determine identity. Persistent versions may use hasSameIdentity() instead, for example.
Direct implementations of GEDigraph should have a single constructor that takes a GEDigraph as a parameter. Some implementations should provide a view of this GEDigraph, by implementing the net.walend.collection.View interface. Others should copy the parameter to produced an immutable GEDigraph.
Field Summary | |
static GEDigraph |
EMPTY
|
Method Summary | |
boolean |
containsEdge(java.lang.Object fromNode,
java.lang.Object toNode)
Returns true if the digraph contains any edge from fromNode to toNode |
boolean |
containsGEDigraph(GEDigraph digraph)
Returns true if digraph is a subgraph of this GEDigraph. |
boolean |
containsNode(java.lang.Object node)
|
boolean |
containsNodes(Set nodes)
|
int |
countInboundEdges(java.lang.Object node)
|
int |
countOutboundEdges(java.lang.Object node)
|
int |
edgeCount()
|
EdgeNodeIterator |
edgeNodeIterator()
Returns an iterator that iterates across pairs of nodes that make edges. |
Set |
getFromNodes(java.lang.Object node)
Returns the set of nodes that can reach this node by crossing one edge. |
Set |
getNodes()
|
Set |
getToNodes(java.lang.Object node)
Returns the set of nodes that can be reached from this node by crossing one edge. |
GEDigraph |
intersectWithGEDigraph(GEDigraph digraph)
Returns a new digraph that is the intersection of this with digraph. |
boolean |
isEdgeFree()
Returns true if this GEDigraph has no edges. |
boolean |
isEmpty()
|
int |
nodeCount()
|
java.util.Iterator |
nodeIterator()
Implementations should explicitly state how they interpret nodeIterator()'s remove method. |
boolean |
sameGEDigraphAs(GEDigraph digraph)
Returns true if digraph is the same as this; that is, if this.containsGEDigraph(digraph) and digraph.containsGEDigraph(this). |
GEDigraph |
unionGEDigraph(GEDigraph digraph)
Returns a new digraph that is the union of this with digraph. |
Methods inherited from interface net.walend.collection.HasState |
getPrincipleInterface, sameStateAs |
Field Detail |
public static final GEDigraph EMPTY
Method Detail |
public int nodeCount()
public int edgeCount()
public boolean isEmpty()
public boolean containsNode(java.lang.Object node)
public boolean containsEdge(java.lang.Object fromNode, java.lang.Object toNode) throws NodeMissingException
NodeMissingException
- if either node is missing from the digraph.public int countInboundEdges(java.lang.Object node) throws NodeMissingException
NodeMissingException
- if node is not in the digraph.public int countOutboundEdges(java.lang.Object node) throws NodeMissingException
NodeMissingException
- if node is not in the digraph.public Set getFromNodes(java.lang.Object node) throws NodeMissingException
NodeMissingException
- if node is not in the digraph.public Set getToNodes(java.lang.Object node) throws NodeMissingException
NodeMissingException
- if node is not in the digraph.public java.util.Iterator nodeIterator()
public EdgeNodeIterator edgeNodeIterator()
public Set getNodes()
public boolean isEdgeFree()
public boolean containsNodes(Set nodes)
public boolean containsGEDigraph(GEDigraph digraph)
public boolean sameGEDigraphAs(GEDigraph digraph)
public GEDigraph intersectWithGEDigraph(GEDigraph digraph)
public GEDigraph unionGEDigraph(GEDigraph digraph)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |