Class ExclusiveArbitraryLengthPath
java.lang.Object
org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
org.eclipse.rdf4j.query.algebra.ArbitraryLengthPath
org.eclipse.rdf4j.federated.algebra.ExclusiveArbitraryLengthPath
- All Implemented Interfaces:
Serializable, Cloneable, ExclusiveTupleExpr, ExclusiveTupleExprRenderer, FedXTupleExpr, QueryRef, VariableExpr, QueryModelNode, TupleExpr, VariableScopeChange
public class ExclusiveArbitraryLengthPath
extends ArbitraryLengthPath
implements ExclusiveTupleExprRenderer
An
ArbitraryLengthPath node which can be evaluated at a single node.- Author:
- Andreas Schwarte
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionExclusiveArbitraryLengthPath(ArbitraryLengthPath path, StatementSource owner, QueryInfo queryInfo) -
Method Summary
Modifier and TypeMethodDescriptionclone()Returns a (deep) clone of this query model node.getOwner()Retrieve the attached query information of the tuple expressiontoQueryAlgebra(Set<String> varNames, BindingSet bindings) Returns a SPARQL algebra representation of this expression that can be inserted into a SELECTTupleExprtoQueryString(Set<String> varNames, BindingSet bindings) Returns a SPARQL string representation of this expression that can be inserted into a SELECT query.Methods inherited from class ArbitraryLengthPath
equals, getAssuredBindingNames, getBindingNames, getContextVar, getMinLength, getObjectVar, getOrder, getPathExpression, getScope, getSignature, getSubjectVar, getSupportedOrders, hashCode, replaceChildNode, setContextVar, setMinLength, setObjectVar, setOrder, setPathExpression, setScope, setSubjectVar, visit, visitChildrenModifier and TypeMethodDescriptionbooleanReturns 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.longgetOrder()getScope()Gets the context scope for the arbitrary-length path.Default implementation ofQueryModelNode.getSignature()that prints the name of the node's class.getSupportedOrders(AvailableStatementOrder tripleSource) inthashCode()voidreplaceChildNode(QueryModelNode current, QueryModelNode replacement) Replaces one of the child nodes with a new node.voidsetContextVar(Var context) voidsetMinLength(long minLength) voidsetObjectVar(Var object) voidvoidsetPathExpression(TupleExpr pathExpression) voidsetScope(StatementPattern.Scope scope) Sets the context scope for the arbitrary-length pathvoidsetSubjectVar(Var subject) <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 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, shouldCacheCardinality, 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.protected booleantoString()Returns an indented print of the node tree, starting from this node.Methods inherited from interface FedXTupleExpr
getFreeVarCount
-
Constructor Details
-
ExclusiveArbitraryLengthPath
public ExclusiveArbitraryLengthPath(ArbitraryLengthPath path, StatementSource owner, QueryInfo queryInfo)
-
-
Method Details
-
getOwner
- Specified by:
getOwnerin interfaceExclusiveTupleExpr- Returns:
- the owner for this expression
-
clone
Description copied from interface:QueryModelNodeReturns a (deep) clone of this query model node. This method recursively clones the entire node tree, starting from this nodes.- Specified by:
clonein interfaceQueryModelNode- Specified by:
clonein interfaceTupleExpr- Overrides:
clonein classArbitraryLengthPath- Returns:
- A deep clone of this query model node.
-
toQueryString
Description copied from interface:ExclusiveTupleExprRendererReturns a SPARQL string representation of this expression that can be inserted into a SELECT query.Implementations are required to create a valid query string for this expression where the given bindings are inserted.
- Specified by:
toQueryStringin interfaceExclusiveTupleExprRenderer- Parameters:
varNames- the set of resulting (unbound) variables from this expressionbindings- the optional input bindings- Returns:
- the query string part
-
toQueryAlgebra
Description copied from interface:ExclusiveTupleExprRendererReturns a SPARQL algebra representation of this expression that can be inserted into a SELECTTupleExprImplementations are required to create a new equivalent expression or clone, where any provided input bindings are inserted. The free variable names after insertion need to be added to the provided set.
- Specified by:
toQueryAlgebrain interfaceExclusiveTupleExprRenderer- Parameters:
varNames- the set of resulting (unbound) variables from this expressionbindings- the input bindings that need to be inserted- Returns:
- the algebra expression
-
getFreeVars
- Specified by:
getFreeVarsin interfaceVariableExpr- Returns:
- a list of free (i.e. unbound) variables in this expression
-
getQueryInfo
Description copied from interface:QueryRefRetrieve the attached query information of the tuple expression- Specified by:
getQueryInfoin interfaceQueryRef- Returns:
- the
QueryInfo
-