Class ReusableGraphQueryResult

  • All Implemented Interfaces:
    AutoCloseable, Iterable<org.eclipse.rdf4j.model.Statement>, org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.model.Statement,​org.eclipse.rdf4j.query.QueryEvaluationException>, org.eclipse.rdf4j.common.iteration.Iteration<org.eclipse.rdf4j.model.Statement,​org.eclipse.rdf4j.query.QueryEvaluationException>, org.eclipse.rdf4j.query.GraphQueryResult, org.eclipse.rdf4j.query.QueryResult<org.eclipse.rdf4j.model.Statement>, ThrowableRecorder

    public class ReusableGraphQueryResult
    extends Object
    implements org.eclipse.rdf4j.query.GraphQueryResult, ThrowableRecorder
    Wrapper for a TupleQueryResult, allowing the result to be replayed. Not thread-safe. The wrapper copies the result data, consuming the original result fully on close().

    Example:

     TupleQueryResult result = tupleQuery.execute();
     ReuseableTupleQueryResult reusable = new ReuseableTupleQueryResult(result);
     while (reusable.hasNext()) {
            reuseable.next();
     }
     reuseable.close();
     GraphQueryResult cached = reuseable.recreateGraphQueryResult();
     while (cached.hasNext()) {
            cached.next();
     }
     cached.close();
    
     
    Since:
    4.0.0
    Author:
    Florian Kleedorfer
    • Constructor Detail

      • ReusableGraphQueryResult

        public ReusableGraphQueryResult​(org.eclipse.rdf4j.query.GraphQueryResult result,
                                        org.eclipse.rdf4j.query.BindingSet queryBindings)
    • Method Detail

      • queryBindingsAreIdentical

        public boolean queryBindingsAreIdentical​(org.eclipse.rdf4j.query.BindingSet candidate)
      • canReuse

        public boolean canReuse()
      • getNamespaces

        public Map<String,​String> getNamespaces()
                                               throws org.eclipse.rdf4j.query.QueryEvaluationException
        Specified by:
        getNamespaces in interface org.eclipse.rdf4j.query.GraphQueryResult
        Throws:
        org.eclipse.rdf4j.query.QueryEvaluationException
      • iterator

        public Iterator<org.eclipse.rdf4j.model.Statement> iterator()
        Specified by:
        iterator in interface Iterable<org.eclipse.rdf4j.model.Statement>
        Specified by:
        iterator in interface org.eclipse.rdf4j.query.QueryResult<org.eclipse.rdf4j.model.Statement>
      • close

        public void close()
                   throws org.eclipse.rdf4j.query.QueryEvaluationException
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.model.Statement,​org.eclipse.rdf4j.query.QueryEvaluationException>
        Throws:
        org.eclipse.rdf4j.query.QueryEvaluationException
      • hasNext

        public boolean hasNext()
                        throws org.eclipse.rdf4j.query.QueryEvaluationException
        Specified by:
        hasNext in interface org.eclipse.rdf4j.common.iteration.Iteration<org.eclipse.rdf4j.model.Statement,​org.eclipse.rdf4j.query.QueryEvaluationException>
        Specified by:
        hasNext in interface org.eclipse.rdf4j.query.QueryResult<org.eclipse.rdf4j.model.Statement>
        Throws:
        org.eclipse.rdf4j.query.QueryEvaluationException
      • next

        public org.eclipse.rdf4j.model.Statement next()
                                               throws org.eclipse.rdf4j.query.QueryEvaluationException
        Specified by:
        next in interface org.eclipse.rdf4j.common.iteration.Iteration<org.eclipse.rdf4j.model.Statement,​org.eclipse.rdf4j.query.QueryEvaluationException>
        Specified by:
        next in interface org.eclipse.rdf4j.query.QueryResult<org.eclipse.rdf4j.model.Statement>
        Throws:
        org.eclipse.rdf4j.query.QueryEvaluationException
      • remove

        public void remove()
                    throws org.eclipse.rdf4j.query.QueryEvaluationException
        Specified by:
        remove in interface org.eclipse.rdf4j.common.iteration.Iteration<org.eclipse.rdf4j.model.Statement,​org.eclipse.rdf4j.query.QueryEvaluationException>
        Throws:
        org.eclipse.rdf4j.query.QueryEvaluationException
      • stream

        public Stream<org.eclipse.rdf4j.model.Statement> stream()
        Specified by:
        stream in interface org.eclipse.rdf4j.common.iteration.CloseableIteration<org.eclipse.rdf4j.model.Statement,​org.eclipse.rdf4j.query.QueryEvaluationException>
        Specified by:
        stream in interface org.eclipse.rdf4j.common.iteration.Iteration<org.eclipse.rdf4j.model.Statement,​org.eclipse.rdf4j.query.QueryEvaluationException>
        Specified by:
        stream in interface org.eclipse.rdf4j.query.QueryResult<org.eclipse.rdf4j.model.Statement>
      • forEach

        public void forEach​(Consumer<? super org.eclipse.rdf4j.model.Statement> action)
        Specified by:
        forEach in interface Iterable<org.eclipse.rdf4j.model.Statement>
      • spliterator

        public Spliterator<org.eclipse.rdf4j.model.Statement> spliterator()
        Specified by:
        spliterator in interface Iterable<org.eclipse.rdf4j.model.Statement>