/**
*
*/
package querqy.rewrite;
import java.util.Map;
import querqy.model.ExpandedQuery;
/**
* If a {@link QueryRewriter} implements this interface, the {@link #rewrite(ExpandedQuery, Map)} method is called
* instead of {@link #rewrite(ExpandedQuery)} in the query rewriting chain. The Map argument can be freely used to
* pass data between rewriters and to the consumer of the rewrite chain.
*
* @author René Kriegler, @renekrie
*
*/
public interface ContextAwareQueryRewriter extends QueryRewriter {
/**
* Name of the context key that acts as a flag to request debug information.
*/
String CONTEXT_KEY_DEBUG_ENABLED = "querqy.debug.rewrite.isdebug";
/**
* The key under which debug information should be collected if CONTEXT_KEY_DEBUG_ENABLED is set.
*/
String CONTEXT_KEY_DEBUG_DATA = "querqy.debug.rewrite.data";
ExpandedQuery rewrite(ExpandedQuery query, Map<String, Object> context);
}