Class FedXStatementPattern
java.lang.Object
org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
org.eclipse.rdf4j.query.algebra.StatementPattern
org.eclipse.rdf4j.federated.algebra.FedXStatementPattern
- All Implemented Interfaces:
Serializable,Cloneable,BoundJoinTupleExpr,FedXTupleExpr,FilterTuple,QueryRef,StatementTupleExpr,VariableExpr,QueryModelNode,TupleExpr,VariableScopeChange
- Direct Known Subclasses:
ExclusiveStatement,StatementSourcePattern
public abstract class FedXStatementPattern
extends StatementPattern
implements StatementTupleExpr, FilterTuple, BoundJoinTupleExpr
Base class providing all common functionality for FedX StatementPatterns
- Author:
- Andreas Schwarte
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.rdf4j.query.algebra.StatementPattern
StatementPattern.Scope -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected QueryBindingSetprotected FilterValueExprprotected final Stringprotected final QueryInfoprotected final List<StatementSource>protected long -
Constructor Summary
Constructors -
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.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.<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.StatementPattern
clone, equals, getAssuredBindingNames, getBindingNames, getContextVar, getIndexName, getObjectVar, getOrder, getPredicateVar, getScope, getSignature, getStatementOrder, getSubjectVar, getSupportedOrders, getVarList, getVars, hashCode, replaceChildNode, setIndexName, setOrder, shouldCacheCardinalityMethods inherited from class org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
getCardinality, getCostEstimate, getParentNode, getResultSizeActual, getResultSizeEstimate, getTotalTimeNanosActual, isCardinalitySet, isVariableScopeChange, nullEquals, replaceNodeInList, replaceWith, resetCardinality, setCardinality, setCostEstimate, setParentNode, setResultSizeActual, setResultSizeEstimate, setTotalTimeNanosActual, setVariableScopeChange, toStringMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.rdf4j.query.algebra.QueryModelNode
equals, getCostEstimate, getParentNode, getResultSizeActual, getResultSizeEstimate, getSignature, getTotalTimeNanosActual, replaceChildNode, replaceWith, setCostEstimate, setParentNode, setResultSizeActual, setResultSizeEstimate, setTotalTimeNanosActual, toStringMethods inherited from interface org.eclipse.rdf4j.federated.algebra.StatementTupleExpr
evaluateMethods inherited from interface org.eclipse.rdf4j.query.algebra.TupleExpr
clone, getAssuredBindingNames, getBindingNames, getOrder, getSupportedOrders, setOrder
-
Field Details
-
statementSources
-
id
-
queryInfo
-
freeVars
-
filterExpr
-
boundFilters
-
upperLimit
protected long upperLimit
-
-
Constructor Details
-
FedXStatementPattern
-
-
Method Details
-
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- Overrides:
visitChildrenin classStatementPattern- Throws:
X extends Exception
-
visit
Description copied from interface:QueryModelNodeVisits this node. The node reports itself to the visitor with the proper runtime type.- Specified by:
visitin interfaceQueryModelNode- Overrides:
visitin classStatementPattern- Throws:
X extends Exception
-
initFreeVars
protected void initFreeVars() -
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
-
getQueryInfo
Description copied from interface:QueryRefRetrieve the attached query information of the tuple expression- Specified by:
getQueryInfoin interfaceQueryRef- Returns:
- the
QueryInfo
-
getId
- Specified by:
getIdin interfaceStatementTupleExpr- Returns:
- the id of this expr
-
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
-
getStatementSources
- Specified by:
getStatementSourcesin interfaceStatementTupleExpr- Returns:
- a list of sources that are relevant for evaluation of this expression
-
getSourceCount
public int getSourceCount() -
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
-
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
-
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
-
setUpperLimit
public void setUpperLimit(long upperLimit) Set the upper limit for this statement expression (i.e. applied in the evaluation to individual subqueries of this expr)- Parameters:
upperLimit- the upper limit, a negative number means unlimited
-
getUpperLimit
public long getUpperLimit()- Returns:
- the upper limit or a negative number (meaning no LIMIT)
-