Class GraphConstraintChecker

java.lang.Object
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 Details

    • 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 Details

    • 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.)
      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.)
      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.)
      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.)
      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.)
      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.)
      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.)
      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.)
      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, BackgroundTaskStatusProviderSupportingExternalCall status)
      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.