/* * Created on Aug 14, 2006 Copyright (C) 2001-6, Anthony Harrison anh23@pitt.edu * (jactr.org) This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of the License, * or (at your option) any later version. This library is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See * the GNU Lesser General Public License for more details. You should have * received a copy of the GNU Lesser General Public License along with this * library; if not, write to the Free Software Foundation, Inc., 59 Temple * Place, Suite 330, Boston, MA 02111-1307 USA */ package org.jactr.core.module.procedural.event; import java.util.EventListener; import org.jactr.core.event.IParameterListener; import org.jactr.core.production.IInstantiation; import org.jactr.core.production.IProduction; /** * listener for the major procedural module events. These are for listening, not * for intercepting and changing. * * @author harrison */ public interface IProceduralModuleListener extends EventListener, IParameterListener { /** * called when a production is added to the procedural module * * @param pme */ public void productionAdded(ProceduralModuleEvent pme); /** * called after the conflict set is assembled. * {@link ProceduralModuleEvent#getProductions()} actually contains the * {@link IInstantiation}s of the individual {@link IProduction}s. * * @param pme */ public void conflictSetAssembled(ProceduralModuleEvent pme); /** * called when a production has been selected to fire. * {@link ProceduralModuleEvent#getProduction()} actually returns the * {@link IInstantiation} of the {@link IProduction}. * * @param pme */ public void productionWillFire(ProceduralModuleEvent pme); /** * called after a production has been fired * {@link ProceduralModuleEvent#getProduction()} actually returns the * {@link IInstantiation} of the {@link IProduction}. * * @param pme */ public void productionFired(ProceduralModuleEvent pme); /** * called when a production has been created, but not necessarily configured * with all its symbolic/subsymbolic contents */ public void productionCreated(ProceduralModuleEvent pme); /** * called when two productions have been merged into one. pme.getProductions() * will return handles for both the original (unchanged) and the mergie * (changed) */ public void productionsMerged(ProceduralModuleEvent pme); }