Documented the Event/Listener classes
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@60 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
b89d29aac2
commit
15a41ec38e
9 changed files with 166 additions and 51 deletions
|
@ -2,6 +2,7 @@ package jrummikub.util;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
/** Simple parameterless event generator */
|
||||||
public class Event implements IEvent {
|
public class Event implements IEvent {
|
||||||
private HashSet<IListener> listeners = new HashSet<IListener>();
|
private HashSet<IListener> listeners = new HashSet<IListener>();
|
||||||
|
|
||||||
|
@ -15,6 +16,7 @@ public class Event implements IEvent {
|
||||||
listeners.remove(listener);
|
listeners.remove(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Generate a single event */
|
||||||
public void fire() {
|
public void fire() {
|
||||||
for (IListener listener : listeners) {
|
for (IListener listener : listeners) {
|
||||||
listener.fire();
|
listener.fire();
|
||||||
|
|
|
@ -2,6 +2,12 @@ package jrummikub.util;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simple single parameter event generator
|
||||||
|
*
|
||||||
|
* @param <T>
|
||||||
|
* type of the event parameter
|
||||||
|
*/
|
||||||
public class Event1<T> implements IEvent1<T> {
|
public class Event1<T> implements IEvent1<T> {
|
||||||
private HashSet<IListener1<T>> listeners = new HashSet<IListener1<T>>();
|
private HashSet<IListener1<T>> listeners = new HashSet<IListener1<T>>();
|
||||||
|
|
||||||
|
@ -15,6 +21,12 @@ public class Event1<T> implements IEvent1<T> {
|
||||||
listeners.remove(listener);
|
listeners.remove(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a single event
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* the event parameter
|
||||||
|
*/
|
||||||
public void fire(T value) {
|
public void fire(T value) {
|
||||||
for (IListener1<T> listener : listeners) {
|
for (IListener1<T> listener : listeners) {
|
||||||
listener.fire(value);
|
listener.fire(value);
|
||||||
|
|
|
@ -2,6 +2,14 @@ package jrummikub.util;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simple single parameter event generator
|
||||||
|
*
|
||||||
|
* @param <T1>
|
||||||
|
* type of the first event parameter
|
||||||
|
* @param <T2>
|
||||||
|
* type of the second event parameter
|
||||||
|
*/
|
||||||
public class Event2<T1, T2> implements IEvent2<T1, T2> {
|
public class Event2<T1, T2> implements IEvent2<T1, T2> {
|
||||||
private HashSet<IListener2<T1, T2>> listeners = new HashSet<IListener2<T1, T2>>();
|
private HashSet<IListener2<T1, T2>> listeners = new HashSet<IListener2<T1, T2>>();
|
||||||
|
|
||||||
|
@ -15,6 +23,14 @@ public class Event2<T1, T2> implements IEvent2<T1, T2> {
|
||||||
listeners.remove(listener);
|
listeners.remove(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a single event
|
||||||
|
*
|
||||||
|
* @param value1
|
||||||
|
* the first event parameter
|
||||||
|
* @param value2
|
||||||
|
* the second event parameter
|
||||||
|
*/
|
||||||
public void fire(T1 value1, T2 value2) {
|
public void fire(T1 value1, T2 value2) {
|
||||||
for (IListener2<T1, T2> listener : listeners) {
|
for (IListener2<T1, T2> listener : listeners) {
|
||||||
listener.fire(value1, value2);
|
listener.fire(value1, value2);
|
||||||
|
|
|
@ -1,7 +1,20 @@
|
||||||
package jrummikub.util;
|
package jrummikub.util;
|
||||||
|
|
||||||
|
/** Interface for classes that can generate parameterless events */
|
||||||
public interface IEvent {
|
public interface IEvent {
|
||||||
|
/**
|
||||||
|
* Start to publish all events to a given listener
|
||||||
|
*
|
||||||
|
* @param listener
|
||||||
|
* target listener
|
||||||
|
*/
|
||||||
public void add(IListener listener);
|
public void add(IListener listener);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stop publishing events to a given listener
|
||||||
|
*
|
||||||
|
* @param listener
|
||||||
|
* target listener
|
||||||
|
*/
|
||||||
public void remove(IListener listener);
|
public void remove(IListener listener);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,25 @@
|
||||||
package jrummikub.util;
|
package jrummikub.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface for classes that can generate events having a single parameter
|
||||||
|
*
|
||||||
|
* @param <T>
|
||||||
|
* type of the event parameter
|
||||||
|
*/
|
||||||
public interface IEvent1<T> {
|
public interface IEvent1<T> {
|
||||||
|
/**
|
||||||
|
* Start to publish all events to a given listener
|
||||||
|
*
|
||||||
|
* @param listener
|
||||||
|
* target listener
|
||||||
|
*/
|
||||||
public void add(IListener1<T> listener);
|
public void add(IListener1<T> listener);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stop publishing events to a given listener
|
||||||
|
*
|
||||||
|
* @param listener
|
||||||
|
* target listener
|
||||||
|
*/
|
||||||
public void remove(IListener1<T> listener);
|
public void remove(IListener1<T> listener);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,27 @@
|
||||||
package jrummikub.util;
|
package jrummikub.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface for classes that can generate events having a two parameters
|
||||||
|
*
|
||||||
|
* @param <T1>
|
||||||
|
* type of the first event parameter
|
||||||
|
* @param <T2>
|
||||||
|
* type of the second event parameter
|
||||||
|
*/
|
||||||
public interface IEvent2<T1, T2> {
|
public interface IEvent2<T1, T2> {
|
||||||
|
/**
|
||||||
|
* Start to publish all events to a given listener
|
||||||
|
*
|
||||||
|
* @param listener
|
||||||
|
* target listener
|
||||||
|
*/
|
||||||
public void add(IListener2<T1, T2> listener);
|
public void add(IListener2<T1, T2> listener);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stop publishing events to a given listener
|
||||||
|
*
|
||||||
|
* @param listener
|
||||||
|
* target listener
|
||||||
|
*/
|
||||||
public void remove(IListener2<T1, T2> listener);
|
public void remove(IListener2<T1, T2> listener);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
package jrummikub.util;
|
package jrummikub.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface for classes that can receive parameterless events
|
||||||
|
*/
|
||||||
public interface IListener {
|
public interface IListener {
|
||||||
|
/** This method is called whenever a class we're listening to emits an event */
|
||||||
public void fire();
|
public void fire();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,18 @@
|
||||||
package jrummikub.util;
|
package jrummikub.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface for classes that can receive parameterless events having a single
|
||||||
|
* parameter
|
||||||
|
*
|
||||||
|
* @param <T>
|
||||||
|
* type of the event parameter
|
||||||
|
*/
|
||||||
public interface IListener1<T> {
|
public interface IListener1<T> {
|
||||||
|
/**
|
||||||
|
* This method is called whenever a class we're listening to emits an event
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* the event parameter
|
||||||
|
*/
|
||||||
public void fire(T value);
|
public void fire(T value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,22 @@
|
||||||
package jrummikub.util;
|
package jrummikub.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface for classes that can receive parameterless events having a two
|
||||||
|
* parameters
|
||||||
|
*
|
||||||
|
* @param <T1>
|
||||||
|
* type of the first event parameter
|
||||||
|
* @param <T2>
|
||||||
|
* type of the first event parameter
|
||||||
|
*/
|
||||||
public interface IListener2<T1, T2> {
|
public interface IListener2<T1, T2> {
|
||||||
|
/**
|
||||||
|
* This method is called whenever a class we're listening to emits an event
|
||||||
|
*
|
||||||
|
* @param value1
|
||||||
|
* the first event parameter
|
||||||
|
* @param value2
|
||||||
|
* the second event parameter
|
||||||
|
*/
|
||||||
public void fire(T1 value1, T2 value2);
|
public void fire(T1 value1, T2 value2);
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue