Class Signal1<A1>

java.lang.Object
eu.webtoolkit.jwt.AbstractSignal
eu.webtoolkit.jwt.Signal1<A1>

public class Signal1<A1> extends AbstractSignal
A signal that propagates events to listeners, and is capable of passing 1 argument.

A signal implements the Observer pattern, allowing one or more listeners to listen for events generated on the signal. The event may propagate an argument to the listeners.

For a usage example take a look the documentation of Signal2.

  • Constructor Details

    • Signal1

      public Signal1()
      Creates a new signal.
    • Signal1

      public Signal1(WObject sender)
  • Method Details

    • addListener

      public AbstractSignal.Connection addListener(WObject listenerOwner, Signal1.Listener<A1> 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 class
      listener - the listener
      Returns:
      a connection object that may be used to control the connection
      See Also:
    • removeListener

      public void removeListener(Signal1.Listener<A1> listener)
      Removes a listener.
      Parameters:
      listener - a listener that was previously added
    • trigger

      public void trigger(A1 arg)
      Triggers the signal.

      The argument is passed to the listeners.

      Parameters:
      arg - The argument.
    • addListener

      public AbstractSignal.Connection addListener(WObject listenerOwner, Signal.Listener listener)
      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 class AbstractSignal
      Parameters:
      listenerOwner - if not null, the enclosing object for a listener implemented using an inner class
      listener - the listener
      Returns:
      a connection object that may be used to control the connection
    • removeListener

      public void removeListener(Signal.Listener listener)
      Description copied from class: AbstractSignal
      Removes a listener.

      Specified by:
      removeListener in class AbstractSignal
      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 class AbstractSignal