All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jgap.event.IEventManager Maven / Gradle / Ivy

/*
 * This file is part of JGAP.
 *
 * JGAP offers a dual license model containing the LGPL as well as the MPL.
 *
 * For licensing information please see the file license.txt included with JGAP
 * or have a look at the top of class org.jgap.Chromosome which representatively
 * includes the JGAP license policy applicable for any file delivered with JGAP.
 */
package org.jgap.event;

import java.io.*;

/**
 * Interface for event managers (e.g., see class EventManager).
 *
 * @author Klaus Meffert
 * @author Neil Rotstan
 * @since 2.6
 */
public interface IEventManager
    extends Serializable {
  /**
   * Adds a new listener that will be notified when the event represented
   * by the given name is fired.
   *
   * @param a_eventName the name of the event to which the given listener
   * should be subscribed. Standard events are represented by constants in the
   * GeneticEvent class
   * @param a_eventListenerToAdd the genetic listener to subscribe to
   * notifications of the given event
   *
   * @author Neil Rotstan
   * @since 2.6 (since 1.0 in EventManager)
   */
  void addEventListener(String a_eventName,
                        GeneticEventListener a_eventListenerToAdd);

  /**
   * Removes the given listener from subscription of the indicated event.
   * The listener will no longer be notified when the given event occurs.
   *
   * @param a_eventName the name of the event to which the given listener
   * should be removed. Standard events are represented by constants in the
   * GeneticEvent class
   * @param a_eventListenerToRemove the genetic listener to unsubscribe from
   * notifications of the given event
   *
   * @author Neil Rotstan
   * @since 2.6 (since 1.0 in EventManager)
   */
  void removeEventListener(String a_eventName,
                           GeneticEventListener a_eventListenerToRemove);

  /**
   * Fires a genetic event. All subscribers of that particular event type
   * (as determined by the name of the event) will be notified of it
   * having been fired.
   *
   * @param a_eventToFire the representation of the genetic event to fire
   *
   * @author Neil Rotstan
   * @since 2.6 (since 1.0 in EventManager)
   */
  void fireGeneticEvent(GeneticEvent a_eventToFire);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy