org.jactr.core.module.procedural
Interface IProceduralModule

All Superinterfaces:
IInitializable, IInstallable, IModule
All Known Subinterfaces:
IProceduralModule4, IProceduralModule6
All Known Implementing Classes:
DefaultProceduralModule6

public interface IProceduralModule
extends IModule

specialized module for accessing procedural memory

Author:
developer

Field Summary
static java.lang.String DEFAULT_PRODUCTION_FIRING_TIME
           
static java.lang.String NUMBER_OF_PRODUCTIONS_FIRED
           
 
Method Summary
 void addListener(IProceduralModuleListener listener, java.util.concurrent.Executor executor)
           
 java.util.concurrent.Future<IProduction> addProduction(IProduction production)
          add this production to procedural memory and check for duplicates
 java.util.concurrent.Future<IProduction> createProduction(java.lang.String name)
          create a production, likely backed by the factory
 java.util.concurrent.Future<java.lang.Double> fireProduction(IInstantiation instantiation, double firingTime)
          actually executed the production returning the amount of time it took to fire this production and fire notification events.
 java.util.concurrent.Future<java.util.Collection<IInstantiation>> getConflictSet(java.util.Collection<IActivationBuffer> buffers)
          find the set of production instantiations that can fire based on the state of the buffers and fire the notification events
 double getDefaultProductionFiringTime()
          the default production firing time, aka default action time
 long getNumberOfProductionsFired()
           
 java.util.concurrent.Future<IProduction> getProduction(java.lang.String name)
          return the named production
 java.util.concurrent.Future<java.util.Collection<IProduction>> getProductions()
          return all the productions
 void removeListener(IProceduralModuleListener listener)
           
 java.util.concurrent.Future<IInstantiation> selectInstantiation(java.util.Collection<IInstantiation> instantiations)
           
 void setDefaultProductionFiringTime(double firingTime)
           
 void setNumberOfProductionsFired(long fired)
           
 
Methods inherited from interface org.jactr.core.module.IModule
dispose, getModel, getName, initialize, install
 
Methods inherited from interface org.jactr.core.utils.IInstallable
uninstall
 

Field Detail

DEFAULT_PRODUCTION_FIRING_TIME

static final java.lang.String DEFAULT_PRODUCTION_FIRING_TIME
See Also:
Constant Field Values

NUMBER_OF_PRODUCTIONS_FIRED

static final java.lang.String NUMBER_OF_PRODUCTIONS_FIRED
See Also:
Constant Field Values
Method Detail

createProduction

java.util.concurrent.Future<IProduction> createProduction(java.lang.String name)
create a production, likely backed by the factory

Parameters:
name -
Returns:

addProduction

java.util.concurrent.Future<IProduction> addProduction(IProduction production)
add this production to procedural memory and check for duplicates

Parameters:
production -
Returns:

getProduction

java.util.concurrent.Future<IProduction> getProduction(java.lang.String name)
return the named production

Parameters:
name -
Returns:

getProductions

java.util.concurrent.Future<java.util.Collection<IProduction>> getProductions()
return all the productions

Returns:

getConflictSet

java.util.concurrent.Future<java.util.Collection<IInstantiation>> getConflictSet(java.util.Collection<IActivationBuffer> buffers)
find the set of production instantiations that can fire based on the state of the buffers and fire the notification events

Parameters:
buffers -
Returns:

fireProduction

java.util.concurrent.Future<java.lang.Double> fireProduction(IInstantiation instantiation,
                                                             double firingTime)
actually executed the production returning the amount of time it took to fire this production and fire notification events. This should catch and ModelTerminatedException and return Double.NaN if it catches it

Parameters:
instantiation -
firingTime - TODO
Returns:

selectInstantiation

java.util.concurrent.Future<IInstantiation> selectInstantiation(java.util.Collection<IInstantiation> instantiations)

addListener

void addListener(IProceduralModuleListener listener,
                 java.util.concurrent.Executor executor)

removeListener

void removeListener(IProceduralModuleListener listener)

getDefaultProductionFiringTime

double getDefaultProductionFiringTime()
the default production firing time, aka default action time

Returns:

setDefaultProductionFiringTime

void setDefaultProductionFiringTime(double firingTime)

getNumberOfProductionsFired

long getNumberOfProductionsFired()
Returns:

setNumberOfProductionsFired

void setNumberOfProductionsFired(long fired)