Class QueryIterDistinctConditional

java.lang.Object
org.apache.jena.sparql.util.PrintSerializableBase
org.apache.jena.sparql.engine.iterator.QueryIteratorBase
org.apache.jena.sparql.engine.iterator.QueryIter
org.apache.jena.sparql.engine.iterator.QueryIter1
org.aksw.jena_sparql_api.sparql.ext.distinct.QueryIterDistinctConditional
All Implemented Interfaces:
Iterator<org.apache.jena.sparql.engine.binding.Binding>, org.apache.jena.atlas.io.Printable, org.apache.jena.atlas.iterator.IteratorCloseable<org.apache.jena.sparql.engine.binding.Binding>, org.apache.jena.atlas.lib.Closeable, org.apache.jena.sparql.engine.QueryIterator, org.apache.jena.sparql.util.PrintSerializable

public class QueryIterDistinctConditional extends org.apache.jena.sparql.engine.iterator.QueryIter1
A variant of QueryIterDistinct where a list of conditions can be specified when to apply distinct. If a binding does not satisfy any condition is returned (streaming) without causing resource overhead of tracking it. Every condition has its own set of seen bindings. As soon as one condition evaluates to true, the binding is added to that condition's bucket. Further conditions are then not evaluated further (short circuit evaluation).
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    protected class 
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    QueryIterDistinctConditional(org.apache.jena.sparql.engine.QueryIterator qIter, List<org.apache.jena.query.SortCondition> preserveOrder, org.apache.jena.sparql.engine.ExecutionContext execCxt, Collection<org.apache.jena.sparql.expr.ExprList> conditions)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
     
    getBucket(org.apache.jena.sparql.engine.binding.Binding b)
     
    protected boolean
     
    protected org.apache.jena.sparql.engine.binding.Binding
     
    protected void
     

    Methods inherited from class org.apache.jena.sparql.engine.iterator.QueryIter1

    closeIterator, details, getInput, output, requestCancel

    Methods inherited from class org.apache.jena.sparql.engine.iterator.QueryIter

    close, flatMap, getExecContext, getIteratorNumber, makeTracked, map, materialize, materialize, output

    Methods inherited from class org.apache.jena.sparql.engine.iterator.QueryIteratorBase

    cancel, hasNext, isFinished, next, nextBinding, performClose, performRequestCancel, remove

    Methods inherited from class org.apache.jena.sparql.util.PrintSerializableBase

    toString, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface java.util.Iterator

    forEachRemaining

    Methods inherited from interface org.apache.jena.sparql.util.PrintSerializable

    toString

    Methods inherited from interface org.apache.jena.sparql.engine.QueryIterator

    isJoinIdentity
  • Constructor Details

    • QueryIterDistinctConditional

      public QueryIterDistinctConditional(org.apache.jena.sparql.engine.QueryIterator qIter, List<org.apache.jena.query.SortCondition> preserveOrder, org.apache.jena.sparql.engine.ExecutionContext execCxt, Collection<org.apache.jena.sparql.expr.ExprList> conditions)
  • Method Details

    • getBucket

      public QueryIterDistinctConditional.Bucket getBucket(org.apache.jena.sparql.engine.binding.Binding b)
    • hasNextBinding

      protected boolean hasNextBinding()
      Specified by:
      hasNextBinding in class org.apache.jena.sparql.engine.iterator.QueryIteratorBase
    • moveToNextBinding

      protected org.apache.jena.sparql.engine.binding.Binding moveToNextBinding()
      Specified by:
      moveToNextBinding in class org.apache.jena.sparql.engine.iterator.QueryIteratorBase
    • closeSubIterator

      protected void closeSubIterator()
      Specified by:
      closeSubIterator in class org.apache.jena.sparql.engine.iterator.QueryIter1
    • requestSubCancel

      protected void requestSubCancel()
      Specified by:
      requestSubCancel in class org.apache.jena.sparql.engine.iterator.QueryIter1