/*
Copyright (C) 2006 David Massart and Chea Sereyvath, European Schoolnet
This library 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 2.1 of the License, or (at your option) any later version.
This library 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 this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
package org.eun.plql ;
import java.io.Reader;
import java.io.StringReader;
import org.eun.plql.layer2.PlqlLayer2Analyzer;
public class PLQL2Translator
{
//private String plqlQuery = "lom.general.identifier.(catalog=isbn and entry=xxxxx)" ;
//private String plqlQuery = "lom.general.(title = \"Design Patterns\" and language = \"en\")" ;
//private String plqlQuery = "lom.general.title = \"Design Patterns\" and lom.educational.(intendedEndUserRole = \"learner\" and typicalAgeRange = \"15-18\")" ;
//private static String plqlQuery = "lom.general.title = \"abc\" not tiger" ;
//private String plqlQuery = "(lom.general.title = \"abc\") and tiger" ;
//private String plqlQuery = "lom.general.title = abc" ;
//private static String plqlQuery = "lom.(general = xxxx and technical = yyyyy)" ;
//private static String plqlQuery = "lom.general.( title.string = \"abc\" and title.string.language = \"fr\" )" ;
//private static String plqlQuery = "lom.geneRal.((titLe = 12) and lanGuage=\"fr\")" ;
//private static String plqlQuery = "lre.typicalAgeRange = 12-13";
//private String plqlQuery = "lom.general.(title = \"java\")" ;
//private String plqlQuery = "lom.general.( (identifier = 123 and catalog = xxx) and ( language = \"fr\" and title = abc ) )" ;
//private static String plqlQuery = "lom.classification.(purpose = discipline and taxon = 195)";
//private static String plqlQuery = "lre.discipline = 195";
//private static String plqlQuery = "lom.general.title exact \"abc\"";
//private static String plqlQuery = "lom.general.identifier.entry = \"14698\" OR lom.general.identifier.entry = \"14698\"" ;
private static String plqlQuery = "lom.lifecycle.contribute.date > 2008-03-19 OR lom.lifecycle.contribute.date = 2008-03-19";
//private static String plqlQuery = "lom.general.title > 25";
//private static String plqlQuery = "lom.general.title >= 25";
//private static String plqlQuery = "lom.general.title < 25";
//private static String plqlQuery = "lom.general.title <= 25";
/*
lre.structure = atomic
lre.status = draft
lre.typicalAgeRange = 12-13
lre.cc = \"by-sa\"
lre.author=\"Author\"
lre.learningResourceType = \"exercise\"
lre.creationDate=2007-04-04
lre.competency = \"top_5 act_3\"
lre.discipline = 195
*/
public static void main(String[] args) throws Exception
{
System.out.println(new PLQL2Translator().transformQueryToLuceneQL(plqlQuery));
}
/**
*
*/
public String transformQueryToLuceneQL(String plqlQuery) {
Reader r = new StringReader( plqlQuery ) ;
PlqlLayer2Analyzer parser = new PlqlLayer2Analyzer( r ) ;
parser.parse() ;
return parser.getQuery();
}
}