package org.mbari.vdm.knowledgebase;

import org.mbari.vars.knowledgebase.model.Concept;
import org.mbari.vars.knowledgebase.model.ConceptName;


//~--- non-JDK imports --------------------------------------------------------


/**
* An interface type for notification that a <code>Concept</code> or
* <code>ConceptName</code> object has been added or removed from the
* <code>KnowledgeBase</code>.
*/
public interface ConceptChangeListener {

  //~--- methods ------------------------------------------------------------

  /**
   * Call back for notification a <code>Concept</code> has been added.
   *
   * @param concept
   */
  void addedConcept(Concept concept);

  /**
   * Call back for notification a <code>ConceptName</code> has been added.
   *
   * @param conceptName
   */
  void addedConceptName(ConceptName conceptName);

  /**
   * Call back for notification a <code>Concept</code> has been removed.
   *
   * @param concept
   */
  void removedConcept(Concept concept);

  /**
   * Call back for notification a <code>ConceptName</code> has been removed.
   *
   * @param conceptName
   */
  void removedConceptName(ConceptName conceptName);
}
