package org.jactr.core.module.procedural.map.template;
/*
* default logging
*/
import java.util.Set;
import org.jactr.core.module.procedural.map.instance.IInstaniationMap;
import org.jactr.core.production.IProduction;
/**
* basic RETE-equse map interface
* @author harrison
*
*/
public interface IInstantiationMapTemplate<T>
{
public T getRoot();
/**
*
* @param production
* @return true if this map is accepting the production
*/
public boolean add(IProduction production);
public void remove(IProduction production);
public int getSize();
public Set<IProduction> get(Set<IProduction> container);
public IInstaniationMap<T> instantiate(Object... params);
}