L
- listeners typepublic class ListenerSet<L> extends Object implements Iterable<L>
Cette classe permet de mettre en place facilement le support de listeners. Elle ne permet d'ajouter qu'une seul fois le meme listener. Si elle est la derniere à avoir une référence sur le listener, le listener est supprimé de la liste des listeners.
Si on souhaite avoir une vérification sur le type de listener ajouté
il faut utiliser le constructeur qui prend une classe en paramètre. Dans ce
cas la méthode add(Object)
vérifie que l'object passé est bien
du type ou un enfant du type donné en paramètre du constructeur
Il y a deux façon de prévenir les listeners d'un event soit par le
mécanisme inclu dans cette classe en utilisant la méthode fire(java.lang.String, java.lang.Object)
soit
en utilisant soit même l'Iterateur sur les listeners encore valide.
ListenerSet listeners = new ListenerSet(); ... listeners.fire("monEvent", MonObjetEvent);ou bien
ListenerSet listeners = new ListenerSet(); ... for(Iterator i=listeners.iterator(); i.hasNext();){ MonListener l = (MonListener)i.next(); l.monEvent(MonObjetEvent); }Cette deuxième façon de faire est plus sûr car elle n'utilise pas l'introspection et donc une vérification est faite sur le nom de la méthode à appeler à la compilation, mais elle est plus verbeuse à écrire.
CategorisedListenerSet
Modifier and Type | Field and Description |
---|---|
protected HashSet<Reference<L>> |
listeners
Listeners reference set.
|
Constructor and Description |
---|
ListenerSet() |
Modifier and Type | Method and Description |
---|---|
void |
add(L l)
Ajoute un listener dans la liste des listeners.
|
void |
addAll(ListenerSet<L> ls)
ajoute tous les listeners d'un ListenerSet
|
void |
fire(String methodName)
Appele la méthode du listener sans argument.
|
void |
fire(String methodName,
Object event)
Appel la méthode du listener en passant l'objet event en paramètre
Cette méthode echoue si la methode ou l'objet contenant la methode a
appeler n'est pas public
|
Iterator<L> |
iterator()
Get iterator on listener list.
|
void |
remove(L l)
Remove listener.
|
int |
size() |
String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEach, spliterator
public int size()
public void add(L l)
l
- le listener à ajouter. Si l'objet passé est null, rien n'est fait
si l'objet n'est pas du type passé en argument du constructeur
une IllegalArgumentException est levée.public void addAll(ListenerSet<L> ls)
ls
- The feature to be added to the All attributepublic void fire(String methodName, Object event) throws Exception
methodName
- le nom de la methode a appelerevent
- l'event a passer en parametre de la methode a appelerException
- si un des listeners leve une exception lors de l'appelpublic void fire(String methodName) throws Exception
methodName
- le nom de la methode a appelerException
- si un des listeners leve une exception lors de l'appelpublic void remove(L l)
l
- listener to removeCopyright © 2004–2020 CodeLutin. All rights reserved.