1 package org.djutils.event;
2
3 import java.io.Serializable;
4 import java.rmi.Remote;
5 import java.rmi.RemoteException;
6
7 /**
8 * The EventListener interface creates a callback method for publishers to inform their clients. The EventListener and
9 * EventProducer together form a combination of the Publish-Subscribe design pattern and the Observer design pattern using the
10 * notify(event) method. See <a href="https://en.wikipedia.org/wiki/Publish-subscribe_pattern" target=
11 * "_blank">https://en.wikipedia.org/wiki/Publish-subscribe_pattern</a>,
12 * <a href="https://en.wikipedia.org/wiki/Observer_pattern" target="_blank">https://en.wikipedia.org/wiki/Observer_pattern</a>,
13 * and <a href="https://howtodoinjava.com/design-patterns/behavioral/observer-design-pattern/" target=
14 * "_blank">https://howtodoinjava.com/design-patterns/behavioral/observer-design-pattern/</a>.
15 * <p>
16 * Copyright (c) 2002-2023 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See
17 * for project information <a href="https://djutils.org" target="_blank"> https://djutils.org</a>. The DJUTILS project is
18 * distributed under a three-clause BSD-style license, which can be found at
19 * <a href="https://djutils.org/docs/license.html" target="_blank"> https://djutils.org/docs/license.html</a>. This class was
20 * originally part of the DSOL project, see <a href="https://simulation.tudelft.nl/dsol/manual" target="_blank">
21 * https://simulation.tudelft.nl/dsol/manual</a>.
22 * </p>
23 * @author <a href="https://www.linkedin.com/in/peterhmjacobs">Peter Jacobs </a>
24 * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a>
25 */
26 public interface EventListener extends java.util.EventListener, Serializable, Remote
27 {
28 /**
29 * Notifies the event listener of an event. This operation forms the callback method of the asynchronous communication
30 * protocol expressed in the event package.
31 * @param event Event; the event which is sent to the listener
32 * @throws RemoteException If a network connection failure occurs.
33 */
34 void notify(Event event) throws RemoteException;
35
36 }