Class AGStreamTupleQuery

java.lang.Object
org.eclipse.rdf4j.query.impl.AbstractOperation
org.eclipse.rdf4j.query.impl.AbstractQuery
All Implemented Interfaces:
org.eclipse.rdf4j.query.Operation, org.eclipse.rdf4j.query.Query, org.eclipse.rdf4j.query.TupleQuery

public class AGStreamTupleQuery extends AGTupleQuery implements org.eclipse.rdf4j.query.TupleQuery
Wraps an AGTupleQuery to provide streaming results. The default, TupleQueryResultParser and TupleQueryResultBuilder use SAX to parse and an ArrayList to collect results, so AGTupleQuery.evaluate() does not return until the entire stream is parsed.

AGStreamTupleQuery uses XMLStreamReader, so the result is pulled from the http response stream as methods such as TupleQueryResult.hasNext() are called.

Usage:


 AGTupleQuery query = conn.prepareTupleQuery(QueryLanguage.SPARQL, "SELECT ...");
 query = new AGStreamTupleQuery(query);
 TupleQueryResult results = query.evaluate();
 ...
 
Since:
v4.3
See Also:
  • Constructor Details

    • AGStreamTupleQuery

      public AGStreamTupleQuery(AGTupleQuery query)
      Wraps a query with this object that will stream the response.
      Parameters:
      query - to wrap
  • Method Details

    • evaluate

      public org.eclipse.rdf4j.query.TupleQueryResult evaluate() throws org.eclipse.rdf4j.query.QueryEvaluationException
      Returns a result object that will read from the http response as results are requested, by TupleQueryResult.hasNext(). (Note that TupleQueryResult.next() does not actually do the work if hasNext() is called first.)
      Specified by:
      evaluate in interface org.eclipse.rdf4j.query.TupleQuery
      Overrides:
      evaluate in class AGTupleQuery
      Throws:
      org.eclipse.rdf4j.query.QueryEvaluationException
    • evaluate

      public void evaluate(org.eclipse.rdf4j.query.TupleQueryResultHandler handler) throws org.eclipse.rdf4j.query.QueryEvaluationException, org.eclipse.rdf4j.query.TupleQueryResultHandlerException
      Specified by:
      evaluate in interface org.eclipse.rdf4j.query.TupleQuery
      Overrides:
      evaluate in class AGTupleQuery
      Throws:
      org.eclipse.rdf4j.query.QueryEvaluationException
      org.eclipse.rdf4j.query.TupleQueryResultHandlerException