Package com.deco2800.game.events
Class EventHandler
java.lang.Object
com.deco2800.game.events.EventHandler
public class EventHandler
extends java.lang.Object
Send and receive events between objects. EventHandler provides an implementation of the Observer
pattern, also known as an event system or publish/subscribe. When an event is triggered with
trigger(), all listeners are notified of the event.
Currently supports up to 3 arguments for an event. More can be added, but consider instead passing a class with required fields.
If you get a ClassCastException from an event, trigger is being called with different arguments than the listeners expect.
-
Constructor Summary
Constructors Constructor Description EventHandler()
-
Method Summary
Modifier and Type Method Description void
addListener(java.lang.String eventName, EventListener0 listener)
Add a listener to an event with zero arguments<T> void
addListener(java.lang.String eventName, EventListener1<T> listener)
Add a listener to an event with one argument<T0, T1> void
addListener(java.lang.String eventName, EventListener2<T0,T1> listener)
Add a listener to an event with two arguments<T0, T1, T2> void
addListener(java.lang.String eventName, EventListener3<T0,T1,T2> listener)
Add a listener to an event with three argumentsvoid
trigger(java.lang.String eventName)
Trigger an event with no arguments<T> void
trigger(java.lang.String eventName, T arg0)
Trigger an event with one argument<T0, T1> void
trigger(java.lang.String eventName, T0 arg0, T1 arg1)
Trigger an event with one argument<T0, T1, T2> void
trigger(java.lang.String eventName, T0 arg0, T1 arg1, T2 arg2)
Trigger an event with one argument
-
Constructor Details
-
EventHandler
public EventHandler()
-
-
Method Details
-
addListener
Add a listener to an event with zero arguments- Parameters:
eventName
- name of the eventlistener
- function to call when event fires
-
addListener
Add a listener to an event with one argument- Type Parameters:
T
- argument type- Parameters:
eventName
- name of the eventlistener
- function to call when event fires
-
addListener
Add a listener to an event with two arguments- Type Parameters:
T0
- Type of arg 0T1
- Type of arg 1- Parameters:
eventName
- name of the eventlistener
- function to call when event fires
-
addListener
public <T0, T1, T2> void addListener(java.lang.String eventName, EventListener3<T0,T1,T2> listener)Add a listener to an event with three arguments- Type Parameters:
T0
- Type of arg 0T1
- Type of arg 1T2
- Type of arg 2- Parameters:
eventName
- name of the eventlistener
- function to call when event fires
-
trigger
public void trigger(java.lang.String eventName)Trigger an event with no arguments- Parameters:
eventName
- name of the event
-
trigger
public <T> void trigger(java.lang.String eventName, T arg0)Trigger an event with one argument- Type Parameters:
T
- argument type- Parameters:
eventName
- name of the eventarg0
- arg to pass to event
-
trigger
public <T0, T1> void trigger(java.lang.String eventName, T0 arg0, T1 arg1)Trigger an event with one argument- Type Parameters:
T0
- Type of arg 0T1
- Type of arg 1- Parameters:
eventName
- name of the eventarg0
- arg 0 to pass to eventarg1
- arg 1 to pass to event
-
trigger
public <T0, T1, T2> void trigger(java.lang.String eventName, T0 arg0, T1 arg1, T2 arg2)Trigger an event with one argument- Type Parameters:
T0
- Type of arg 0T1
- Type of arg 1T2
- Type of arg 2- Parameters:
eventName
- name of the eventarg0
- arg 0 to pass to eventarg1
- arg 1 to pass to eventarg2
- arg 2 to pass to event
-