Class GroupIterator
java.lang.Object
org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<BindingSet, QueryEvaluationException>
org.eclipse.rdf4j.common.iteration.CloseableIteratorIteration<BindingSet, QueryEvaluationException>
org.eclipse.rdf4j.query.algebra.evaluation.iterator.GroupIterator
- All Implemented Interfaces:
AutoCloseable, CloseableIteration<BindingSet, QueryEvaluationException>, Iteration<BindingSet, QueryEvaluationException>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classThis is to collect together in operation an aggregate function the name of it.private static classprivate classprivate static classprivate static classprivate static classprivate classprivate classprivate static classprivate static classprivate static classprivate classprivate static classprivate static classprivate static classprivate static classprivate static classprivate static classprivate static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Predicate<BindingSet> private final QueryEvaluationStepprivate final CollectionFactoryprivate final QueryEvaluationContextprivate final Groupprivate final BindingSetprivate final EvaluationStrategyprivate final ValueFactory -
Constructor Summary
ConstructorsConstructorDescriptionGroupIterator(EvaluationStrategy strategy, Group group, BindingSet parentBindings, long iterationCacheSyncThreshold, QueryEvaluationContext context) Deprecated.GroupIterator(EvaluationStrategy strategy, Group group, BindingSet parentBindings, long iterationCacheSyncThreshold, QueryEvaluationContext context, ValueFactory vf, CollectionFactory cf) GroupIterator(EvaluationStrategy strategy, Group group, BindingSet parentBindings, QueryEvaluationContext context) -
Method Summary
Modifier and TypeMethodDescriptionprivate Collection<GroupIterator.Entry> buildEntries(List<GroupIterator.AggregatePredicateCollectorSupplier<?, ?>> aggregates) private GroupIterator.AggregatePredicateCollectorSupplier<?, ?> create(GroupElem ge, ValueFactory vf) private Iterator<BindingSet> private List<GroupIterator.Entry> emptySolutionSpecialCase(List<GroupIterator.AggregatePredicateCollectorSupplier<?, ?>> aggregates) voidCalled byAbstractCloseableIteration.close()when it is called for the first time.booleanhasNext()Returns true if the iteration has more elements.private List<GroupIterator.AggregatePredicateCollectorSupplier<?, ?>> private BiConsumer<GroupIterator.Entry, MutableBindingSet> makeBindSolution(List<GroupIterator.AggregatePredicateCollectorSupplier<?, ?>> aggregates) private List<AggregateCollector> makeCollectors(List<GroupIterator.AggregatePredicateCollectorSupplier<?, ?>> aggregates) private BiConsumer<BindingSet, MutableBindingSet> makeSetAValue(List<Function<BindingSet, Value>> getValues, List<BiConsumer<Value, MutableBindingSet>> setBindings, int i) private BiConsumer<BindingSet, MutableBindingSet> makeSetValues(List<Function<BindingSet, Value>> getValues, List<BiConsumer<Value, MutableBindingSet>> setBindings) Build a single method that sets all values without a loop or lookups during evaluation.next()Returns the next element in the iteration.private GroupIterator.QueryStepEvaluatorprecompileArg(AggregateOperator operator) private booleanMethods inherited from class CloseableIteratorIteration
hasIterator, remove, setIteratorMethods inherited from class AbstractCloseableIteration
close, isClosedMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface CloseableIteration
stream
-
Field Details
-
strategy
-
parentBindings
-
group
-
context
-
arguments
-
vf
-
cf
-
ALWAYS_TRUE_BINDING_SET
-
ALWAYS_TRUE_VALUE
-
ALWAYS_TRUE_VALUE_SUPPLIER
-
-
Constructor Details
-
GroupIterator
public GroupIterator(EvaluationStrategy strategy, Group group, BindingSet parentBindings, QueryEvaluationContext context) throws QueryEvaluationException - Throws:
QueryEvaluationException
-
GroupIterator
@Deprecated public GroupIterator(EvaluationStrategy strategy, Group group, BindingSet parentBindings, long iterationCacheSyncThreshold, QueryEvaluationContext context) throws QueryEvaluationException Deprecated.- Throws:
QueryEvaluationException
-
GroupIterator
public GroupIterator(EvaluationStrategy strategy, Group group, BindingSet parentBindings, long iterationCacheSyncThreshold, QueryEvaluationContext context, ValueFactory vf, CollectionFactory cf) throws QueryEvaluationException - Throws:
QueryEvaluationException
-
-
Method Details
-
handleClose
Description copied from class:AbstractCloseableIterationCalled byAbstractCloseableIteration.close()when it is called for the first time. This method is only called once on each iteration. By default, this method does nothing.- Overrides:
handleClosein classAbstractCloseableIteration<BindingSet, QueryEvaluationException>- Throws:
QueryEvaluationException
-
hasNext
Description copied from interface:IterationReturns true if the iteration has more elements. (In other words, returns true ifIteration.next()would return an element rather than throwing a NoSuchElementException.)- Specified by:
hasNextin interfaceIteration<BindingSet, QueryEvaluationException>- Overrides:
hasNextin classCloseableIteratorIteration<BindingSet, QueryEvaluationException>- Returns:
- true if the iteration has more elements.
- Throws:
QueryEvaluationException
-
next
Description copied from interface:IterationReturns the next element in the iteration.- Specified by:
nextin interfaceIteration<BindingSet, QueryEvaluationException>- Overrides:
nextin classCloseableIteratorIteration<BindingSet, QueryEvaluationException>- Returns:
- the next element in the iteration.
- Throws:
QueryEvaluationException
-
createIterator
- Throws:
QueryEvaluationException
-
makeSetValues
private BiConsumer<BindingSet, MutableBindingSet> makeSetValues(List<Function<BindingSet, Value>> getValues, List<BiConsumer<Value, MutableBindingSet>> setBindings) Build a single method that sets all values without a loop or lookups during evaluation.- Parameters:
getValues- the methods to access values in a bindingsetsetBindings- the methods to set values in a bindingset- Returns:
- a BiConsumer that takes the prototype and sets parts into solution as required
-
makeSetAValue
private BiConsumer<BindingSet, MutableBindingSet> makeSetAValue(List<Function<BindingSet, Value>> getValues, List<BiConsumer<Value, MutableBindingSet>> setBindings, int i) -
makeBindSolution
private BiConsumer<GroupIterator.Entry, MutableBindingSet> makeBindSolution(List<GroupIterator.AggregatePredicateCollectorSupplier<?, ?>> aggregates) -
makeAggregates
-
buildEntries
private Collection<GroupIterator.Entry> buildEntries(List<GroupIterator.AggregatePredicateCollectorSupplier<?, ?>> aggregates) throws QueryEvaluationException- Throws:
QueryEvaluationException
-
emptySolutionSpecialCase
private List<GroupIterator.Entry> emptySolutionSpecialCase(List<GroupIterator.AggregatePredicateCollectorSupplier<?, ?>> aggregates) -
makeCollectors
private List<AggregateCollector> makeCollectors(List<GroupIterator.AggregatePredicateCollectorSupplier<?, ?>> aggregates) -
create
private GroupIterator.AggregatePredicateCollectorSupplier<?,?> create(GroupElem ge, ValueFactory vf) throws QueryEvaluationException - Throws:
QueryEvaluationException
-
precompileArg
-
shouldValueComparisonBeStrict
private boolean shouldValueComparisonBeStrict()
-