/* Copyright (2006-2012) Schibsted ASA
* This file is part of Possom.
*
* Possom is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Possom is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Possom. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* TestQueryTransformerContextProvider.java
*
* Created on 8. april 2006, 01:49
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package no.sesat.search.query.transform;
import no.sesat.search.datamodel.DataModel;
import no.sesat.search.query.Clause;
import no.sesat.search.query.LeafClause;
import no.sesat.search.query.Query;
import no.sesat.commons.visitor.Visitor;
import no.sesat.search.query.XorClause;
import no.sesat.search.query.token.TokenEvaluationEngine;
import no.sesat.search.query.token.TokenEvaluationEngineImpl;
import no.sesat.search.query.token.TokenEvaluationEngineTestContext;
import no.sesat.search.site.Site;
import no.sesat.search.site.SiteContext;
import no.sesat.search.site.SiteTestCase;
import no.sesat.search.site.config.*;
import javax.xml.parsers.DocumentBuilder;
import java.util.Map;
import java.util.Properties;
/**
*
*/
public final class QueryTransformerTestContext extends SiteTestCase implements QueryTransformer.Context {
private final Query query;
private final Map<Clause, String> transformedTerms;
private final TokenEvaluationEngine tokenEvaluationEngine;
private DataModel dataModel;
/**
* Creates a new instance of TestQueryTransformerContextProvider
*/
public QueryTransformerTestContext(
final Query q,
final Map<Clause, String> t) {
query = q;
transformedTerms = t;
tokenEvaluationEngine = new TokenEvaluationEngineImpl(
new TokenEvaluationEngineTestContext(query.getQueryString()));
}
/**
* Creates a new instance of TestQueryTransformerContextProvider
*/
public QueryTransformerTestContext(
final Query q,
final Map<Clause, String> t,
final TokenEvaluationEngine tokenEvaluationEngine) {
query = q;
transformedTerms = t;
this.tokenEvaluationEngine = tokenEvaluationEngine;
}
/**
* TODO comment me. *
*/
public Map<Clause, String> getTransformedTerms() {
return transformedTerms;
}
/**
* TODO comment me. *
*/
public Site getSite() {
return getTestingSite();
}
/**
* TODO comment me. *
*/
public Query getQuery() {
return query;
}
/**
* TODO comment me. *
*/
public String getTransformedQuery() {
return query.getQueryString();
}
public DataModel getDataModel() {
return dataModel;
}
public PropertiesLoader newPropertiesLoader(
final SiteContext siteCxt,
final String resource,
final Properties properties) {
return FileResourceLoader.newPropertiesLoader(siteCxt, resource, properties);
}
public DocumentLoader newDocumentLoader(
final SiteContext siteCxt,
final String resource,
final DocumentBuilder builder) {
return FileResourceLoader.newDocumentLoader(siteCxt, resource, builder);
}
public BytecodeLoader newBytecodeLoader(SiteContext context, String className, String jar) {
return FileResourceLoader.newBytecodeLoader(context, className, jar);
}
/**
* TODO comment me. *
*/
public TokenEvaluationEngine getTokenEvaluationEngine() {
return tokenEvaluationEngine;
}
public void visitXorClause(Visitor visitor, XorClause clause) {
clause.getFirstClause().accept(visitor);
}
public String getFieldFilter(final LeafClause clause) {
// TODO. Return some thing as AbstractSearchCommand.getFieldFilter
return null;
}
public String escape(String word) {
return word;
}
}