package net.jxta.edutella.provider.datalog; import java.io.InputStreamReader; import java.io.Reader; import java.io.StringReader; import java.net.URL; import net.jxta.edutella.eqm.EQMException; import net.jxta.edutella.eqm.Query; import net.jxta.edutella.eqm.io.QueryParser; /** * Supports import and export of Datalog queries. For query import this class provides its * own native Datalog parser. * * @author Boris Wolf * @version $Revision: 1.1 $ $Date: 2002/03/06 16:12:40 $ */ public class DatalogQueryParser implements QueryParser { public Query read(Reader src) { return read(src, null); } public Query parse(String src) { return read(new StringReader(src), null); } public Query parse(String src, String base) { return read(new StringReader(src), base); } public Query read(URL src) { try { InputStreamReader input = new InputStreamReader(src.openStream()); return read(input, src.toString()); } catch (Exception e) { System.out.println(e.getMessage()); throw new EQMException(e.getMessage()); } } public Query read(Reader src, String base) { try{ AntlrDatalogLexer lexer = new AntlrDatalogLexer(src); AntlrDatalogParser parser = new AntlrDatalogParser(lexer); if ( base == null ) { base = ""; } Query eduquery = parser.query(base); return eduquery; } catch (Exception e){ throw new EQMException(e); } } }