net.walend.digraph
Class MutableHashGEDigraph

java.lang.Object
  |
  +--net.walend.digraph.AbstractHashGEDigraph
        |
        +--net.walend.digraph.MutableHashGEDigraph
All Implemented Interfaces:
Digraph, GEDigraph, HasState, MutableGEDigraph, java.io.Serializable

public class MutableHashGEDigraph
extends AbstractHashGEDigraph
implements MutableGEDigraph, java.io.Serializable

Since:
20010812
Author:
David Walend dfw1@cornell.edu
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class net.walend.digraph.AbstractHashGEDigraph
AbstractHashGEDigraph.HashEdgeIterator, AbstractHashGEDigraph.NodeIterator, AbstractHashGEDigraph.NodePair
 
Field Summary
private static int DEFAULTSIZE
           
 
Fields inherited from class net.walend.digraph.AbstractHashGEDigraph
 
Fields inherited from interface net.walend.digraph.GEDigraph
EMPTY
 
Constructor Summary
MutableHashGEDigraph()
           
MutableHashGEDigraph(CEDigraph digraph)
           
MutableHashGEDigraph(GEDigraph digraph)
           
MutableHashGEDigraph(int nodeCapacity, int edgeCapacity)
           
MutableHashGEDigraph(UEDigraph digraph)
           
 
Method Summary
 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.
 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(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.
 
Methods inherited from class net.walend.digraph.AbstractHashGEDigraph
containsEdge, containsGEDigraph, containsNode, containsNodes, countInboundEdges, countOutboundEdges, edgeCount, edgeNodeIterator, getFromNodes, getNodes, getPrincipleInterface, getToNodes, intersectWithGEDigraph, isEdgeFree, isEmpty, nodeCount, nodeIterator, sameGEDigraphAs, sameStateAs, toString, unionGEDigraph
 
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
 

Field Detail

DEFAULTSIZE

private static final int DEFAULTSIZE
See Also:
Constant Field Values
Constructor Detail

MutableHashGEDigraph

public MutableHashGEDigraph()

MutableHashGEDigraph

public MutableHashGEDigraph(int nodeCapacity,
                            int edgeCapacity)

MutableHashGEDigraph

public MutableHashGEDigraph(GEDigraph digraph)

MutableHashGEDigraph

public MutableHashGEDigraph(CEDigraph digraph)

MutableHashGEDigraph

public MutableHashGEDigraph(UEDigraph digraph)
Method Detail

addNode

public boolean addNode(java.lang.Object node)
Description copied from interface: MutableGEDigraph
Return true if the node is added successfully, false if the digraph does not change.

Specified by:
addNode in interface MutableGEDigraph
Overrides:
addNode in class AbstractHashGEDigraph

addEdge

public boolean addEdge(java.lang.Object fromNode,
                       java.lang.Object toNode)
                throws NodeMissingException
Description copied from interface: MutableGEDigraph
Return true if the digraph changes when this edge is added, false if the digraph is unchanged.

Specified by:
addEdge in interface MutableGEDigraph
Overrides:
addEdge in class AbstractHashGEDigraph
Throws:
NodeMissingException - if either node is not in the digraph.

removeNode

public int removeNode(java.lang.Object node)
               throws NodeMissingException
Description copied from interface: MutableGEDigraph
Return the number of orphaned edges that were lost when this node is removed.

Specified by:
removeNode in interface MutableGEDigraph
Overrides:
removeNode in class AbstractHashGEDigraph
Throws:
NodeMissingException - if the node is not in the digraph

removeEdge

public boolean removeEdge(java.lang.Object fromNode,
                          java.lang.Object toNode)
                   throws NodeMissingException
Description copied from interface: MutableGEDigraph
Return true if the digraph changes when the edge is removed, false if the digraph didn't have an edge between these two nodes.

Specified by:
removeEdge in interface MutableGEDigraph
Overrides:
removeEdge in class AbstractHashGEDigraph
Throws:
NodeMissingException - if either node is not in the digraph

addNodes

public boolean addNodes(java.util.Set nodes)
Description copied from interface: MutableGEDigraph
Return true if adding the nodes changes the digraph.

Specified by:
addNodes in interface MutableGEDigraph
Overrides:
addNodes in class AbstractHashGEDigraph

removeNodes

public int removeNodes(java.util.Set nodes)
Description copied from interface: MutableGEDigraph
Return the number of edges orphaned edges when these nodes are removed.

Specified by:
removeNodes in interface MutableGEDigraph
Overrides:
removeNodes in class AbstractHashGEDigraph

removeGEDigraph

public int removeGEDigraph(GEDigraph digraph)
Description copied from interface: MutableGEDigraph
Return the number of edges orphaned when digraph is removed

Specified by:
removeGEDigraph in interface MutableGEDigraph
Overrides:
removeGEDigraph in class AbstractHashGEDigraph

retainNodes

public int retainNodes(java.util.Set nodes)
Description copied from interface: MutableGEDigraph
Return the number of orphaned edges when the nodes are removed.

Specified by:
retainNodes in interface MutableGEDigraph
Overrides:
retainNodes in class AbstractHashGEDigraph

clear

public void clear()
Description copied from interface: MutableGEDigraph
Remove all nodes and edges from the GEDigraph

Specified by:
clear in interface MutableGEDigraph
Overrides:
clear in class AbstractHashGEDigraph

clearEdges

public void clearEdges()
Description copied from interface: MutableGEDigraph
Remove all the edges from the GEDigraph.

Specified by:
clearEdges in interface MutableGEDigraph
Overrides:
clearEdges in class AbstractHashGEDigraph


Copyright (c) 2001, 2002, David Walend