|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
CEDigraph 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 CEDigraph that will work with zero or more edges by extending this interface. I have not done that.
Direct implementations of CEDigraph should have a single constructor that takes a CEDigraph as a parameter. Some implementations should provide a view of this CEDigraph, by implementing the net.walend.collection.View interface. Others should copy the parameter to produced an immutable CEDigraph.
Field Summary | |
static CEDigraph |
EMPTY
|
Method Summary | |
boolean |
containsCEDigraph(CEDigraph digraph)
Returns true if digraph is a subgraph of this CEDigraph. |
boolean |
containsEdge(java.lang.Object fromNode,
java.lang.Object toNode,
java.lang.Object edge)
Returns true if edge links fromNode to toNode |
EdgeIterator |
edgeIterator()
|
java.lang.Object |
getEdge(java.lang.Object fromNode,
java.lang.Object toNode)
Returns null if no edge links fromNode to toNode |
Bag |
getEdges()
|
Bag |
getInboundEdges(java.lang.Object node)
Returns the empty set if node has no inbound edges. |
Bag |
getOutboundEdges(java.lang.Object node)
Returns the empty set if node has no outbound edges. |
CEDigraph |
intersectWithCEDigraph(CEDigraph digraph)
Returns a new digraph that is the intersection of this with digraph. |
boolean |
sameCEDigraphAs(CEDigraph digraph)
Returns true if digraph is the same as this; that is, if this.containsCEDigraph(digraph) and digraph.containsCEDigraph(this). |
CEDigraph |
unionCEDigraph(CEDigraph 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 CEDigraph 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 Bag getEdges()
public Bag getInboundEdges(java.lang.Object node) throws NodeMissingException
NodeMissingException
- if node is not in the digraph.public Bag getOutboundEdges(java.lang.Object node) throws NodeMissingException
NodeMissingException
- if node 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 boolean containsCEDigraph(CEDigraph digraph)
public boolean sameCEDigraphAs(CEDigraph digraph)
public CEDigraph intersectWithCEDigraph(CEDigraph digraph)
public CEDigraph unionCEDigraph(CEDigraph digraph)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |