package org.jactr.core.module.procedural.six.learning.event;
/*
* default logging
*/
import org.jactr.core.event.AbstractACTREvent;
import org.jactr.core.module.procedural.six.learning.IProceduralLearningModule6;
import org.jactr.core.production.IProduction;
import org.jactr.core.runtime.ACTRRuntime;
public class ProceduralLearningEvent
extends
AbstractACTREvent<IProceduralLearningModule6, IProceduralLearningModule6Listener>
{
static public enum Type {
REWARDED
};
final private Type _type;
final private double _reward;
final private IProduction _production;
public ProceduralLearningEvent(IProceduralLearningModule6 source, IProduction production, double reward)
{
super(source, ACTRRuntime.getRuntime().getClock(source.getModel())
.getTime());
_type = Type.REWARDED;
_production = production;
_reward = reward;
}
@Override
public void fire(IProceduralLearningModule6Listener listener)
{
switch (getType())
{
case REWARDED:
listener.rewarded(this);
break;
}
}
public Type getType()
{
return _type;
}
public IProduction getProduction()
{
return _production;
}
public double getReward()
{
return _reward;
}
}