package org.ariadne_eu.metadata.query.language;
import org.apache.log4j.Logger;
import org.ariadne_eu.metadata.query.lucene.query.LuceneQLMaker;
import org.ariadne_eu.metadata.query.lucene.query.QueryMakerException;
/**
* Created by ben
* Date: 5-mei-2007
* Time: 17:28:38
* To change this template use File | Settings | File Templates.
*/
public class Plql_LuceneHandler extends Translate {
private static Logger log = Logger.getLogger(Plql_LuceneHandler.class);
public Plql_LuceneHandler(int startQueryLanguage, int endQueryLanguage) {
super(startQueryLanguage, endQueryLanguage);
}
public String translateToQuery(String query, int startResult, int nbResults, int resultsFormat) throws QueryTranslationException {
// if (getStartQueryLanguage() != TranslateLanguage.LUCENE && getStartQueryLanguage() != TranslateLanguage.PLQL0 && getStartQueryLanguage() != TranslateLanguage.PLQL1 && getStartQueryLanguage() != TranslateLanguage.PLQL2)
if ( getStartQueryLanguage() != TranslateLanguage.PLQL0 && getStartQueryLanguage() != TranslateLanguage.PLQL1 && getStartQueryLanguage() != TranslateLanguage.PLQL2)
throw new QueryTranslationException();
try {
return LuceneQLMaker.createQuery(getEunQueryLanguage(), query);
} catch (QueryMakerException e) {
log.error(e);
return null;
}
}
private String getEunQueryLanguage() {
if (getStartQueryLanguage() == TranslateLanguage.PLQL0)
return LuceneQLMaker.PLQL_L0;
if (getStartQueryLanguage() == TranslateLanguage.PLQL1)
return LuceneQLMaker.PLQL_L1;
if (getStartQueryLanguage() == TranslateLanguage.PLQL2)
return LuceneQLMaker.PLQL_L2;
// if (getStartQueryLanguage() == TranslateLanguage.LUCENE)
// return LuceneQLMaker.LuceneQL;
return null;
}
public String translateToCount(String query) throws QueryTranslationException {
return translateToQuery(query, -1, -1, -1);
}
}