QGIS API Documentation 3.41.0-Master (fda2aa46e9a)
|
SQL-like BETWEEN and NOT BETWEEN predicates. More...
#include <qgsexpressionnodeimpl.h>
Public Member Functions | |
QgsExpressionNodeBetweenOperator (QgsExpressionNode *node, QgsExpressionNode *nodeLowerBound, QgsExpressionNode *nodeHigherBound, bool negate=false) | |
This node tests if the result of node is between the result of nodeLowerBound and nodeHigherBound nodes. | |
~QgsExpressionNodeBetweenOperator () override | |
QgsExpressionNode * | clone () const override |
Generate a clone of this node. | |
QString | dump () const override |
Dump this node into a serialized (part) of an expression. | |
QVariant | evalNode (QgsExpression *parent, const QgsExpressionContext *context) override |
Abstract virtual eval method Errors are reported to the parent. | |
QgsExpressionNode * | higherBound () const |
Returns the higher bound expression node of the range. | |
bool | isStatic (QgsExpression *parent, const QgsExpressionContext *context) const override |
Returns true if this node can be evaluated for a static value. | |
QgsExpressionNode * | lowerBound () const |
Returns the lower bound expression node of the range. | |
bool | needsGeometry () const override |
Abstract virtual method which returns if the geometry is required to evaluate this expression. | |
bool | negate () const |
Returns true if the predicate is an exclusion test (NOT BETWEEN). | |
QgsExpressionNode * | node () const |
Returns the expression node. | |
QList< const QgsExpressionNode * > | nodes () const override |
Returns a list of all nodes which are used in this expression. | |
QgsExpressionNode::NodeType | nodeType () const override |
Gets the type of this node. | |
bool | prepareNode (QgsExpression *parent, const QgsExpressionContext *context) override |
Abstract virtual preparation method Errors are reported to the parent. | |
QSet< QString > | referencedColumns () const override |
Abstract virtual method which returns a list of columns required to evaluate this node. | |
QSet< QString > | referencedFunctions () const override |
Returns a set of all functions which are used in this expression. | |
QSet< QString > | referencedVariables () const override |
Returns a set of all variables which are used in this expression. | |
Public Member Functions inherited from QgsExpressionNode | |
virtual | ~QgsExpressionNode ()=default |
QVariant | cachedStaticValue () const |
Returns the node's static cached value. | |
const QgsExpressionNode * | effectiveNode () const |
Returns a reference to the simplest node which represents this node, after any compilation optimizations have been applied. | |
QVariant | eval (QgsExpression *parent, const QgsExpressionContext *context) |
Evaluate this node with the given context and parent. | |
bool | hasCachedStaticValue () const |
Returns true if the node can be replaced by a static cached value. | |
bool | prepare (QgsExpression *parent, const QgsExpressionContext *context) |
Prepare this node for evaluation. | |
void | setCachedStaticValue (const QVariant &value) const |
Sets the cached static value for the node. | |
Additional Inherited Members | |
Public Types inherited from QgsExpressionNode | |
enum | NodeType { ntUnaryOperator , ntBinaryOperator , ntInOperator , ntFunction , ntLiteral , ntColumnRef , ntCondition , ntIndexOperator , ntBetweenOperator } |
Known node types. More... | |
Public Attributes inherited from QgsExpressionNode | |
int | parserFirstColumn = 0 |
First column in the parser this node was found. | |
int | parserFirstLine = 0 |
First line in the parser this node was found. | |
int | parserLastColumn = 0 |
Last column in the parser this node was found. | |
int | parserLastLine = 0 |
Last line in the parser this node was found. | |
Protected Member Functions inherited from QgsExpressionNode | |
QgsExpressionNode ()=default | |
QgsExpressionNode (const QgsExpressionNode &other) | |
void | cloneTo (QgsExpressionNode *target) const |
Copies the members of this node to the node provided in target. | |
QgsExpressionNode & | operator= (const QgsExpressionNode &other) |
Protected Attributes inherited from QgsExpressionNode | |
QVariant | mCachedStaticValue |
Contains the static, precalculated value for the node if mHasCachedValue is true . | |
std::unique_ptr< QgsExpressionNode > | mCompiledSimplifiedNode |
Contains a compiled node which represents a simplified version of this node as a result of compilation optimizations. | |
bool | mHasCachedValue = false |
true if the node has a static, precalculated value. | |
SQL-like BETWEEN and NOT BETWEEN predicates.
Definition at line 281 of file qgsexpressionnodeimpl.h.
|
inline |
This node tests if the result of node is between the result of nodeLowerBound and nodeHigherBound nodes.
Optionally it can be inverted with negate which by default is false
.
Definition at line 288 of file qgsexpressionnodeimpl.h.
|
override |
Definition at line 1833 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Generate a clone of this node.
Ownership is transferred to the caller.
Implements QgsExpressionNode.
Definition at line 1956 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Dump this node into a serialized (part) of an expression.
The returned expression does not necessarily literally match the original expression, it's just guaranteed to behave the same way.
Implements QgsExpressionNode.
Definition at line 1908 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Abstract virtual eval method Errors are reported to the parent.
Implements QgsExpressionNode.
Definition at line 1853 of file qgsexpressionnodeimpl.cpp.
QgsExpressionNode * QgsExpressionNodeBetweenOperator::higherBound | ( | ) | const |
Returns the higher bound expression node of the range.
Definition at line 1982 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Returns true
if this node can be evaluated for a static value.
This is used during the prepare() step and in case it returns true
, the value of this node will already be evaluated and the result cached (and therefore not re-evaluated in subsequent calls to eval()). In case this returns true
, prepareNode() will never be called.
Implements QgsExpressionNode.
Definition at line 1963 of file qgsexpressionnodeimpl.cpp.
QgsExpressionNode * QgsExpressionNodeBetweenOperator::lowerBound | ( | ) | const |
Returns the lower bound expression node of the range.
Definition at line 1977 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Abstract virtual method which returns if the geometry is required to evaluate this expression.
This needs to call needsGeometry()
recursively on any child nodes.
true
if a geometry is required to evaluate this expression Implements QgsExpressionNode.
Definition at line 1942 of file qgsexpressionnodeimpl.cpp.
bool QgsExpressionNodeBetweenOperator::negate | ( | ) | const |
Returns true
if the predicate is an exclusion test (NOT BETWEEN).
Definition at line 1987 of file qgsexpressionnodeimpl.cpp.
|
inline |
Returns the expression node.
Definition at line 300 of file qgsexpressionnodeimpl.h.
|
overridevirtual |
Returns a list of all nodes which are used in this expression.
Implements QgsExpressionNode.
Definition at line 1929 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Gets the type of this node.
Implements QgsExpressionNode.
Definition at line 1840 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Abstract virtual preparation method Errors are reported to the parent.
Implements QgsExpressionNode.
Definition at line 1845 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Abstract virtual method which returns a list of columns required to evaluate this node.
When reimplementing this, you need to return any column that is required to evaluate this node and in addition recursively collect all the columns required to evaluate child nodes.
Implements QgsExpressionNode.
Definition at line 1934 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Returns a set of all functions which are used in this expression.
Implements QgsExpressionNode.
Definition at line 1921 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Returns a set of all variables which are used in this expression.
Implements QgsExpressionNode.
Definition at line 1913 of file qgsexpressionnodeimpl.cpp.