|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--net.walend.digraph.AbstractMatrixGEDigraph | +--net.walend.digraph.MutableMatrixGEDigraph
A MutableGEDigraph backed by an ArrayList of nodes and a boolean[][] matrix of edges.
Nested Class Summary |
Nested classes inherited from class net.walend.digraph.AbstractMatrixGEDigraph |
AbstractMatrixGEDigraph.MatrixEdgeIterator, AbstractMatrixGEDigraph.NodeIterator |
Field Summary | |
private static int |
DEFAULTSIZE
|
Fields inherited from class net.walend.digraph.AbstractMatrixGEDigraph |
|
Fields inherited from interface net.walend.digraph.GEDigraph |
EMPTY |
Constructor Summary | |
MutableMatrixGEDigraph()
|
|
MutableMatrixGEDigraph(CEDigraph digraph)
|
|
MutableMatrixGEDigraph(GEDigraph digraph)
|
|
MutableMatrixGEDigraph(int nodeCapacity)
|
|
MutableMatrixGEDigraph(UEDigraph digraph)
|
Method Summary | |
boolean |
addEdge(int fromIndex,
int toIndex)
|
boolean |
addEdge(java.lang.Object fromNode,
java.lang.Object toNode)
Return true if the digraph changes when this edge is added, false if the digraph is unchanged. |
boolean |
addNode(java.lang.Object node)
Return true if the node is added successfully, false if the digraph does not change. |
boolean |
addNodes(java.util.Set nodes)
Return true if adding the nodes changes the digraph. |
void |
clear()
Remove all nodes and edges from the GEDigraph |
void |
clearEdges()
Remove all the edges from the GEDigraph. |
void |
insureCapacity(int capacity)
|
boolean |
removeEdge(int fromIndex,
int toIndex)
|
boolean |
removeEdge(java.lang.Object fromNode,
java.lang.Object toNode)
Return true if the digraph changes when the edge is removed, false if the digraph didn't have an edge between these two nodes. |
int |
removeGEDigraph(GEDigraph digraph)
Return the number of edges orphaned when digraph is removed |
int |
removeNode(int index)
|
int |
removeNode(java.lang.Object node)
Return the number of orphaned edges that were lost when this node is removed. |
int |
removeNodes(java.util.Set nodes)
Return the number of edges orphaned edges when these nodes are removed. |
int |
retainNodes(java.util.Set nodes)
Return the number of orphaned edges when the nodes are removed. |
java.lang.Object |
setNode(int index,
java.lang.Object node)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface net.walend.digraph.GEDigraph |
containsGEDigraph, intersectWithGEDigraph, sameGEDigraphAs, unionGEDigraph |
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 |
Methods inherited from interface net.walend.digraph.IndexedDigraph |
containsEdge, containsNode, countInboundEdges, countOutboundEdges, getFromIndices, getFromNodes, getNode, getNodeIndex, getToIndices, getToNodes, indexedEdgeNodeIterator, indexedNodeIterator, nodeCapacity, nodeIndices |
Field Detail |
private static final int DEFAULTSIZE
Constructor Detail |
public MutableMatrixGEDigraph()
public MutableMatrixGEDigraph(int nodeCapacity)
public MutableMatrixGEDigraph(GEDigraph digraph)
public MutableMatrixGEDigraph(CEDigraph digraph)
public MutableMatrixGEDigraph(UEDigraph digraph)
Method Detail |
public boolean addNode(java.lang.Object node)
MutableGEDigraph
addNode
in interface MutableGEDigraph
addNode
in class AbstractMatrixGEDigraph
public boolean addEdge(java.lang.Object fromNode, java.lang.Object toNode) throws NodeMissingException
MutableGEDigraph
addEdge
in interface MutableGEDigraph
addEdge
in class AbstractMatrixGEDigraph
NodeMissingException
- if either node is not in the digraph.public int removeNode(java.lang.Object node) throws NodeMissingException
MutableGEDigraph
removeNode
in interface MutableGEDigraph
removeNode
in class AbstractMatrixGEDigraph
NodeMissingException
- if the node is not in the digraphpublic boolean removeEdge(java.lang.Object fromNode, java.lang.Object toNode) throws NodeMissingException
MutableGEDigraph
removeEdge
in interface MutableGEDigraph
removeEdge
in class AbstractMatrixGEDigraph
NodeMissingException
- if either node is not in the digraphpublic boolean addNodes(java.util.Set nodes)
MutableGEDigraph
addNodes
in interface MutableGEDigraph
addNodes
in class AbstractMatrixGEDigraph
public int removeNodes(java.util.Set nodes)
MutableGEDigraph
removeNodes
in interface MutableGEDigraph
removeNodes
in class AbstractMatrixGEDigraph
public int removeGEDigraph(GEDigraph digraph)
MutableGEDigraph
removeGEDigraph
in interface MutableGEDigraph
removeGEDigraph
in class AbstractMatrixGEDigraph
public int retainNodes(java.util.Set nodes)
MutableGEDigraph
retainNodes
in interface MutableGEDigraph
retainNodes
in class AbstractMatrixGEDigraph
public void clear()
MutableGEDigraph
clear
in interface MutableGEDigraph
clear
in class AbstractMatrixGEDigraph
public void clearEdges()
MutableGEDigraph
clearEdges
in interface MutableGEDigraph
clearEdges
in class AbstractMatrixGEDigraph
public void insureCapacity(int capacity)
insureCapacity
in interface IndexedMutableGEDigraph
insureCapacity
in class AbstractMatrixGEDigraph
public java.lang.Object setNode(int index, java.lang.Object node)
setNode
in interface IndexedMutableGEDigraph
setNode
in class AbstractMatrixGEDigraph
java.lang.ArrayIndexOutOfBoundsException
- if index does not have a node. Use nodeIndicies() or getNodeIndex() to avoid these. In your code, catch ArrayIndexOutOfBoundsException and throw a ConcurrentModificationException if you think that's the problem.public boolean addEdge(int fromIndex, int toIndex)
addEdge
in interface IndexedMutableGEDigraph
addEdge
in class AbstractMatrixGEDigraph
java.lang.ArrayIndexOutOfBoundsException
- if index does not have a node. Use nodeIndicies() or getNodeIndex() to avoid these. In your code, catch ArrayIndexOutOfBoundsException and throw a ConcurrentModificationException if you think that's the problem.public int removeNode(int index)
removeNode
in interface IndexedMutableGEDigraph
removeNode
in class AbstractMatrixGEDigraph
java.lang.ArrayIndexOutOfBoundsException
- if index does not have a node. Use nodeIndicies() or getNodeIndex() to avoid these. In your code, catch ArrayIndexOutOfBoundsException and throw a ConcurrentModificationException if you think that's the problem.public boolean removeEdge(int fromIndex, int toIndex)
removeEdge
in interface IndexedMutableGEDigraph
removeEdge
in class AbstractMatrixGEDigraph
java.lang.ArrayIndexOutOfBoundsException
- if index does not have a node. Use nodeIndicies() or getNodeIndex() to avoid these. In your code, catch ArrayIndexOutOfBoundsException and throw a ConcurrentModificationException if you think that's the problem.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |