Package org.graffiti.event
Class ListenerManager
java.lang.Object
org.graffiti.event.ListenerManager
public class ListenerManager extends Object
Class that is responsible to keep track of all the Listeners that are
registered. It therefore provides methods to add and remove certain types of
Listeners. It also contains methods representing all available events. When
one of these methods is called, the
ListenerManager delegates
the call to all Listeners registered in the appropriate listener set. When a
listener is registered as strict, it does not get any messages during the
time a transaction is active (i.e. between transactionStarted
and transactionFinished). Non strict listeners receive events
independent of transactions. It is not possible to add a Listener both as
strict and non strict. At the end of a transaction, a set is passed within a
TransactionEvent that contains all objects that (might) have
been changed. This set is passed to both, strict and non strict listeners.- Version:
- $Revision: 1.18 $
-
Constructor Summary
Constructors Constructor Description ListenerManager()Default contructor. -
Method Summary
Modifier and Type Method Description voidaddAllTimeAttributeListener(AttributeListener l)Registers AttributeListener l by adding it to the list of nonstrict and strict transaction AttributeListeners.voidaddAllTimeEdgeListener(EdgeListener l)Registers EdgeListener l by adding it to the list of nonstrict transaction EdgeListeners.voidaddAllTimeGraphListener(GraphListener l)Registers GraphListener l by adding it to the list of GraphListeners.voidaddAllTimeNodeListener(NodeListener l)RegistersNodeListenerl by adding it to the list of nonstrict transaction NodeListeners.voidaddDelayedAttributeListener(AttributeListener l)Registers AttributeListener l by adding it to the list of strict transaction AttributeListeners.voidaddDelayedEdgeListener(EdgeListener l)Registers EdgeListener l by adding it to the list of strict transaction EdgeListeners.voidaddDelayedGraphListener(GraphListener l)Registers GraphListener l by adding it to the list of strict transaction GraphListeners.voidaddDelayedNodeListener(NodeListener l)RegistersNodeListenerl by adding it to the list of strict transaction NodeListeners.voidfinishOpenTransactions()intgetNumTransactionsActive()voidpostAttributeAdded(AttributeEvent event)Called after an attribute has been added.voidpostAttributeChanged(AttributeEvent event)Called after an attribute has been changed.voidpostAttributeRemoved(AttributeEvent event)Called after an attribute has been removed.voidpostDirectedChanged(EdgeEvent event)Called after the edge was set directed or undirected.voidpostEdgeAdded(GraphEvent event)Called after an edge has been added to the graph.voidpostEdgeRemoved(GraphEvent event)Called after an edge has been removed from the graph.voidpostEdgeReversed(EdgeEvent event)Called after the edge has been reversed.voidpostGraphCleared(GraphEvent event)Called after methodclear()has been called on a graph.voidpostNodeAdded(GraphEvent event)Called after an edge has been added to the graph.voidpostNodeRemoved(GraphEvent event)Called after a node has been removed from the graph.voidpostSourceNodeChanged(EdgeEvent event)Called after the source node of an edge has changed.voidpostTargetNodeChanged(EdgeEvent event)Called after the target node of an edge has changed.voidpostUndirectedEdgeAdded(NodeEvent event)Called after an (undirected) edge has been added to the node.voidpostUndirectedEdgeRemoved(NodeEvent event)Called after an (undirected) edge has been removed from the node.voidpreAttributeAdded(AttributeEvent event)Called just before an attribute is added.voidpreAttributeChanged(AttributeEvent event)Called before a change of an attribute takes place.voidpreAttributeRemoved(AttributeEvent event)Called just before an attribute is removed.voidpreDirectedChanged(EdgeEvent event)Called before the edge is set directed or undirected.voidpreEdgeAdded(GraphEvent event)Called just before an edge is added to the graph.voidpreEdgeRemoved(GraphEvent event)Called just before an edge is removed from the graph.voidpreEdgeReversed(EdgeEvent event)Called before the edge is going to be reversed.voidpreGraphCleared(GraphEvent event)Called before methodclear()is called on a graph.voidpreNodeAdded(GraphEvent event)Called just before a node is added to the graph.voidpreNodeRemoved(GraphEvent event)Called just before a node is removed from the graph.voidpreSourceNodeChanged(EdgeEvent event)Called before a change of the source node of an edge takes place.voidpreTargetNodeChanged(EdgeEvent event)Called before a change of the target node of an edge takes place.voidpreUndirectedEdgeAdded(NodeEvent event)Called just before an (undirected) edge is added to the node.voidpreUndirectedEdgeRemoved(NodeEvent event)Called just before an (undirected) edge is removed from the node.voidremoveAttributeListener(AttributeListener l)Unregisters AttributeListener l by removing it from the list of AttributeListeners.voidremoveEdgeListener(EdgeListener l)Unregisters EdgeListener l by removing it from the list of EdgeListeners.voidremoveGraphListener(GraphListener l)Unregisters GraphListener l by removing it from the list of non-strict and strict transaction GraphListeners.voidremoveNodeListener(NodeListener l)UnregistersNodeListenerl by removing it from the list of NodeListenersvoidtransactionFinished(Object source)Called when a transaction has finished.voidtransactionFinished(Object source, boolean forgetChanges)voidtransactionFinished(Object source, boolean forgetChanges, BackgroundTaskStatusProviderSupportingExternalCall status)voidtransactionStarted(Object source)Called when a transaction has started.
-
Constructor Details
-
ListenerManager
public ListenerManager()Default contructor. Initializes all listener sets as empty hash sets.
-
-
Method Details
-
addAllTimeAttributeListener
Registers AttributeListener l by adding it to the list of nonstrict and strict transaction AttributeListeners.- Parameters:
l- the AttributeListener that is registered.- Throws:
ListenerRegistrationException- DOCUMENT ME!IllegalArgumentException- DOCUMENT ME!
-
addAllTimeEdgeListener
Registers EdgeListener l by adding it to the list of nonstrict transaction EdgeListeners.- Parameters:
l- the EdgeListener that is registered.- Throws:
ListenerRegistrationException- DOCUMENT ME!IllegalArgumentException- DOCUMENT ME!
-
addAllTimeGraphListener
Registers GraphListener l by adding it to the list of GraphListeners.- Parameters:
l- the GraphListener that is registered.- Throws:
ListenerRegistrationException- DOCUMENT ME!IllegalArgumentException- DOCUMENT ME!
-
addAllTimeNodeListener
RegistersNodeListenerl by adding it to the list of nonstrict transaction NodeListeners.- Parameters:
l- the NodeListener that is registered.- Throws:
ListenerRegistrationException- DOCUMENT ME!IllegalArgumentException- DOCUMENT ME!
-
addDelayedAttributeListener
Registers AttributeListener l by adding it to the list of strict transaction AttributeListeners.- Parameters:
l- the AttributeListener that is registered.- Throws:
ListenerRegistrationException- DOCUMENT ME!IllegalArgumentException- DOCUMENT ME!
-
addDelayedEdgeListener
Registers EdgeListener l by adding it to the list of strict transaction EdgeListeners.- Parameters:
l- the EdgeListener that is registered.- Throws:
ListenerRegistrationException- DOCUMENT ME!IllegalArgumentException- DOCUMENT ME!
-
addDelayedGraphListener
Registers GraphListener l by adding it to the list of strict transaction GraphListeners.- Parameters:
l- the GraphListener that is registered.- Throws:
ListenerRegistrationException- DOCUMENT ME!IllegalArgumentException- DOCUMENT ME!
-
addDelayedNodeListener
RegistersNodeListenerl by adding it to the list of strict transaction NodeListeners.- Parameters:
l- the NodeListener that is registered.- Throws:
ListenerRegistrationException- DOCUMENT ME!IllegalArgumentException- DOCUMENT ME!
-
postAttributeAdded
Called after an attribute has been added. Calls the same method in allAttributeListenersin thestrictAttributeListenerList- Parameters:
event- the AttributeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postAttributeChanged
Called after an attribute has been changed. Calls the same method in allAttributeListenersin thestrictAttributeListenerList- Parameters:
event- the AttributeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postAttributeRemoved
Called after an attribute has been removed. Calls the same method in allAttributeListenersin thestrictAttributeListenerList- Parameters:
event- the AttributeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postDirectedChanged
Called after the edge was set directed or undirected. Calls the same method in allEdgeListenersin thestrictEdgeListenerList- Parameters:
event- the EdgeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postEdgeAdded
Called after an edge has been added to the graph. Calls the same method in allGraphListenersin thestrictGraphListenerList- Parameters:
event- the GraphEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postEdgeRemoved
Called after an edge has been removed from the graph. Calls the same method in allGraphListenersin thestrictGraphListenerList- Parameters:
event- the GraphEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postEdgeReversed
Called after the edge has been reversed. Calls the same method in allEdgeListenersin thestrictEdgeListenerList- Parameters:
event- the EdgeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postGraphCleared
Called after methodclear()has been called on a graph. Calls the same method in allGraphListenersin thestrictGraphListenerList- Parameters:
event- the GraphEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postNodeAdded
Called after an edge has been added to the graph. Calls the same method in allGraphListenersin thestrictGraphListenerList- Parameters:
event- the GraphEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postNodeRemoved
Called after a node has been removed from the graph. Calls the same method in allGraphListenersin thestrictGraphListenerList- Parameters:
event- the GraphEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postSourceNodeChanged
Called after the source node of an edge has changed. Calls the same method in allEdgeListenersin thestrictEdgeListenerList- Parameters:
event- the EdgeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postTargetNodeChanged
Called after the target node of an edge has changed. Calls the same method in allEdgeListenersin thestrictEdgeListenerList- Parameters:
event- the EdgeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postUndirectedEdgeAdded
Called after an (undirected) edge has been added to the node. (For directed edges pre- In/Out- EdgeAdded is called.) Calls the same method in all NodeListeners in the strictNodeListenerList- Parameters:
event- the NodeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
postUndirectedEdgeRemoved
Called after an (undirected) edge has been removed from the node. (For directed edges pre- In/Out- EdgeRemoved is called.) Calls the same method in all NodeListeners in the strictNodeListenerList- Parameters:
event- the NodeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preAttributeAdded
Called just before an attribute is added. Calls the same method in allAttributeListenersin thestrictAttributeListenerList- Parameters:
event- the AttributeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preAttributeChanged
Called before a change of an attribute takes place. Calls the same method in allAttributeListenersin thestrictAttributeListenerList- Parameters:
event- the AttributeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preAttributeRemoved
Called just before an attribute is removed. Calls the same method in allAttributeListenersin thestrictAttributeListenerList- Parameters:
event- the AttributeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preDirectedChanged
Called before the edge is set directed or undirected. Calls the same method in allEdgeListenersin thestrictEdgeListenerList- Parameters:
event- the EdgeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preEdgeAdded
Called just before an edge is added to the graph. Calls the same method in allGraphListenersin thestrictGraphListenerList- Parameters:
event- the GraphEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preEdgeRemoved
Called just before an edge is removed from the graph. Calls the same method in allGraphListenersin thestrictGraphListenerList- Parameters:
event- the GraphEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preEdgeReversed
Called before the edge is going to be reversed. Calls the same method in allEdgeListenersin thestrictEdgeListenerList- Parameters:
event- the EdgeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preGraphCleared
Called before methodclear()is called on a graph. Calls the same method in allGraphListenersin thestrictGraphListenerList- Parameters:
event- the GraphEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preNodeAdded
Called just before a node is added to the graph. Calls the same method in allGraphListenersin thestrictGraphListenerList- Parameters:
event- the GraphEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preNodeRemoved
Called just before a node is removed from the graph. Calls the same method in allGraphListenersin thestrictGraphListenerList- Parameters:
event- the GraphEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preSourceNodeChanged
Called before a change of the source node of an edge takes place. Calls the same method in allEdgeListenersin thestrictEdgeListenerList- Parameters:
event- the EdgeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preTargetNodeChanged
Called before a change of the target node of an edge takes place. Calls the same method in allEdgeListenersin thestrictEdgeListenerList- Parameters:
event- the EdgeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preUndirectedEdgeAdded
Called just before an (undirected) edge is added to the node. (For directed edges pre- In/Out- EdgeAdded is called.) Calls the same method in all NodeListeners in the strictNodeListenerList- Parameters:
event- the NodeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
preUndirectedEdgeRemoved
Called just before an (undirected) edge is removed from the node. (For directed edges pre- In/Out- EdgeRemoved is called.) Calls the same method in all NodeListeners in the strictNodeListenerList- Parameters:
event- the NodeEvent detailing the changes.- Throws:
IllegalArgumentException- DOCUMENT ME!
-
removeAttributeListener
Unregisters AttributeListener l by removing it from the list of AttributeListeners.- Parameters:
l- the AttributeListener that is unregistered.- Throws:
ListenerNotFoundException- if the listener to delete cannot be found in the listener list.
-
removeEdgeListener
Unregisters EdgeListener l by removing it from the list of EdgeListeners.- Parameters:
l- the EdgeListener that is unregistered.- Throws:
ListenerNotFoundException- if the listener to delete cannot be found in the listener list.
-
removeGraphListener
Unregisters GraphListener l by removing it from the list of non-strict and strict transaction GraphListeners.- Parameters:
l- the GraphListener that is unregistered.- Throws:
ListenerNotFoundException- if the listener to delete cannot be found in the listener list.
-
removeNodeListener
UnregistersNodeListenerl by removing it from the list of NodeListeners- Parameters:
l- the NodeListener that is unregistered.- Throws:
ListenerNotFoundException- if the listener to delete cannot be found in the listener list.
-
finishOpenTransactions
public void finishOpenTransactions() -
transactionFinished
Called when a transaction has finished. Changes the event it gets by reusing thesourcebut adding theSetof (probably) changed objects.- Parameters:
source- the object, which initiated the end of the transaction.
-
transactionFinished
-
transactionFinished
public void transactionFinished(Object source, boolean forgetChanges, BackgroundTaskStatusProviderSupportingExternalCall status) -
transactionStarted
Called when a transaction has started.- Parameters:
source- the object, which initiated the transaction.
-
getNumTransactionsActive
public int getNumTransactionsActive()
-