|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--net.walend.digraph.path.AbstractDelegateDigraphOfCEPaths.DigraphCEPath
Nested Class Summary | |
protected class |
AbstractDelegateDigraphOfCEPaths.DigraphCEPath.PathEdgeIterator
|
private class |
AbstractDelegateDigraphOfCEPaths.DigraphCEPath.PathNodeIterator
|
Field Summary | |
private AbstractDelegateDigraphOfCEPaths |
container
|
private AbstractDelegateDigraphOfCEPaths.Edge |
edge
|
private java.lang.Object |
head
|
private java.lang.Object |
tail
|
Fields inherited from interface net.walend.digraph.CEDigraph |
EMPTY |
Constructor Summary | |
AbstractDelegateDigraphOfCEPaths.DigraphCEPath(java.lang.Object head,
AbstractDelegateDigraphOfCEPaths.Edge edge,
java.lang.Object tail,
AbstractDelegateDigraphOfCEPaths container)
|
Method Summary | |
private void |
checkEdge(java.lang.Object edge)
|
private void |
checkEdgeIndex(int index)
|
private void |
checkIndices(int startNodeIndex,
int endNodeIndex)
|
private void |
checkNode(java.lang.Object node)
|
private void |
checkNodeIndex(int index)
|
boolean |
containsCEDigraph(CEDigraph digraph)
Returns true if digraph is a subgraph of this CEDigraph. |
boolean |
containsEdge(java.lang.Object fromNode,
java.lang.Object toNode)
Returns true if the digraph contains any edge from fromNode to toNode |
boolean |
containsEdge(java.lang.Object fromNode,
java.lang.Object toNode,
java.lang.Object edge)
Returns true if edge links fromNode to toNode |
boolean |
containsNode(java.lang.Object node)
|
boolean |
containsNodes(java.util.Set nodes)
|
int |
countInboundEdges(java.lang.Object node)
|
int |
countOutboundEdges(java.lang.Object node)
|
int |
edgeCount()
|
EdgeIterator |
edgeIterator()
|
EdgeNodeIterator |
edgeNodeIterator()
Returns an iterator that iterates across pairs of nodes that make edges. |
boolean |
equals(java.lang.Object object)
|
protected AbstractDelegateDigraphOfCEPaths |
getContainer()
|
java.lang.Object |
getEdge(java.lang.Object fromNode,
java.lang.Object toNode)
Returns null if no edge links fromNode to toNode |
java.lang.Object |
getEdgeAtIndex(int index)
|
java.util.List |
getEdgeList()
Returns an immutable list of the edges. |
Bag |
getEdges()
|
java.util.Set |
getFromNodes(java.lang.Object node)
Returns the set of nodes that can reach this node by crossing one edge. |
java.lang.Object |
getHead()
|
Bag |
getInboundEdges(java.lang.Object node)
Returns the empty set if node has no inbound edges. |
int |
getIndexOfEdge(java.lang.Object edge)
|
int |
getIndexOfNode(java.lang.Object node)
|
int |
getLastIndexOfEdge(java.lang.Object edge)
|
int |
getLastIndexOfNode(java.lang.Object node)
|
java.lang.Object |
getNeck()
|
java.lang.Object |
getNodeAtIndex(int index)
|
java.util.List |
getNodeList()
Returns an immutable list of the nodes. |
java.util.Set |
getNodes()
|
Bag |
getOutboundEdges(java.lang.Object node)
Returns the empty set if node has no outbound edges. |
java.lang.Class |
getPrincipleInterface()
Returns the class's principle interface for state comparisons. |
CEPath |
getSubpath(int startNodeIndex,
int endNodeIndex)
Returns a new path, between startNodeIndex and endNodeIndex, inclusive. |
private CEPath |
getSubpath(java.lang.Object startNode,
java.lang.Object endNode)
|
CEPath |
getSubpathFirst(java.lang.Object startNode,
java.lang.Object endNode)
Returns a new path, between the first occurence of startNode and the first occurence of endNode, inclusive. |
CEPath |
getSubpathFirstToLast(java.lang.Object startNode,
java.lang.Object endNode)
Returns a new path, between the first occurence of startNode and the last occurence of endNode, inclusive. |
CEPath |
getSubpathLast(java.lang.Object startNode,
java.lang.Object endNode)
Returns a new path, between the last occurence of startNode and the last occurence of endNode, inclusive. |
CEPath |
getSubpathLastToFirst(java.lang.Object startNode,
java.lang.Object endNode)
Returns a new path, between the last occurence of startNode and the first occurence of endNode, inclusive. |
CEDigraph |
getSupergraph()
Returns the base. |
java.lang.Object |
getTail()
|
java.util.Set |
getToNodes(java.lang.Object node)
Returns the set of nodes that can be reached from this node by crossing one edge. |
int |
hashCode()
|
CEDigraph |
intersectWithCEDigraph(CEDigraph digraph)
Returns a new digraph that is the intersection of this with digraph. |
boolean |
isEdgeFree()
Returns true if this Digraph has no edges. |
boolean |
isEmpty()
|
int |
nodeCount()
|
java.util.Iterator |
nodeIterator()
Implementations should explicitly state how they interpret nodeIterator()'s remove method. |
int |
pathEdgeCount()
Returns the number of edges in the path, including repeates. |
EdgeIterator |
pathEdgeIterator()
Implementations should explicitly state how they interpret nodeIterator()'s remove method. |
EdgeNodeIterator |
pathEdgeNodeIterator()
Iterate through the edges in path order. |
int |
pathNodeCount()
Returns the number of nodes in the path, including repeates. |
java.util.Iterator |
pathNodeIterator()
Implementations should explicitly state how they interpret nodeIterator()'s remove method. |
boolean |
sameCEDigraphAs(CEDigraph digraph)
Returns true if digraph is the same as this, and all their contents have the same state. |
boolean |
sameCEPathAs(CEPath path)
Returns true if path is the same path as this, on the same digraph. |
boolean |
sameStateAs(HasState victim)
If two HasStates have the same internal state, return true. |
java.lang.String |
toString()
|
CEDigraph |
unionCEDigraph(CEDigraph digraph)
Returns a new digraph that is the union of this with digraph. |
boolean |
valid()
Returns true if this path is still a subgraph of its supergraph |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
private AbstractDelegateDigraphOfCEPaths.Edge edge
private java.lang.Object head
private java.lang.Object tail
private AbstractDelegateDigraphOfCEPaths container
Constructor Detail |
public AbstractDelegateDigraphOfCEPaths.DigraphCEPath(java.lang.Object head, AbstractDelegateDigraphOfCEPaths.Edge edge, java.lang.Object tail, AbstractDelegateDigraphOfCEPaths container)
Method Detail |
protected AbstractDelegateDigraphOfCEPaths getContainer()
public java.lang.Object getNeck()
public CEDigraph getSupergraph()
getSupergraph
in interface CEPath
private void checkEdge(java.lang.Object edge)
public int getIndexOfEdge(java.lang.Object edge)
getIndexOfEdge
in interface CEPath
public int getLastIndexOfEdge(java.lang.Object edge)
getLastIndexOfEdge
in interface CEPath
private void checkEdgeIndex(int index)
public java.lang.Object getEdgeAtIndex(int index)
getEdgeAtIndex
in interface CEPath
public java.util.List getEdgeList()
getEdgeList
in interface CEPath
private void checkNodeIndex(int index)
private void checkIndices(int startNodeIndex, int endNodeIndex) throws InvalidSpliceException
InvalidSpliceException
public CEPath getSubpath(int startNodeIndex, int endNodeIndex) throws InvalidSpliceException
getSubpath
in interface CEPath
InvalidSpliceException
private CEPath getSubpath(java.lang.Object startNode, java.lang.Object endNode) throws NodeMissingException, InvalidSpliceException
NodeMissingException
InvalidSpliceException
public CEPath getSubpathFirst(java.lang.Object startNode, java.lang.Object endNode) throws NodeMissingException, InvalidSpliceException
getSubpathFirst
in interface CEPath
NodeMissingException
- if the nodes are not in the path.
InvalidSpliceException
- if the nodes are not in the right order.public CEPath getSubpathLast(java.lang.Object startNode, java.lang.Object endNode) throws NodeMissingException, InvalidSpliceException
getSubpathLast
in interface CEPath
NodeMissingException
- if the nodes are not in the path.
InvalidSpliceException
- if the nodes are not in the right order.public CEPath getSubpathFirstToLast(java.lang.Object startNode, java.lang.Object endNode) throws NodeMissingException, InvalidSpliceException
getSubpathFirstToLast
in interface CEPath
NodeMissingException
- if the nodes are not in the path.
InvalidSpliceException
- if the nodes are not in the right order.public CEPath getSubpathLastToFirst(java.lang.Object startNode, java.lang.Object endNode) throws NodeMissingException, InvalidSpliceException
getSubpathLastToFirst
in interface CEPath
NodeMissingException
- if the nodes are not in the path.
InvalidSpliceException
- if the nodes are not in the right order.public EdgeIterator pathEdgeIterator()
The Iterator should start at the beginning of the path and iterate to the end.
pathEdgeIterator
in interface CEPath
public boolean sameCEPathAs(CEPath path)
sameCEPathAs
in interface CEPath
public boolean valid()
valid
in interface Path
public int pathNodeCount()
pathNodeCount
in interface Path
public int pathEdgeCount()
pathEdgeCount
in interface Path
public java.lang.Object getHead()
getHead
in interface Path
public java.lang.Object getTail()
getTail
in interface Path
public java.lang.Object getNodeAtIndex(int index)
getNodeAtIndex
in interface Path
public int getIndexOfNode(java.lang.Object node)
getIndexOfNode
in interface Path
public int getLastIndexOfNode(java.lang.Object node)
getLastIndexOfNode
in interface Path
public java.util.List getNodeList()
getNodeList
in interface Path
public java.util.Iterator pathNodeIterator()
The Iterator should start at the beginning of the path and iterate to the end.
pathNodeIterator
in interface Path
public EdgeNodeIterator pathEdgeNodeIterator()
If Path is immutable, edgeIterator()'s remove() method throws an UnsupportedOperationException.
pathEdgeNodeIterator
in interface Path
public boolean containsEdge(java.lang.Object fromNode, java.lang.Object toNode, java.lang.Object edge) throws NodeMissingException
containsEdge
in interface CEDigraph
NodeMissingException
- if either node is missing from the digraph.public Bag getEdges()
getEdges
in interface CEDigraph
private void checkNode(java.lang.Object node) throws NodeMissingException
NodeMissingException
public Bag getInboundEdges(java.lang.Object node) throws NodeMissingException
getInboundEdges
in interface CEDigraph
NodeMissingException
- if node is not in the digraph.public Bag getOutboundEdges(java.lang.Object node) throws NodeMissingException
getOutboundEdges
in interface CEDigraph
NodeMissingException
- if node is not in the digraph.public java.lang.Object getEdge(java.lang.Object fromNode, java.lang.Object toNode) throws NodeMissingException
getEdge
in interface CEDigraph
NodeMissingException
- if either node is missing from the digraph.public EdgeIterator edgeIterator()
edgeIterator
in interface CEDigraph
public boolean containsCEDigraph(CEDigraph digraph)
containsCEDigraph
in interface CEDigraph
public boolean sameCEDigraphAs(CEDigraph digraph)
sameCEDigraphAs
in interface CEDigraph
public CEDigraph intersectWithCEDigraph(CEDigraph digraph)
intersectWithCEDigraph
in interface CEDigraph
public CEDigraph unionCEDigraph(CEDigraph digraph)
unionCEDigraph
in interface CEDigraph
public int nodeCount()
nodeCount
in interface Digraph
public int edgeCount()
edgeCount
in interface Digraph
public boolean isEmpty()
isEmpty
in interface Digraph
public boolean containsNode(java.lang.Object node)
containsNode
in interface Digraph
public boolean containsEdge(java.lang.Object fromNode, java.lang.Object toNode) throws NodeMissingException
containsEdge
in interface Digraph
NodeMissingException
- if either node is missing from the digraph.public int countInboundEdges(java.lang.Object node) throws NodeMissingException
countInboundEdges
in interface Digraph
NodeMissingException
- if node is not in the digraph.public int countOutboundEdges(java.lang.Object node) throws NodeMissingException
countOutboundEdges
in interface Digraph
NodeMissingException
- if node is not in the digraph.public java.util.Set getFromNodes(java.lang.Object node) throws NodeMissingException
getFromNodes
in interface Digraph
NodeMissingException
- if node is not in the digraph.public java.util.Set getToNodes(java.lang.Object node) throws NodeMissingException
getToNodes
in interface Digraph
NodeMissingException
- if node is not in the digraph.public java.util.Iterator nodeIterator()
nodeIterator
in interface Digraph
public EdgeNodeIterator edgeNodeIterator()
edgeNodeIterator
in interface Digraph
public java.util.Set getNodes()
getNodes
in interface Digraph
public boolean isEdgeFree()
isEdgeFree
in interface Digraph
public boolean containsNodes(java.util.Set nodes)
containsNodes
in interface Digraph
public java.lang.Class getPrincipleInterface()
HasState
getPrincipleInterface
in interface HasState
public boolean sameStateAs(HasState victim)
HasState
For objects with subobjects, Generally this method should only return true if the internal objects are equal. Implement a contentsHaveSameState() method to determine if the contents have the same state.
sameStateAs
in interface HasState
public java.lang.String toString()
toString
in class java.lang.Object
public boolean equals(java.lang.Object object)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |