/**
*
*/
package querqy.rewrite.commonrules.model;
import java.util.Map;
import java.util.Set;
import querqy.model.ExpandedQuery;
import querqy.model.Term;
/**
*
* A single right-hand side clause of a rewrite rule. It represents one of
* possibly many actions that should be taken if the input matches the rule
* condition(s).
*
* @author René Kriegler, @renekrie
*
*/
public interface Instruction {
/**
*
* @param sequence
* @param matchedTerms
* @param startPosition
* @param endPosition
* @param expandedQuery
* @param context
*/
void apply(PositionSequence<Term> sequence, TermMatches termMatches, int startPosition, int endPosition,
ExpandedQuery expandedQuery, Map<String, Object> context);
Set<Term> getGenerableTerms();
}