package org.neo4j.rdf.sparql; import java.io.InputStream; import java.io.Reader; import java.io.StringReader; import name.levering.ryan.sparql.logic.SPARQLQueryLogic; import name.levering.ryan.sparql.model.Query; import name.levering.ryan.sparql.parser.ParseException; import name.levering.ryan.sparql.parser.SPARQLParser; import org.neo4j.rdf.store.representation.RepresentationStrategy; public class Neo4jSparqlEngine { private static Neo4jLogic NEO4J_LOGIC; public Neo4jSparqlEngine( RepresentationStrategy representationStrategy, MetaModelProxy metaModel ) { // if ( NEO4J_LOGIC != null ) // { // throw new IllegalStateException( "There's already a SPARQL engine" + // " running, unfortunately we only support one SPARQL engine " + // "per JVM at this moment" ); // } NEO4J_LOGIC = new Neo4jLogic( representationStrategy, metaModel ); SPARQLQueryLogic.getInstance().setLogicFactory( NEO4J_LOGIC ); } public Query parse( String query ) throws ParseException { // Don't tell me we have to .close() a StringReader!? return parse( new StringReader( query ) ); } public Query parse( Reader queryReader ) throws ParseException { return SPARQLParser.parse( queryReader ); } public Query parse( InputStream queryStream ) throws ParseException { return SPARQLParser.parse( queryStream ); } }