Class ReusableTupleQueryResult

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

    public class ReusableTupleQueryResult
    extends Object
    implements org.eclipse.rdf4j.query.TupleQueryResult, ThrowableRecorder
    Wrapper for a TupleQueryResult, allowing the result to be replayed. 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();
     TupleQueryResult cached = reuseable.recreateTupleQueryResult();
     while (cached.hasNext()) {
            cached.next();
     }
     cached.close();
    
     
    Since:
    4.0.0
    Author:
    Florian Kleedorfer
    • Constructor Detail

      • ReusableTupleQueryResult

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

      • queryBindingsAreIdentical

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

        public boolean canReuse()
      • getBindingNames

        public List<String> getBindingNames()
                                     throws org.eclipse.rdf4j.query.QueryEvaluationException
        Specified by:
        getBindingNames in interface org.eclipse.rdf4j.query.TupleQueryResult
        Throws:
        org.eclipse.rdf4j.query.QueryEvaluationException
      • iterator

        public Iterator<org.eclipse.rdf4j.query.BindingSet> iterator()
        Specified by:
        iterator in interface Iterable<org.eclipse.rdf4j.query.BindingSet>
        Specified by:
        iterator in interface org.eclipse.rdf4j.query.QueryResult<org.eclipse.rdf4j.query.BindingSet>
      • 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.query.BindingSet,​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.query.BindingSet,​org.eclipse.rdf4j.query.QueryEvaluationException>
        Specified by:
        hasNext in interface org.eclipse.rdf4j.query.QueryResult<org.eclipse.rdf4j.query.BindingSet>
        Throws:
        org.eclipse.rdf4j.query.QueryEvaluationException
      • next

        public org.eclipse.rdf4j.query.BindingSet next()
                                                throws org.eclipse.rdf4j.query.QueryEvaluationException
        Specified by:
        next in interface org.eclipse.rdf4j.common.iteration.Iteration<org.eclipse.rdf4j.query.BindingSet,​org.eclipse.rdf4j.query.QueryEvaluationException>
        Specified by:
        next in interface org.eclipse.rdf4j.query.QueryResult<org.eclipse.rdf4j.query.BindingSet>
        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.query.BindingSet,​org.eclipse.rdf4j.query.QueryEvaluationException>
        Throws:
        org.eclipse.rdf4j.query.QueryEvaluationException
      • stream

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

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

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