Class Signal4<A1,A2,A3,A4>
A signal implements the Observer pattern, allowing one or more listeners to listen for events generated on the signal. The event may propagate 4 arguments to the listeners.
For a usage example take a look the documentation of Signal2
.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
The listener interface.Nested classes/interfaces inherited from class eu.webtoolkit.jwt.AbstractSignal
AbstractSignal.Connection
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaddListener
(WObject listenerOwner, Signal.Listener listener) Adds a listener for this signal.addListener
(WObject listenerOwner, Signal4.Listener<A1, A2, A3, A4> listener) Adds a listener for this signal.protected int
Returns the number of parameters (excluding an 'event').void
removeListener
(Signal.Listener listener) Removes a listener.void
removeListener
(Signal4.Listener<A1, A2, A3, A4> listener) Removes a listener.void
Triggers the signal.Methods inherited from class eu.webtoolkit.jwt.AbstractSignal
getListenerCount, getListeners, isBlocked, isConnected, setBlocked
-
Constructor Details
-
Signal4
public Signal4()Creates a new signal.
-
-
Method Details
-
addListener
public AbstractSignal.Connection addListener(WObject listenerOwner, Signal4.Listener<A1, A2, A3, A4> listener) Adds a listener for this signal.Each listener will be triggered whenever the signal is triggered.
- Parameters:
listenerOwner
- the enclosing object for a listener implemented using an (anonymous) inner classlistener
- the listener- Returns:
- a connection object that may be used to control the connection
- See Also:
-
removeListener
Removes a listener.- Parameters:
listener
- a listener that was previously added
-
trigger
Triggers the signal.The arguments are passed to the listeners.
- Parameters:
arg1
- Argument 1.arg2
- Argument 2.arg3
- Argument 3.arg4
- Argument 4.
-
addListener
Description copied from class:AbstractSignal
Adds a listener for this signal.Each listener will be notified when the signal is triggered.
An owner object may be passed when the listener is implemented using an (anonymous) inner class. In that case the owner object should be the enclosing object of the listener object, and this is used to bind the lifetime of the listener. To avoid the owner object from not being garbage collected when it is no longer used, only the owner object will add a reference to the listener, while the signal will use a weak reference.
This avoids the most common reason for memory leaks in Java implementations of the Observer pattern: the owner object will not get garbage collected because of the (anonymous) listener object having a reference to it, even if the receiver object is no longer referenced from anywhere. When the owner object is not
null
, the listener is stored using a strong reference in the owner object, and using a weak reference in the signal.- Specified by:
addListener
in classAbstractSignal
- Parameters:
listenerOwner
- if notnull
, the enclosing object for a listener implemented using an inner classlistener
- the listener- Returns:
- a connection object that may be used to control the connection
-
removeListener
Description copied from class:AbstractSignal
Removes a listener.- Specified by:
removeListener
in classAbstractSignal
- Parameters:
listener
- a listener that was previously added.
-
getArgumentCount
protected int getArgumentCount()Description copied from class:AbstractSignal
Returns the number of parameters (excluding an 'event').- Specified by:
getArgumentCount
in classAbstractSignal
-