package org.jactr.core.module.procedural.six;
/*
* default logging
*/
import java.util.Collection;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jactr.core.module.procedural.IProceduralModule;
import org.jactr.core.module.procedural.IProductionInstantiator;
import org.jactr.core.production.CannotInstantiateException;
import org.jactr.core.production.IInstantiation;
import org.jactr.core.production.IProduction;
import org.jactr.core.production.VariableBindings;
public class DefaultProductionInstantiator implements IProductionInstantiator
{
/**
* Logger definition
*/
static private final transient Log LOGGER = LogFactory
.getLog(DefaultProductionInstantiator.class);
private IProceduralModule _module;
public Collection<IInstantiation> instantiate(IProduction production,
Collection<VariableBindings> provisionalBindings)
throws CannotInstantiateException
{
try
{
return production.instantiateAll(provisionalBindings);
}
catch (CannotInstantiateException cie)
{
throw cie;
}
catch (Exception e)
{
LOGGER.error(
"Could not instantiate " + production + " : " + e.getMessage(), e);
throw new CannotInstantiateException("Could not instantiate "
+ production + " : " + e.getMessage(), e);
}
}
public void setProceduralModule(IProceduralModule module)
{
_module = module;
}
public IProceduralModule getProceduralModule()
{
return _module;
}
}