Class MutableTupleQueryResult

java.lang.Object
org.eclipse.rdf4j.query.impl.MutableTupleQueryResult
All Implemented Interfaces:
AutoCloseable, Cloneable, Iterable<BindingSet>, CloseableIteration<BindingSet,QueryEvaluationException>, Iteration<BindingSet,QueryEvaluationException>, QueryResult<BindingSet>, TupleQueryResult

public class MutableTupleQueryResult extends Object implements TupleQueryResult, Cloneable
An implementation of the TupleQueryResult interface that stores the complete query result in memory. The query results in a MutableTupleQueryResult can be iterated over multiple times and can also be iterated over in reverse order.
Author:
Arjohn Kampman
  • Constructor Details

    • MutableTupleQueryResult

      public MutableTupleQueryResult(Collection<String> bindingNames, BindingSet... bindingSets)
    • MutableTupleQueryResult

      public MutableTupleQueryResult(Collection<String> bindingNames, Collection<? extends BindingSet> bindingSets)
      Creates a query result table with the supplied binding names. The supplied list of binding names is assumed to be constant; care should be taken that the contents of this list doesn't change after supplying it to this solution.
      Parameters:
      bindingNames - The binding names, in order of projection.
    • MutableTupleQueryResult

      @Deprecated(since="4.1.0", forRemoval=true) public MutableTupleQueryResult(Collection<String> bindingNames, Iteration<? extends BindingSet,E> bindingSetIter) throws E
      Deprecated, for removal: This API element is subject to removal in a future version.
      Throws:
      E
    • MutableTupleQueryResult

      public MutableTupleQueryResult(Collection<String> bindingNames, CloseableIteration<? extends BindingSet,E> bindingSetIter) throws E
      Throws:
      E
    • MutableTupleQueryResult

      public MutableTupleQueryResult(TupleQueryResult tqr) throws QueryEvaluationException
      Throws:
      QueryEvaluationException
  • Method Details

    • getBindingNames

      public List<String> getBindingNames()
      Description copied from interface: TupleQueryResult
      Gets the names of the bindings, in order of projection.
      Specified by:
      getBindingNames in interface TupleQueryResult
      Returns:
      The binding names, in order of projection.
    • size

      public int size()
    • get

      public BindingSet get(int index)
    • getIndex

      public int getIndex()
    • setIndex

      public void setIndex(int index)
    • hasNext

      public boolean hasNext()
      Description copied from interface: QueryResult
      Returns true if the query result has more elements. (In other words, returns true if QueryResult.next() would return an element rather than throwing a NoSuchElementException.)
      Specified by:
      hasNext in interface Iteration<BindingSet,QueryEvaluationException>
      Specified by:
      hasNext in interface QueryResult<BindingSet>
      Returns:
      true if the iteration has more elements.
    • next

      public BindingSet next()
      Description copied from interface: QueryResult
      Returns the next element in the query result.
      Specified by:
      next in interface Iteration<BindingSet,QueryEvaluationException>
      Specified by:
      next in interface QueryResult<BindingSet>
      Returns:
      the next element in the query result.
    • hasPrevious

      public boolean hasPrevious()
    • previous

      public BindingSet previous()
    • beforeFirst

      public void beforeFirst()
      Moves the cursor to the start of the query result, just before the first binding set. After calling this method, the result can be iterated over from scratch.
    • afterLast

      public void afterLast()
      Moves the cursor to the end of the query result, just after the last binding set.
    • insert

      public void insert(BindingSet bindingSet)
      Inserts the specified binding set into the list. The binding set is inserted immediately before the next element that would be returned by next(), if any, and after the next element that would be returned by previous(), if any. (If the table contains no binding sets, the new element becomes the sole element on the table.) The new element is inserted before the implicit cursor: a subsequent call to next() would be unaffected, and a subsequent call to previous() would return the new binding set.
      Parameters:
      bindingSet - The binding set to insert.
    • insert

      public void insert(int index, BindingSet bindingSet)
    • append

      public void append(BindingSet bindingSet)
    • set

      public void set(BindingSet bindingSet)
    • set

      public BindingSet set(int index, BindingSet bindingSet)
    • remove

      public void remove()
      Description copied from interface: Iteration
      Removes from the underlying collection the last element returned by the iteration (optional operation). This method can be called only once per call to next.
      Specified by:
      remove in interface Iteration<BindingSet,QueryEvaluationException>
    • remove

      public BindingSet remove(int index)
    • clear

      public void clear()
    • close

      public void close()
      Description copied from interface: CloseableIteration
      Closes this iteration, freeing any resources that it is holding. If the iteration has already been closed then invoking this method has no effect.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface CloseableIteration<BindingSet,QueryEvaluationException>
    • clone

      Overrides:
      clone in class Object
      Throws:
      CloneNotSupportedException