package data.events;

import java.util.EventObject;

import data.*;

/**
  * An event indicating a change in a Catalog's contents.
  *
  * @see ListenableCatalog
  *
  * @author Steffen Zschaler
  * @version 2.0 19/08/1999
  * @since v2.0
  */
public class CatalogChangeEvent extends EventObject {

  /**
    * The CatalogItem affected by the change.
    *
    * @serial
    */
  private CatalogItem m_ciAffected;

  /**
    * The DataBasket that was used to perform the operation.
    *
    * @serial
    */
  private DataBasket m_dbBasket;

  /**
    * Create a new CatalogChangeEvent.
    *
    * @param lcSource the Catalog that triggers the event.
    * @param ciAffected the affected CatalogItem.
    * @param db the DataBasket that was used to perform the operation.
    */
  public CatalogChangeEvent (ListenableCatalog lcSource,
                             CatalogItem ciAffected,
                             DataBasket db) {
    super (lcSource);

    m_ciAffected = ciAffected;
    m_dbBasket = db;
  }

  /**
    * Get the item that is affected by the change.
    *
    * @override Never.
    */
  public CatalogItem getAffectedItem() {
    return m_ciAffected;
  }

  /**
    * Get the DataBasket that was used to perform the operation.
    *
    * @override Never.
    */
  public DataBasket getBasket() {
    return m_dbBasket;
  }
}