Class ExclusiveGroup
java.lang.Object
org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
org.eclipse.rdf4j.federated.algebra.ExclusiveGroup
- All Implemented Interfaces:
Serializable,Cloneable,ExclusiveTupleExpr,FedXTupleExpr,FilterTuple,QueryRef,StatementTupleExpr,VariableExpr,QueryModelNode,TupleExpr,VariableScopeChange
public class ExclusiveGroup
extends AbstractQueryModelNode
implements StatementTupleExpr, FilterTuple, ExclusiveTupleExpr
Represents a group of
ExclusiveTupleExpr that can only produce results at a single endpoint, the
StatementSource.- Author:
- Andreas Schwarte
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected QueryBindingSetprotected FilterValueExprprotected final Stringprotected final List<ExclusiveTupleExpr>protected Endpointprotected final StatementSourceprotected final QueryInfo -
Constructor Summary
ConstructorsConstructorDescriptionExclusiveGroup(Collection<? extends ExclusiveTupleExpr> ownedNodes, StatementSource owner, QueryInfo queryInfo) -
Method Summary
Modifier 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.clone()Returns a (deep) clone of this query model node.evaluate(BindingSet bindings) Evaluate this expression using the provided bindingsGets 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 bound filter bindings, that need to be added as additional bindings to the final resultintgetId()getOrder()getOwner()Retrieve the attached query information of the tuple expressiongetSupportedOrders(AvailableStatementOrder tripleSource) booleanbooleanhasFreeVarsFor(BindingSet bindings) returns true iff this statement has free variables in the presence of the specified binding setprotected voidinit()Initialize free variablesvoidreplaceChildNode(QueryModelNode current, QueryModelNode replacement) Replaces one of the child nodes with a new node.void<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 org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
getCardinality, getCostEstimate, getParentNode, getResultSizeActual, getResultSizeEstimate, getSignature, getTotalTimeNanosActual, isCardinalitySet, isVariableScopeChange, nullEquals, replaceNodeInList, replaceWith, resetCardinality, setCardinality, setCostEstimate, setParentNode, setResultSizeActual, setResultSizeEstimate, setTotalTimeNanosActual, setVariableScopeChange, shouldCacheCardinality, toStringMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.rdf4j.query.algebra.QueryModelNode
equals, getCostEstimate, getParentNode, getResultSizeActual, getResultSizeEstimate, getSignature, getTotalTimeNanosActual, replaceWith, setCostEstimate, setParentNode, setResultSizeActual, setResultSizeEstimate, setTotalTimeNanosActual, toString
-
Field Details
-
owned
-
owner
-
freeVars
-
id
-
queryInfo
-
filterExpr
-
boundFilters
-
ownedEndpoint
-
-
Constructor Details
-
ExclusiveGroup
public ExclusiveGroup(Collection<? extends ExclusiveTupleExpr> ownedNodes, StatementSource owner, QueryInfo queryInfo)
-
-
Method Details
-
init
protected void init()Initialize free variables -
visitChildren
Description copied from interface:QueryModelNodeVisits the children of this node. The node callsQueryModelNode.visit(QueryModelVisitor)on all of its child nodes.- Specified by:
visitChildrenin interfaceQueryModelNode- Throws:
X extends Exception
-
replaceChildNode
Description copied from interface:QueryModelNodeReplaces one of the child nodes with a new node.- Specified by:
replaceChildNodein interfaceQueryModelNode- Parameters:
current- The current child node.replacement- The new child node.
-
visit
Description copied from interface:QueryModelNodeVisits this node. The node reports itself to the visitor with the proper runtime type.- Specified by:
visitin interfaceQueryModelNode- Throws:
X extends Exception
-
getAssuredBindingNames
Description copied from interface:TupleExprGets the names of the bindings that are guaranteed to be present in the results produced by this tuple expression.- Specified by:
getAssuredBindingNamesin interfaceTupleExpr- Returns:
- A set of binding names.
-
getBindingNames
Description copied from interface:TupleExprGets the names of the bindings that are, or can be, returned by this tuple expression when it is evaluated.- Specified by:
getBindingNamesin interfaceTupleExpr- Returns:
- A set of binding names.
-
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 classAbstractQueryModelNode- Returns:
- A deep clone of this query model node.
-
getOwner
- Specified by:
getOwnerin interfaceExclusiveTupleExpr- Returns:
- the owner for this expression
-
getOwnedEndpoint
-
getExclusiveExpressions
-
getFreeVarCount
public int getFreeVarCount()- Specified by:
getFreeVarCountin interfaceFedXTupleExpr- Returns:
- the number of free (i.e. unbound) variables in this expression
-
getFreeVars
- Specified by:
getFreeVarsin interfaceFilterTuple- Specified by:
getFreeVarsin interfaceVariableExpr- Returns:
- a list of free (i.e. unbound) variables in this expression
-
getId
- Specified by:
getIdin interfaceStatementTupleExpr- Returns:
- the id of this expr
-
getStatementSources
- Specified by:
getStatementSourcesin interfaceStatementTupleExpr- Returns:
- a list of sources that are relevant for evaluation of this expression
-
hasFreeVarsFor
Description copied from interface:StatementTupleExprreturns true iff this statement has free variables in the presence of the specified binding set- Specified by:
hasFreeVarsForin interfaceStatementTupleExpr- Returns:
- whether the statement has free vars
-
evaluate
Description copied from interface:StatementTupleExprEvaluate this expression using the provided bindings- Specified by:
evaluatein interfaceStatementTupleExpr- Returns:
- the result iteration
- Throws:
QueryEvaluationException
-
addFilterExpr
Description copied from interface:FilterTupleregister a new filter expression. If the expr has already a filter registered, the new expression is added to aConjunctiveFilterExpr.- Specified by:
addFilterExprin interfaceFilterTuple
-
getFilterExpr
- Specified by:
getFilterExprin interfaceFilterTuple- Returns:
- the currently registered filter expressions, usually of type
FilterExprorConjunctiveFilterExpr
-
getBoundFilters
Description copied from interface:FilterTupleReturns bound filter bindings, that need to be added as additional bindings to the final result- Specified by:
getBoundFiltersin interfaceFilterTuple- Returns:
- the bound filters, or
null
-
hasFilter
public boolean hasFilter()- Specified by:
hasFilterin interfaceFilterTuple- Returns:
- true if this expression has a filter to apply
-
addBoundFilter
Description copied from interface:FilterTupleregister a filter that can be directly expressed as a binding, e.g. SELECT * WHERE { ?s p o . FILTER (?s = X) } is equivalent to SELECT * WHERE { X p o . }- Specified by:
addBoundFilterin interfaceFilterTuple
-
getQueryInfo
Description copied from interface:QueryRefRetrieve the attached query information of the tuple expression- Specified by:
getQueryInfoin interfaceQueryRef- Returns:
- the
QueryInfo
-
getSupportedOrders
- Specified by:
getSupportedOrdersin interfaceTupleExpr
-
setOrder
-
getOrder
-