schmitzm.data.event
Class AbstractObjectTraceable

java.lang.Object
  extended by schmitzm.data.event.AbstractObjectTraceable
All Implemented Interfaces:
ObjectTraceable
Direct Known Subclasses:
Property, PropertySet

public abstract class AbstractObjectTraceable
extends Object
implements ObjectTraceable

Diese (abstrakte) Klasse bildet eine Basis-Implementierung fuer ein ObjectTraceable-Objekt.
Sie speichert alle ObjectListener in einem java.util.Vector und informiert diese bei einem fireEvent(..)-Aufruf.
Die Klasse ist abstrakt, weil es keine Sinn macht sie alleine zu Instanziieren. Sie ist dazu da, andere Objekte davon abzuleiten.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)
See Also:
ObjectTraceable, ObjectListener

Constructor Summary
AbstractObjectTraceable()
           
 
Method Summary
 void addObjectListener(ObjectListener listener)
          Fuegt dem Objekt einen Listener hinzu, der bei Aenderungen informiert wird.
 boolean containsObjectListener(ObjectListener listener)
          Prueft, ob ein bestimmter Listener auf das Objekt horcht.
protected  ObjectEvent createGeneralEvent()
          Erzeugt ein generelles Event, mit welchem die Listener ueber Aenderungen am Objekt informiert werden, die eine generelle Reorganisation nach sich ziehen muss.
 void fireEvent(ObjectEvent e)
          Informiert alle Listener, dass sich das Objekt (this) geaendert hat.
 void fireEvent(ObjectEvent e, Class c)
          Informiert alle Listener einer bestimmten Klasse, dass sich das Objekt (this) geaendert hat.
 void fireGeneralEvent()
          Informiert alle Listener, dass eine Aenderung am Objekt (this) stattgefunden hat, die eine generelle Reorganisation nach sich ziehen muss.
 void fireGeneralEvent(Class c)
          Informiert alle Listener eine bestimmten Klasse, dass eine generelle Aenderung am Objekt (this) stattgefunden hat.
 ObjectListener[] getObjectListener(Class type)
          Liefert alle Listener eines bestimmten Typs.
 boolean isEventFiringEnabled()
          Prueft, ob das Werfen von Events durch fireEvent(ObjectEvent) und fireEvent(ObjectEvent,Class) aktiviert ist.
protected  void removeAllObjectListeners()
          Entfernt alle Listener von dem Objekt.
 void removeObjectListener(ObjectListener listener)
          Entfernt einen Listener von dem Objekt.
 void setEventFiringEnabled(boolean firingEnabled)
          (De)Aktiviert jegliches Werfen von Events durch fireEvent(ObjectEvent) und fireEvent(ObjectEvent,Class).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractObjectTraceable

public AbstractObjectTraceable()
Method Detail

addObjectListener

public void addObjectListener(ObjectListener listener)
Fuegt dem Objekt einen Listener hinzu, der bei Aenderungen informiert wird.

Specified by:
addObjectListener in interface ObjectTraceable

removeObjectListener

public void removeObjectListener(ObjectListener listener)
Entfernt einen Listener von dem Objekt.

Specified by:
removeObjectListener in interface ObjectTraceable

removeAllObjectListeners

protected void removeAllObjectListeners()
Entfernt alle Listener von dem Objekt.


containsObjectListener

public boolean containsObjectListener(ObjectListener listener)
Prueft, ob ein bestimmter Listener auf das Objekt horcht.

Specified by:
containsObjectListener in interface ObjectTraceable

getObjectListener

public ObjectListener[] getObjectListener(Class type)
Liefert alle Listener eines bestimmten Typs.

Specified by:
getObjectListener in interface ObjectTraceable
Parameters:
type - Art des Listeners (Filter)

fireEvent

public void fireEvent(ObjectEvent e)
Informiert alle Listener, dass sich das Objekt (this) geaendert hat. Dies geschieht jedoch nur, wenn das EventFiring aktiviert ist.

Specified by:
fireEvent in interface ObjectTraceable
See Also:
setEventFiringEnabled(boolean)

fireEvent

public void fireEvent(ObjectEvent e,
                      Class c)
Informiert alle Listener einer bestimmten Klasse, dass sich das Objekt (this) geaendert hat. Dies geschieht jedoch nur, wenn das EventFiring aktiviert ist.

Specified by:
fireEvent in interface ObjectTraceable
See Also:
setEventFiringEnabled(boolean)

setEventFiringEnabled

public void setEventFiringEnabled(boolean firingEnabled)
(De)Aktiviert jegliches Werfen von Events durch fireEvent(ObjectEvent) und fireEvent(ObjectEvent,Class). Dies kann sinnvoll sein, wenn zunaechst eine grosse Anzahl an Aenderungen durchgefuehrt werden soll, bevor ein generelles Event geworfen wird.
Standardmaessig ist das Werfen von Events aktiviert.

See Also:
fireGeneralEvent()

isEventFiringEnabled

public boolean isEventFiringEnabled()
Prueft, ob das Werfen von Events durch fireEvent(ObjectEvent) und fireEvent(ObjectEvent,Class) aktiviert ist.

See Also:
setEventFiringEnabled(boolean)

createGeneralEvent

protected ObjectEvent createGeneralEvent()
Erzeugt ein generelles Event, mit welchem die Listener ueber Aenderungen am Objekt informiert werden, die eine generelle Reorganisation nach sich ziehen muss.
Ruft lediglich return new GeneralObjectChangeEvent( new Invoker(this) ); auf. Sub-Klassen koennen diese Methode ueberschreiben, wenn ein spezielleres Event geworfen werden soll.

See Also:
GeneralObjectChangeEvent

fireGeneralEvent

public void fireGeneralEvent()
Informiert alle Listener, dass eine Aenderung am Objekt (this) stattgefunden hat, die eine generelle Reorganisation nach sich ziehen muss. Dies geschieht jedoch nur, wenn das EventFiring aktiviert ist.

See Also:
setEventFiringEnabled(boolean)

fireGeneralEvent

public void fireGeneralEvent(Class c)
Informiert alle Listener eine bestimmten Klasse, dass eine generelle Aenderung am Objekt (this) stattgefunden hat. Informiert alle Listener einer bestimmten Klasse, dass eine Aenderung am Objekt (this) stattgefunden hat, die eine generelle Reorganisation nach sich ziehen muss. Dies geschieht jedoch nur, wenn das EventFiring aktiviert ist.

See Also:
setEventFiringEnabled(boolean)