package org.jactr.core.module.procedural.five.learning;
import org.jactr.core.production.request.IRequest;
/*
* default logging
*/
public interface ICompilableContext
{
/**
* return true if the request on the buffer is immediate, in that they will
* complete by the time the production has finished firing (not long duration
* requests like the visual buffer)
*
* @return
*/
public boolean isImmediate(IRequest request);
/**
* returns true if this request to the buffer is deterministic. That is, the
* requested chunktype (or chunk) is what appears in the buffer - no matter
* what (no errors and no transformations).
*
* @return
*/
public boolean isDeterministic(IRequest request);
/**
* subsequent requests may result in a buffer jam (and abort/error)
* @return
*/
public boolean isJammable(IRequest request);
/**
* if the buffer requests/actions can be compiled out entirely (i.e.
* the retrieval buffer)
* @return
*/
public boolean canCompileOut(IRequest request);
}