org.dishevelled.observable.graph.event
Class ObservableGraphChangeSupport<N,E>

java.lang.Object
  extended by org.dishevelled.observable.graph.event.ObservableGraphChangeSupport<N,E>
Type Parameters:
N - node value type
E - edge value type
All Implemented Interfaces:
Serializable

public class ObservableGraphChangeSupport<N,E>
extends Object
implements Serializable

A support class that can be used via delegation to provide GraphChangeListener and VetoableGraphChangeListener management.

Version:
$Revision$ $Date$
Author:
Michael Heuer
See Also:
Serialized Form

Constructor Summary
protected ObservableGraphChangeSupport()
          Create a new support class meant to be subclassed.
  ObservableGraphChangeSupport(ObservableGraph<N,E> source)
          Create a new support class that fires graph change and vetoable graph change events with the specified source as the source of the events.
 
Method Summary
 void addGraphChangeListener(GraphChangeListener<N,E> l)
          Add the specified graph change listener.
 void addVetoableGraphChangeListener(VetoableGraphChangeListener<N,E> l)
          Add the specified vetoable graph change listener.
 void fireCleared()
          Fire a cleared change event to all registered GraphChangeListeners.
 void fireEdgeCreated(Edge<N,E> edge)
          Fire an edge created change event to all registered GraphChangeListeners.
 void fireEdgeRemoved(Edge<N,E> edge)
          Fire an edge removed change event to all registered GraphChangeListeners.
 void fireNodeCreated(Node<N,E> node)
          Fire a node created change event to all registered GraphChangeListeners.
 void fireNodeRemoved(Node<N,E> node)
          Fire a node removed change event to all registered GraphChangeListeners.
 void fireWillClear()
          Fire a will clear change event to all registered VetoableGraphChangeListeners.
 void fireWillCreateEdge(Node<N,E> sourceNode, Node<N,E> targetNode, E edgeValue)
          Fire a will create edge change event to all registered VetoableGraphChangeListeners.
 void fireWillCreateNode(N nodeValue)
          Fire a will create node create event to all registered VetoableGraphChangeListeners.
 void fireWillRemoveEdge(Edge<N,E> edge)
          Fire a will remove edge change event to all registered VetoableGraphChangeListeners.
 void fireWillRemoveNode(Node<N,E> node)
          Fire a will remove node change event to all registered VetoableGraphChangeListeners.
protected  EventListenerList getEventListenerList()
          Return the EventListenerList backing this observable graph support class.
 int getGraphChangeListenerCount()
          Return the number of GraphChangeListeners registered to this observable graph support class.
 GraphChangeListener<N,E>[] getGraphChangeListeners()
          Return an array of all GraphChangeListeners, or an empty array if none are registered.
 int getVetoableGraphChangeListenerCount()
          Return the number of VetoableGraphChangeListeners registered to this observable graph support class.
 VetoableGraphChangeListener<N,E>[] getVetoableGraphChangeListeners()
          Return an array of all VetoableGraphChangeListeners, or an empty array if none are registered.
 void removeGraphChangeListener(GraphChangeListener<N,E> l)
          Remove the specified graph change listener.
 void removeVetoableGraphChangeListener(VetoableGraphChangeListener<N,E> l)
          Remove the specified vetoable graph change listener.
protected  void setSource(ObservableGraph<N,E> source)
          Set the source of graph change and vetoable graph change events to source.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ObservableGraphChangeSupport

protected ObservableGraphChangeSupport()
Create a new support class meant to be subclassed.


ObservableGraphChangeSupport

public ObservableGraphChangeSupport(ObservableGraph<N,E> source)
Create a new support class that fires graph change and vetoable graph change events with the specified source as the source of the events.

Parameters:
source - the event source
Method Detail

setSource

protected void setSource(ObservableGraph<N,E> source)
Set the source of graph change and vetoable graph change events to source. Subclasses should call this method before any of the fireX methods.

Parameters:
source - the event source

getEventListenerList

protected final EventListenerList getEventListenerList()
Return the EventListenerList backing this observable graph support class.

Returns:
the EventListenerList backing this observable graph support class.

addGraphChangeListener

public final void addGraphChangeListener(GraphChangeListener<N,E> l)
Add the specified graph change listener.

Parameters:
l - graph change listener to add

removeGraphChangeListener

public final void removeGraphChangeListener(GraphChangeListener<N,E> l)
Remove the specified graph change listener.

Parameters:
l - graph change listener to remove

addVetoableGraphChangeListener

public final void addVetoableGraphChangeListener(VetoableGraphChangeListener<N,E> l)
Add the specified vetoable graph change listener.

Parameters:
l - vetoable graph change listener to add

removeVetoableGraphChangeListener

public final void removeVetoableGraphChangeListener(VetoableGraphChangeListener<N,E> l)
Remove the specified vetoable graph change listener.

Parameters:
l - vetoable graph change listener to remove

getGraphChangeListeners

public final GraphChangeListener<N,E>[] getGraphChangeListeners()
Return an array of all GraphChangeListeners, or an empty array if none are registered.

Returns:
an array of all GraphChangeListeners, or an empty array if none are registered

getGraphChangeListenerCount

public final int getGraphChangeListenerCount()
Return the number of GraphChangeListeners registered to this observable graph support class.

Returns:
the number of GraphChangeListeners registered to this observable graph support class

getVetoableGraphChangeListeners

public final VetoableGraphChangeListener<N,E>[] getVetoableGraphChangeListeners()
Return an array of all VetoableGraphChangeListeners, or an empty array if none are registered.

Returns:
an array of all VetoableGraphChangeListeners, or an empty array if none are registered

getVetoableGraphChangeListenerCount

public final int getVetoableGraphChangeListenerCount()
Return the number of VetoableGraphChangeListeners registered to this observable graph support class.

Returns:
the number of VetoableGraphChangeListeners registered to this observable graph support class

fireWillClear

public void fireWillClear()
                   throws GraphChangeVetoException
Fire a will clear change event to all registered VetoableGraphChangeListeners.

Throws:
GraphChangeVetoException - if any of the listeners veto the change

fireCleared

public void fireCleared()
Fire a cleared change event to all registered GraphChangeListeners.


fireNodeCreated

public void fireNodeCreated(Node<N,E> node)
Fire a node created change event to all registered GraphChangeListeners.

Parameters:
node - newly created node

fireNodeRemoved

public void fireNodeRemoved(Node<N,E> node)
Fire a node removed change event to all registered GraphChangeListeners.

Parameters:
node - removed node

fireEdgeCreated

public void fireEdgeCreated(Edge<N,E> edge)
Fire an edge created change event to all registered GraphChangeListeners.

Parameters:
edge - newly created edge

fireEdgeRemoved

public void fireEdgeRemoved(Edge<N,E> edge)
Fire an edge removed change event to all registered GraphChangeListeners.

Parameters:
edge - removed edge

fireWillCreateNode

public void fireWillCreateNode(N nodeValue)
                        throws GraphChangeVetoException
Fire a will create node create event to all registered VetoableGraphChangeListeners.

Parameters:
nodeValue - node value for an about to be created node
Throws:
GraphChangeVetoException - if any of the listeners veto the change

fireWillCreateEdge

public void fireWillCreateEdge(Node<N,E> sourceNode,
                               Node<N,E> targetNode,
                               E edgeValue)
                        throws GraphChangeVetoException
Fire a will create edge change event to all registered VetoableGraphChangeListeners.

Parameters:
sourceNode - source node for an about to be created edge
targetNode - target node for an about to be created edge
edgeValue - edge value for an about to be created edge
Throws:
GraphChangeVetoException - if any of the listeners veto the change

fireWillRemoveNode

public void fireWillRemoveNode(Node<N,E> node)
                        throws GraphChangeVetoException
Fire a will remove node change event to all registered VetoableGraphChangeListeners.

Parameters:
node - node about to be removed
Throws:
GraphChangeVetoException - if any of the listeners veto the change

fireWillRemoveEdge

public void fireWillRemoveEdge(Edge<N,E> edge)
                        throws GraphChangeVetoException
Fire a will remove edge change event to all registered VetoableGraphChangeListeners.

Parameters:
edge - edge about to be removed
Throws:
GraphChangeVetoException - if any of the listeners veto the change


Copyright (c) 2008-2012 held jointly by the individual authors. Licensed under the GNU Lesser General Public License (LGPL).