Package org.eclipse.rdf4j.query.algebra
Class AbstractQueryModelNode
- java.lang.Object
-
- org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
-
- All Implemented Interfaces:
Serializable
,Cloneable
,QueryModelNode
,VariableScopeChange
- Direct Known Subclasses:
Add
,ArbitraryLengthPath
,BinaryTupleOperator
,BinaryValueOperator
,BindingSetAssignment
,BNodeGenerator
,Bound
,BoundFiltersNode
,Clear
,ConjunctiveFilterExpr
,Copy
,Create
,DeleteData
,EmptySet
,ExclusiveGroup
,ExtensionElem
,FedXService
,FilterExpr
,FunctionCall
,GroupElem
,HolderNode
,If
,InsertData
,Load
,Modify
,Move
,NAryValueOperator
,NTuple
,OrderElem
,PassThroughTupleExpr
,ProjectionElem
,ProjectionElemList
,SingleSourceQuery
,SingletonSet
,StatementPattern
,StatementSource
,SubQueryValueOperator
,TripleRef
,TupleFunctionCall
,UnaryTupleOperator
,UnaryValueOperator
,ValueConstant
,ValueExprTripleRef
,Var
,ZeroLengthPath
public abstract class AbstractQueryModelNode extends Object implements QueryModelNode, VariableScopeChange
Base implementation ofQueryModelNode
.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description AbstractQueryModelNode()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AbstractQueryModelNode
clone()
Returns a (deep) clone of this query model node.double
getCardinality()
double
getCostEstimate()
QueryModelNode
getParentNode()
Gets the node's parent.long
getResultSizeActual()
double
getResultSizeEstimate()
Returns the number of tuples that this QueryNode predicts will be outputted.String
getSignature()
Default implementation ofQueryModelNode.getSignature()
that prints the name of the node's class.long
getTotalTimeNanosActual()
boolean
isCardinalitySet()
boolean
isVariableScopeChange()
indicates if the node represents a variable scope change.protected boolean
nullEquals(Object o1, Object o2)
protected <T extends QueryModelNode>
booleanreplaceNodeInList(List<T> list, QueryModelNode current, QueryModelNode replacement)
void
replaceWith(QueryModelNode replacement)
Default implementation ofQueryModelNode.replaceWith(QueryModelNode)
that throws anIllegalArgumentException
indicating that current is not a child node of this node.void
resetCardinality()
void
setCardinality(double cardinality)
void
setCostEstimate(double costEstimate)
void
setParentNode(QueryModelNode parent)
Sets the node's parent.void
setResultSizeActual(long resultSizeActual)
void
setResultSizeEstimate(double resultSizeEstimate)
void
setTotalTimeNanosActual(long totalTimeNanosActual)
void
setVariableScopeChange(boolean isVariableScopeChange)
Set the value ofVariableScopeChange.isVariableScopeChange()
to true or false.protected boolean
shouldCacheCardinality()
String
toString()
Returns an indented print of the node tree, starting from this node.-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.rdf4j.query.algebra.QueryModelNode
equals, replaceChildNode, visit, visitChildren
-
-
-
-
Method Detail
-
getParentNode
public QueryModelNode getParentNode()
Description copied from interface:QueryModelNode
Gets the node's parent.- Specified by:
getParentNode
in interfaceQueryModelNode
- Returns:
- The parent node, if any.
-
setParentNode
public void setParentNode(QueryModelNode parent)
Description copied from interface:QueryModelNode
Sets the node's parent.- Specified by:
setParentNode
in interfaceQueryModelNode
- Parameters:
parent
- The parent node for this node.
-
isVariableScopeChange
public boolean isVariableScopeChange()
Description copied from interface:VariableScopeChange
indicates if the node represents a variable scope change.- Specified by:
isVariableScopeChange
in interfaceVariableScopeChange
- Returns:
- true iff the node represents a variable scope change.
-
setVariableScopeChange
public void setVariableScopeChange(boolean isVariableScopeChange)
Description copied from interface:VariableScopeChange
Set the value ofVariableScopeChange.isVariableScopeChange()
to true or false.- Specified by:
setVariableScopeChange
in interfaceVariableScopeChange
-
replaceWith
public void replaceWith(QueryModelNode replacement)
Default implementation ofQueryModelNode.replaceWith(QueryModelNode)
that throws anIllegalArgumentException
indicating that current is not a child node of this node.- Specified by:
replaceWith
in interfaceQueryModelNode
- Parameters:
replacement
- The new node.
-
getSignature
public String getSignature()
Default implementation ofQueryModelNode.getSignature()
that prints the name of the node's class.- Specified by:
getSignature
in interfaceQueryModelNode
- Returns:
- The node's signature, e.g. SLICE (offset=10, limit=10).
-
toString
public String toString()
Description copied from interface:QueryModelNode
Returns an indented print of the node tree, starting from this node.- Specified by:
toString
in interfaceQueryModelNode
- Overrides:
toString
in classObject
-
clone
public AbstractQueryModelNode clone()
Description copied from interface:QueryModelNode
Returns a (deep) clone of this query model node. This method recursively clones the entire node tree, starting from this nodes.- Specified by:
clone
in interfaceQueryModelNode
- Overrides:
clone
in classObject
- Returns:
- A deep clone of this query model node.
-
replaceNodeInList
protected <T extends QueryModelNode> boolean replaceNodeInList(List<T> list, QueryModelNode current, QueryModelNode replacement)
-
getResultSizeEstimate
public double getResultSizeEstimate()
Description copied from interface:QueryModelNode
Returns the number of tuples that this QueryNode predicts will be outputted. For a StatementPattern this would be the estimated cardinality provided by the EvaluationStatistics. For a Join the would be the resulting number of joined tuples.- Specified by:
getResultSizeEstimate
in interfaceQueryModelNode
- Returns:
- rows
-
setResultSizeEstimate
public void setResultSizeEstimate(double resultSizeEstimate)
- Specified by:
setResultSizeEstimate
in interfaceQueryModelNode
-
getResultSizeActual
public long getResultSizeActual()
- Specified by:
getResultSizeActual
in interfaceQueryModelNode
-
setResultSizeActual
public void setResultSizeActual(long resultSizeActual)
- Specified by:
setResultSizeActual
in interfaceQueryModelNode
-
getCostEstimate
public double getCostEstimate()
- Specified by:
getCostEstimate
in interfaceQueryModelNode
-
setCostEstimate
public void setCostEstimate(double costEstimate)
- Specified by:
setCostEstimate
in interfaceQueryModelNode
-
getTotalTimeNanosActual
public long getTotalTimeNanosActual()
- Specified by:
getTotalTimeNanosActual
in interfaceQueryModelNode
-
setTotalTimeNanosActual
public void setTotalTimeNanosActual(long totalTimeNanosActual)
- Specified by:
setTotalTimeNanosActual
in interfaceQueryModelNode
-
getCardinality
@Experimental public double getCardinality()
-
setCardinality
@Experimental public void setCardinality(double cardinality)
-
resetCardinality
@Experimental public void resetCardinality()
-
isCardinalitySet
@Experimental public boolean isCardinalitySet()
-
shouldCacheCardinality
@Experimental protected boolean shouldCacheCardinality()
-
-