Class ExclusiveStatement
java.lang.Object
org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
org.eclipse.rdf4j.query.algebra.StatementPattern
org.eclipse.rdf4j.federated.algebra.FedXStatementPattern
org.eclipse.rdf4j.federated.algebra.ExclusiveStatement
- All Implemented Interfaces:
Serializable, Cloneable, BoundJoinTupleExpr, ExclusiveTupleExpr, FedXTupleExpr, FilterTuple, QueryRef, StatementTupleExpr, VariableExpr, QueryModelNode, TupleExpr, VariableScopeChange
Represents a StatementPattern that can only produce results at a single endpoint, the owner.
- Author:
- Andreas Schwarte
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class StatementPattern
StatementPattern.ScopeModifier and TypeClassDescriptionstatic enumIndicates the scope of the statement pattern. -
Field Summary
Fields inherited from class FedXStatementPattern
boundFilters, filterExpr, freeVars, id, queryInfo, statementSources, upperLimitModifier and TypeFieldDescriptionprotected QueryBindingSetprotected FilterValueExprprotected final Stringprotected final QueryInfoprotected final List<StatementSource> protected long -
Constructor Summary
ConstructorsConstructorDescriptionExclusiveStatement(StatementPattern node, StatementSource owner, QueryInfo queryInfo) -
Method Summary
Modifier and TypeMethodDescriptionevaluate(BindingSet bindings) Evaluate this expression using the provided bindingsgetOwner()Methods inherited from class FedXStatementPattern
addBoundFilter, addFilterExpr, getBoundFilters, getFilterExpr, getFreeVarCount, getFreeVars, getId, getQueryInfo, getSourceCount, getStatementSources, getUpperLimit, hasFilter, hasFreeVarsFor, initFreeVars, setUpperLimit, visit, visitChildrenModifier and TypeMethodDescriptionvoidaddBoundFilter(String varName, Value value) register a filter that can be directly expressed as a binding, e.g.voidaddFilterExpr(FilterExpr expr) register a new filter expression.Returns bound filter bindings, that need to be added as additional bindings to the final resultintgetId()Retrieve the attached query information of the tuple expressionintlongbooleanbooleanhasFreeVarsFor(BindingSet bindings) returns true iff this statement has free variables in the presence of the specified binding setprotected voidvoidsetUpperLimit(long upperLimit) Set the upper limit for this statement expression (i.e. applied in the evaluation to individual subqueries of this expr)<X extends Exception>
voidvisit(QueryModelVisitor<X> visitor) Visits this node.<X extends Exception>
voidvisitChildren(QueryModelVisitor<X> visitor) Visits the children of this node.Methods inherited from class StatementPattern
clone, equals, getAssuredBindingNames, getBindingNames, getContextVar, getIndexName, getObjectVar, getOrder, getPredicateVar, getScope, getSignature, getStatementOrder, getSubjectVar, getSupportedOrders, getVarList, getVars, hashCode, replaceChildNode, setIndexName, setOrder, shouldCacheCardinalityModifier and TypeMethodDescriptionclone()Returns a (deep) clone of this query model node.booleanReturns true if this query model node and its children are recursively equal to o and its children.Gets the names of the bindings that are guaranteed to be present in the results produced by this tuple expression.Gets the names of the bindings that are, or can be, returned by this tuple expression when it is evaluated.Returns the context variable, if available.getOrder()getScope()Gets the context scope for the statement pattern.Default implementation ofQueryModelNode.getSignature()that prints the name of the node's class.getSupportedOrders(AvailableStatementOrder tripleSource) <L extends Collection<Var>>
LgetVars(L varCollection) Adds the variables of this statement pattern to the supplied collection.inthashCode()voidreplaceChildNode(QueryModelNode current, QueryModelNode replacement) Replaces one of the child nodes with a new node.voidsetIndexName(String indexName) voidprotected booleanMethods inherited from class AbstractQueryModelNode
getCardinality, getCostEstimate, getDoubleMetricActual, getDoubleMetricsActual, getHasNextCallCountActual, getHasNextTimeNanosActual, getHasNextTrueCountActual, getJoinLeftBindingsConsumedActual, getJoinRightBindingsConsumedActual, getJoinRightIteratorsCreatedActual, getLongMetricActual, getLongMetricsActual, getNextCallCountActual, getNextTimeNanosActual, getParentNode, getResultSizeActual, getResultSizeEstimate, getSourceRowsFilteredActual, getSourceRowsMatchedActual, getSourceRowsScannedActual, getStringMetricActual, getStringMetricsActual, getTotalTimeNanosActual, isCardinalitySet, isRuntimeTelemetryEnabled, isVariableScopeChange, nullEquals, replaceNodeInList, replaceWith, resetCardinality, setCardinality, setCostEstimate, setDoubleMetricActual, setHasNextCallCountActual, setHasNextTimeNanosActual, setHasNextTrueCountActual, setJoinLeftBindingsConsumedActual, setJoinRightBindingsConsumedActual, setJoinRightIteratorsCreatedActual, setLongMetricActual, setNextCallCountActual, setNextTimeNanosActual, setParentNode, setResultSizeActual, setResultSizeEstimate, setRuntimeTelemetryEnabled, setSourceRowsFilteredActual, setSourceRowsMatchedActual, setSourceRowsScannedActual, setStringMetricActual, setTotalTimeNanosActual, setVariableScopeChange, toStringModifier and TypeMethodDescriptiondoubledoubledoublegetDoubleMetricActual(String metricName) longlonglonglonglonglonglonggetLongMetricActual(String metricName) longlongGets the node's parent.longdoubleReturns the number of tuples that this QueryNode predicts will be outputted.longlonglonggetStringMetricActual(String metricName) longbooleanbooleanbooleanindicates if the node represents a variable scope change.protected booleannullEquals(Object o1, Object o2) protected <T extends QueryModelNode>
booleanreplaceNodeInList(List<T> list, QueryModelNode current, QueryModelNode replacement) voidreplaceWith(QueryModelNode replacement) Default implementation ofQueryModelNode.replaceWith(QueryModelNode)that throws anIllegalArgumentExceptionindicating that current is not a child node of this node.voidvoidsetCardinality(double cardinality) voidsetCostEstimate(double costEstimate) voidsetDoubleMetricActual(String metricName, double metricValue) voidsetHasNextCallCountActual(long hasNextCallCountActual) voidsetHasNextTimeNanosActual(long hasNextTimeNanosActual) voidsetHasNextTrueCountActual(long hasNextTrueCountActual) voidsetJoinLeftBindingsConsumedActual(long joinLeftBindingsConsumedActual) voidsetJoinRightBindingsConsumedActual(long joinRightBindingsConsumedActual) voidsetJoinRightIteratorsCreatedActual(long joinRightIteratorsCreatedActual) voidsetLongMetricActual(String metricName, long metricValue) voidsetNextCallCountActual(long nextCallCountActual) voidsetNextTimeNanosActual(long nextTimeNanosActual) voidsetParentNode(QueryModelNode parent) Sets the node's parent.voidsetResultSizeActual(long resultSizeActual) voidsetResultSizeEstimate(double resultSizeEstimate) voidsetRuntimeTelemetryEnabled(boolean runtimeTelemetryEnabled) voidsetSourceRowsFilteredActual(long sourceRowsFilteredActual) voidsetSourceRowsMatchedActual(long sourceRowsMatchedActual) voidsetSourceRowsScannedActual(long sourceRowsScannedActual) voidsetStringMetricActual(String metricName, String metricValue) voidsetTotalTimeNanosActual(long totalTimeNanosActual) voidsetVariableScopeChange(boolean isVariableScopeChange) Set the value ofVariableScopeChange.isVariableScopeChange()to true or false.toString()Returns an indented print of the node tree, starting from this node.
-
Constructor Details
-
ExclusiveStatement
-
-
Method Details
-
getOwner
- Specified by:
getOwnerin interfaceExclusiveTupleExpr- Returns:
- the owner for this expression
-
evaluate
Description copied from interface:StatementTupleExprEvaluate this expression using the provided bindings- Specified by:
evaluatein interfaceStatementTupleExpr- Parameters:
bindings-- Returns:
- the result iteration
- Throws:
QueryEvaluationException
-