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 class
This is to collect together in operation an aggregate function the name of it.private static class
private class
private static class
private static class
private static class
private class
private class
private static class
private static class
private static class
private class
private static class
private static class
private static class
private static class
private static class
private static class
private static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Predicate
<BindingSet> private final QueryEvaluationStep
private final CollectionFactory
private final QueryEvaluationContext
private final Group
private final BindingSet
private final EvaluationStrategy
private 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) void
Called byAbstractCloseableIteration.close()
when it is called for the first time.boolean
hasNext()
Returns true if the iteration has more elements.private List
<GroupIterator.AggregatePredicateCollectorSupplier<?, ?>> 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.QueryStepEvaluator
precompileArg
(AggregateOperator operator) private boolean
Methods inherited from class org.eclipse.rdf4j.common.iteration.CloseableIteratorIteration
hasIterator, remove, setIterator
Methods inherited from class org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration
close, isClosed
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.eclipse.rdf4j.common.iteration.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:AbstractCloseableIteration
Called 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:
handleClose
in classAbstractCloseableIteration<BindingSet,
QueryEvaluationException> - Throws:
QueryEvaluationException
-
hasNext
Description copied from interface:Iteration
Returns 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:
hasNext
in interfaceIteration<BindingSet,
QueryEvaluationException> - Overrides:
hasNext
in classCloseableIteratorIteration<BindingSet,
QueryEvaluationException> - Returns:
- true if the iteration has more elements.
- Throws:
QueryEvaluationException
-
next
Description copied from interface:Iteration
Returns the next element in the iteration.- Specified by:
next
in interfaceIteration<BindingSet,
QueryEvaluationException> - Overrides:
next
in 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()
-