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:
Jannis Harder 2011-05-02 02:28:19 +02:00
parent b89d29aac2
commit 15a41ec38e
9 changed files with 166 additions and 51 deletions

View file

@ -2,22 +2,24 @@ package jrummikub.util;
import java.util.HashSet;
/** Simple parameterless event generator */
public class Event implements IEvent {
private HashSet<IListener> listeners = new HashSet<IListener>();
private HashSet<IListener> listeners = new HashSet<IListener>();
@Override
public void add(IListener listener) {
listeners.add(listener);
}
@Override
public void add(IListener listener) {
listeners.add(listener);
}
@Override
public void remove(IListener listener) {
listeners.remove(listener);
}
@Override
public void remove(IListener listener) {
listeners.remove(listener);
}
public void fire() {
for (IListener listener : listeners) {
listener.fire();
}
}
/** Generate a single event */
public void fire() {
for (IListener listener : listeners) {
listener.fire();
}
}
}

View file

@ -2,22 +2,34 @@ package jrummikub.util;
import java.util.HashSet;
/**
* Simple single parameter event generator
*
* @param <T>
* type of the event parameter
*/
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>>();
@Override
public void add(IListener1<T> listener) {
listeners.add(listener);
}
@Override
public void add(IListener1<T> listener) {
listeners.add(listener);
}
@Override
public void remove(IListener1<T> listener) {
listeners.remove(listener);
}
@Override
public void remove(IListener1<T> listener) {
listeners.remove(listener);
}
public void fire(T value) {
for (IListener1<T> listener : listeners) {
listener.fire(value);
}
}
/**
* Generate a single event
*
* @param value
* the event parameter
*/
public void fire(T value) {
for (IListener1<T> listener : listeners) {
listener.fire(value);
}
}
}

View file

@ -2,22 +2,38 @@ package jrummikub.util;
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> {
private HashSet<IListener2<T1, T2>> listeners = new HashSet<IListener2<T1, T2>>();
private HashSet<IListener2<T1, T2>> listeners = new HashSet<IListener2<T1, T2>>();
@Override
public void add(IListener2<T1, T2> listener) {
listeners.add(listener);
}
@Override
public void add(IListener2<T1, T2> listener) {
listeners.add(listener);
}
@Override
public void remove(IListener2<T1, T2> listener) {
listeners.remove(listener);
}
@Override
public void remove(IListener2<T1, T2> listener) {
listeners.remove(listener);
}
public void fire(T1 value1, T2 value2) {
for (IListener2<T1, T2> listener : listeners) {
listener.fire(value1, value2);
}
}
/**
* Generate a single event
*
* @param value1
* the first event parameter
* @param value2
* the second event parameter
*/
public void fire(T1 value1, T2 value2) {
for (IListener2<T1, T2> listener : listeners) {
listener.fire(value1, value2);
}
}
}

View file

@ -1,7 +1,20 @@
package jrummikub.util;
/** Interface for classes that can generate parameterless events */
public interface IEvent {
public void add(IListener listener);
/**
* Start to publish all events to a given listener
*
* @param listener
* target listener
*/
public void add(IListener listener);
public void remove(IListener listener);
/**
* Stop publishing events to a given listener
*
* @param listener
* target listener
*/
public void remove(IListener listener);
}

View file

@ -1,7 +1,25 @@
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 void add(IListener1<T> listener);
/**
* Start to publish all events to a given listener
*
* @param listener
* target listener
*/
public void add(IListener1<T> listener);
public void remove(IListener1<T> listener);
/**
* Stop publishing events to a given listener
*
* @param listener
* target listener
*/
public void remove(IListener1<T> listener);
}

View file

@ -1,7 +1,27 @@
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 void add(IListener2<T1, T2> listener);
/**
* Start to publish all events to a given listener
*
* @param listener
* target listener
*/
public void add(IListener2<T1, T2> listener);
public void remove(IListener2<T1, T2> listener);
/**
* Stop publishing events to a given listener
*
* @param listener
* target listener
*/
public void remove(IListener2<T1, T2> listener);
}

View file

@ -1,5 +1,9 @@
package jrummikub.util;
/**
* Interface for classes that can receive parameterless events
*/
public interface IListener {
public void fire();
/** This method is called whenever a class we're listening to emits an event */
public void fire();
}

View file

@ -1,5 +1,18 @@
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 void fire(T value);
/**
* This method is called whenever a class we're listening to emits an event
*
* @param value
* the event parameter
*/
public void fire(T value);
}

View file

@ -1,5 +1,22 @@
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 void fire(T1 value1, T2 value2);
/**
* 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);
}