org.graffiti.session
Class GraphConstraintChecker

java.lang.Object
  extended by org.graffiti.session.GraphConstraintChecker
All Implemented Interfaces:
EventListener, AttributeListener, EdgeListener, GraphListener, NodeListener, TransactionListener

public class GraphConstraintChecker
extends Object
implements TransactionListener, GraphListener, EdgeListener, NodeListener, AttributeListener

This class checks constraints on the graph. Constraints can arbitrarily added an removed. GraphConstraintChecker is a listener to graph, nodes, edges and attributes and checks the constraints after every change on these objects.

See Also:
GraphConstraint, TransactionListener, GraphListener, EdgeListener, NodeListener, GraphEvent, EdgeEvent, NodeEvent, TransactionEvent

Constructor Summary
GraphConstraintChecker(Graph g, ConstraintCheckerListener ccl)
          Constructs a new GraphConstraintChecker checking constraints on the specified Graph.
 
Method Summary
 void addConstraint(GraphConstraint c)
          Adds another constraint to the set of constraints in this constraint checker.
 void checkConstraints()
          Checks whether all constraints are satisfied on the specified graph.
 String getState()
          Returns the state of the constraint checker which contains a message telling which constraints are not satisfied.
 void postAttributeAdded(AttributeEvent e)
          Called after an attribute has been added.
 void postAttributeChanged(AttributeEvent e)
          Called after an attribute has been changed.
 void postAttributeRemoved(AttributeEvent e)
          Called after an attribute has been removed.
 void postDirectedChanged(EdgeEvent e)
          Called after the edge was set directed or undirected.
 void postEdgeAdded(GraphEvent e)
          Called after an edge has been added to the graph.
 void postEdgeRemoved(GraphEvent e)
          Called after an edge has been removed from the graph.
 void postEdgeReversed(EdgeEvent e)
          Called after the edge has been reversed.
 void postGraphCleared(GraphEvent e)
          Called after method clear() has been called on a graph.
 void postInEdgeAdded(NodeEvent e)
          Called just after an incoming edge has been added to the node.
 void postInEdgeRemoved(NodeEvent e)
          Called after an incoming edge has been removed from the node.
 void postNodeAdded(GraphEvent e)
          Called after an edge has been added to the graph.
 void postNodeRemoved(GraphEvent e)
          Called after a node has been removed from the graph.
 void postOutEdgeAdded(NodeEvent e)
          Called after an outgoing edge has been added to the node.
 void postOutEdgeRemoved(NodeEvent e)
          Called after an outgoing edge has been removed from the node.
 void postSourceNodeChanged(EdgeEvent e)
          Called after the source node of an edge has changed.
 void postTargetNodeChanged(EdgeEvent e)
          Called after the target node of an edge has changed.
 void postUndirectedEdgeAdded(NodeEvent e)
          Called after an (undirected) edge has been added to the node.
 void postUndirectedEdgeRemoved(NodeEvent e)
          Called after an (undirected) edge has been removed from the node.
 void preAttributeAdded(AttributeEvent e)
          Called just before an attribute is added.
 void preAttributeChanged(AttributeEvent e)
          Called before a change of an attribute takes place.
 void preAttributeRemoved(AttributeEvent e)
          Called just before an attribute is removed.
 void preDirectedChanged(EdgeEvent e)
          Called before the edge is set directed or undirected.
 void preEdgeAdded(GraphEvent e)
          Called just before an edge is added to the graph.
 void preEdgeRemoved(GraphEvent e)
          Called just before an edge is removed from the graph.
 void preEdgeReversed(EdgeEvent e)
          Called before the edge is going to be reversed.
 void preGraphCleared(GraphEvent e)
          Called before method clear() is called on a graph.
 void preInEdgeAdded(NodeEvent e)
          Called just before an incoming edge is added to the node.
 void preInEdgeRemoved(NodeEvent e)
          Called just before an incoming edge is removed from the node.
 void preNodeAdded(GraphEvent e)
          Called just before a node is added to the graph.
 void preNodeRemoved(GraphEvent e)
          Called just before a node is removed from the graph.
 void preOutEdgeAdded(NodeEvent e)
          Called just before an outgoing edge is added to the node.
 void preOutEdgeRemoved(NodeEvent e)
          Called just before an outgoing edge is removed from the node.
 void preSourceNodeChanged(EdgeEvent e)
          Called before a change of the source node of an edge takes place.
 void preTargetNodeChanged(EdgeEvent e)
          Called before a change of the target node of an edge takes place.
 void preUndirectedEdgeAdded(NodeEvent e)
          Called just before an (undirected) edge is added to the node.
 void preUndirectedEdgeRemoved(NodeEvent e)
          Called just before an (undirected) edge is removed from the node.
 void removeConstraint(GraphConstraint c)
          Removes the specified GraphConstraint from the set of constraints of this constraint checker.
 void transactionFinished(TransactionEvent e)
          Called when a transaction has stopped.
 void transactionStarted(TransactionEvent e)
          Called when a transaction has started.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GraphConstraintChecker

public GraphConstraintChecker(Graph g,
                              ConstraintCheckerListener ccl)
Constructs a new GraphConstraintChecker checking constraints on the specified Graph.

Parameters:
g - the Graph on which to check the constraints.
ccl - the ConstraintCheckerListener receiving failures of constraints.
Method Detail

getState

public String getState()
Returns the state of the constraint checker which contains a message telling which constraints are not satisfied.

Returns:
the state of the constraint checker which contains a message telling which constraints are not satisfied.
Throws:
RuntimeException - DOCUMENT ME!

addConstraint

public void addConstraint(GraphConstraint c)
Adds another constraint to the set of constraints in this constraint checker.

Parameters:
c - the GraphConstraint to be added to the set of constraints of this constraint checker.

checkConstraints

public void checkConstraints()
Checks whether all constraints are satisfied on the specified graph.


postAttributeAdded

public void postAttributeAdded(AttributeEvent e)
Called after an attribute has been added.

Specified by:
postAttributeAdded in interface AttributeListener
Parameters:
e - the AttributeEvent detailing the changes.

postAttributeChanged

public void postAttributeChanged(AttributeEvent e)
Called after an attribute has been changed.

Specified by:
postAttributeChanged in interface AttributeListener
Parameters:
e - the AttributeEvent detailing the changes.

postAttributeRemoved

public void postAttributeRemoved(AttributeEvent e)
Called after an attribute has been removed.

Specified by:
postAttributeRemoved in interface AttributeListener
Parameters:
e - the AttributeEvent detailing the changes.

postDirectedChanged

public void postDirectedChanged(EdgeEvent e)
Called after the edge was set directed or undirected.

Specified by:
postDirectedChanged in interface EdgeListener
Parameters:
e - the EdgeEvent detailing the changes.

postEdgeAdded

public void postEdgeAdded(GraphEvent e)
Called after an edge has been added to the graph.

Specified by:
postEdgeAdded in interface GraphListener
Parameters:
e - the GraphEvent detailing the changes.

postEdgeRemoved

public void postEdgeRemoved(GraphEvent e)
Called after an edge has been removed from the graph.

Specified by:
postEdgeRemoved in interface GraphListener
Parameters:
e - the GraphEvent detailing the changes.

postEdgeReversed

public void postEdgeReversed(EdgeEvent e)
Called after the edge has been reversed.

Specified by:
postEdgeReversed in interface EdgeListener
Parameters:
e - the EdgeEvent detailing the changes.

postGraphCleared

public void postGraphCleared(GraphEvent e)
Called after method clear() has been called on a graph. No other events (like remove events) are generated.

Specified by:
postGraphCleared in interface GraphListener
Parameters:
e - the GraphEvent detailing the changes.

postInEdgeAdded

public void postInEdgeAdded(NodeEvent e)
Called just after an incoming edge has been added to the node. (For undirected edges postUndirectedEdgeAdded is called instead.)

Specified by:
postInEdgeAdded in interface NodeListener
Parameters:
e - The NodeEvent detailing the changes.

postInEdgeRemoved

public void postInEdgeRemoved(NodeEvent e)
Called after an incoming edge has been removed from the node. (For undirected edges postUndirectedEdgeRemoved is called.)

Specified by:
postInEdgeRemoved in interface NodeListener
Parameters:
e - The NodeEvent detailing the changes.

postNodeAdded

public void postNodeAdded(GraphEvent e)
Called after an edge has been added to the graph.

Specified by:
postNodeAdded in interface GraphListener
Parameters:
e - the GraphEvent detailing the changes.

postNodeRemoved

public void postNodeRemoved(GraphEvent e)
Called after a node has been removed from the graph. All edges incident to this node have already been removed (preEdgeRemoved and postEdgeRemoved have been called).

Specified by:
postNodeRemoved in interface GraphListener
Parameters:
e - the GraphEvent detailing the changes.

postOutEdgeAdded

public void postOutEdgeAdded(NodeEvent e)
Called after an outgoing edge has been added to the node. (For undirected edges postUndirectedEdgeAdded is called instead.)

Specified by:
postOutEdgeAdded in interface NodeListener
Parameters:
e - The NodeEvent detailing the changes.

postOutEdgeRemoved

public void postOutEdgeRemoved(NodeEvent e)
Called after an outgoing edge has been removed from the node. (For undirected edges postUndirectedEdgeRemoved is called.)

Specified by:
postOutEdgeRemoved in interface NodeListener
Parameters:
e - The NodeEvent detailing the changes.

postSourceNodeChanged

public void postSourceNodeChanged(EdgeEvent e)
Called after the source node of an edge has changed.

Specified by:
postSourceNodeChanged in interface EdgeListener
Parameters:
e - the EdgeEvent detailing the changes.

postTargetNodeChanged

public void postTargetNodeChanged(EdgeEvent e)
Called after the target node of an edge has changed.

Specified by:
postTargetNodeChanged in interface EdgeListener
Parameters:
e - the EdgeEvent detailing the changes.

postUndirectedEdgeAdded

public void postUndirectedEdgeAdded(NodeEvent e)
Called after an (undirected) edge has been added to the node. (For directed edges pre- In/Out- EdgeAdded is called.)

Specified by:
postUndirectedEdgeAdded in interface NodeListener
Parameters:
e - The NodeEvent detailing the changes.

postUndirectedEdgeRemoved

public void postUndirectedEdgeRemoved(NodeEvent e)
Called after an (undirected) edge has been removed from the node. (For directed edges pre- In/Out- EdgeRemoved is called.)

Specified by:
postUndirectedEdgeRemoved in interface NodeListener
Parameters:
e - The NodeEvent detailing the changes.

preAttributeAdded

public void preAttributeAdded(AttributeEvent e)
Called just before an attribute is added.

Specified by:
preAttributeAdded in interface AttributeListener
Parameters:
e - the AttributeEvent detailing the changes.

preAttributeChanged

public void preAttributeChanged(AttributeEvent e)
Called before a change of an attribute takes place.

Specified by:
preAttributeChanged in interface AttributeListener
Parameters:
e - the AttributeEvent detailing the changes.

preAttributeRemoved

public void preAttributeRemoved(AttributeEvent e)
Called just before an attribute is removed.

Specified by:
preAttributeRemoved in interface AttributeListener
Parameters:
e - the AttributeEvent detailing the changes.

preDirectedChanged

public void preDirectedChanged(EdgeEvent e)
Called before the edge is set directed or undirected.

Specified by:
preDirectedChanged in interface EdgeListener
Parameters:
e - the EdgeEvent detailing the changes.

preEdgeAdded

public void preEdgeAdded(GraphEvent e)
Called just before an edge is added to the graph.

Specified by:
preEdgeAdded in interface GraphListener
Parameters:
e - the GraphEvent detailing the changes.

preEdgeRemoved

public void preEdgeRemoved(GraphEvent e)
Called just before an edge is removed from the graph.

Specified by:
preEdgeRemoved in interface GraphListener
Parameters:
e - the GraphEvent detailing the changes.

preEdgeReversed

public void preEdgeReversed(EdgeEvent e)
Called before the edge is going to be reversed.

Specified by:
preEdgeReversed in interface EdgeListener
Parameters:
e - the EdgeEvent detailing the changes.

preGraphCleared

public void preGraphCleared(GraphEvent e)
Called before method clear() is called on a graph. No other events (like remove events) are generated.

Specified by:
preGraphCleared in interface GraphListener
Parameters:
e - the GraphEvent detailing the changes.

preInEdgeAdded

public void preInEdgeAdded(NodeEvent e)
Called just before an incoming edge is added to the node. (For undirected edges preUndirectedEdgeAdded is called instead.)

Specified by:
preInEdgeAdded in interface NodeListener
Parameters:
e - The NodeEvent detailing the changes.

preInEdgeRemoved

public void preInEdgeRemoved(NodeEvent e)
Called just before an incoming edge is removed from the node. (For undirected edges preUndirectedEdgeRemoved is called.)

Specified by:
preInEdgeRemoved in interface NodeListener
Parameters:
e - The NodeEvent detailing the changes.

preNodeAdded

public void preNodeAdded(GraphEvent e)
Called just before a node is added to the graph.

Specified by:
preNodeAdded in interface GraphListener
Parameters:
e - the GraphEvent detailing the changes.

preNodeRemoved

public void preNodeRemoved(GraphEvent e)
Called just before a node is removed from the graph. This method is called before the incident edges are deleted.

Specified by:
preNodeRemoved in interface GraphListener
Parameters:
e - the GraphEvent detailing the changes.

preOutEdgeAdded

public void preOutEdgeAdded(NodeEvent e)
Called just before an outgoing edge is added to the node. (For undirected edges preUndirectedEdgeAdded is called instead.)

Specified by:
preOutEdgeAdded in interface NodeListener
Parameters:
e - The NodeEvent detailing the changes.

preOutEdgeRemoved

public void preOutEdgeRemoved(NodeEvent e)
Called just before an outgoing edge is removed from the node. (For undirected edges preUndirectedEdgeRemoved is called.)

Specified by:
preOutEdgeRemoved in interface NodeListener
Parameters:
e - The NodeEvent detailing the changes.

preSourceNodeChanged

public void preSourceNodeChanged(EdgeEvent e)
Called before a change of the source node of an edge takes place.

Specified by:
preSourceNodeChanged in interface EdgeListener
Parameters:
e - the EdgeEvent detailing the changes.

preTargetNodeChanged

public void preTargetNodeChanged(EdgeEvent e)
Called before a change of the target node of an edge takes place.

Specified by:
preTargetNodeChanged in interface EdgeListener
Parameters:
e - the EdgeEvent detailing the changes.

preUndirectedEdgeAdded

public void preUndirectedEdgeAdded(NodeEvent e)
Called just before an (undirected) edge is added to the node. (For directed edges pre- In/Out- EdgeAdded is called.)

Specified by:
preUndirectedEdgeAdded in interface NodeListener
Parameters:
e - The NodeEvent detailing the changes.

preUndirectedEdgeRemoved

public void preUndirectedEdgeRemoved(NodeEvent e)
Called just before an (undirected) edge is removed from the node. (For directed edges pre- In/Out- EdgeRemoved is called.)

Specified by:
preUndirectedEdgeRemoved in interface NodeListener
Parameters:
e - The NodeEvent detailing the changes.

removeConstraint

public void removeConstraint(GraphConstraint c)
Removes the specified GraphConstraint from the set of constraints of this constraint checker.

Parameters:
c - the GraphConstraint to be removed.
Throws:
NoSuchElementException - if the constraint checker does not contain this GraphConstraint in his set of constraints.

transactionFinished

public void transactionFinished(TransactionEvent e)
Called when a transaction has stopped.

Specified by:
transactionFinished in interface TransactionListener
Parameters:
e - the EdgeEvent detailing the changes.

transactionStarted

public void transactionStarted(TransactionEvent e)
Called when a transaction has started.

Specified by:
transactionStarted in interface TransactionListener
Parameters:
e - the EdgeEvent detailing the changes.


Generated at 2012-05-30 11:00:36 PM CEST