QGIS API Documentation
3.8.0-Zanzibar (11aff65)
|
A binary expression operator, which operates on two values. More...
#include <qgsexpressionnodeimpl.h>
Public Types | |
enum | BinaryOperator { boOr, boAnd, boEQ, boNE, boLE, boGE, boLT, boGT, boRegexp, boLike, boNotLike, boILike, boNotILike, boIs, boIsNot, boPlus, boMinus, boMul, boDiv, boIntDiv, boMod, boPow, boConcat } |
list of binary operators More... | |
Public Types inherited from QgsExpressionNode | |
enum | NodeType { ntUnaryOperator, ntBinaryOperator, ntInOperator, ntFunction, ntLiteral, ntColumnRef, ntCondition, ntIndexOperator } |
Known node types. More... | |
Public Member Functions | |
QgsExpressionNodeBinaryOperator (QgsExpressionNodeBinaryOperator::BinaryOperator op, QgsExpressionNode *opLeft, QgsExpressionNode *opRight) | |
Binary combination of the left and the right with op. More... | |
~QgsExpressionNodeBinaryOperator () override | |
QgsExpressionNode * | clone () const override |
Generate a clone of this node. More... | |
QString | dump () const override |
Dump this node into a serialized (part) of an expression. More... | |
QVariant | evalNode (QgsExpression *parent, const QgsExpressionContext *context) override |
Abstract virtual eval method Errors are reported to the parent. More... | |
bool | isStatic (QgsExpression *parent, const QgsExpressionContext *context) const override |
Returns true if this node can be evaluated for a static value. More... | |
bool | leftAssociative () const |
Returns true if the operator is left-associative. More... | |
bool | needsGeometry () const override |
Abstract virtual method which returns if the geometry is required to evaluate this expression. More... | |
QList< const QgsExpressionNode * > | nodes () const override |
Returns a list of all nodes which are used in this expression. More... | |
QgsExpressionNode::NodeType | nodeType () const override |
Gets the type of this node. More... | |
QgsExpressionNodeBinaryOperator::BinaryOperator | op () const |
Returns the binary operator. More... | |
QgsExpressionNode * | opLeft () const |
Returns the node to the left of the operator. More... | |
QgsExpressionNode * | opRight () const |
Returns the node to the right of the operator. More... | |
int | precedence () const |
Returns the precedence index for the operator. More... | |
bool | prepareNode (QgsExpression *parent, const QgsExpressionContext *context) override |
Abstract virtual preparation method Errors are reported to the parent. More... | |
QSet< QString > | referencedColumns () const override |
Abstract virtual method which returns a list of columns required to evaluate this node. More... | |
QSet< QString > | referencedFunctions () const override |
Returns a set of all functions which are used in this expression. More... | |
QSet< QString > | referencedVariables () const override |
Returns a set of all variables which are used in this expression. More... | |
QString | text () const |
Returns a the name of this operator without the operands. More... | |
Public Member Functions inherited from QgsExpressionNode | |
virtual | ~QgsExpressionNode ()=default |
QVariant | eval (QgsExpression *parent, const QgsExpressionContext *context) |
Evaluate this node with the given context and parent. More... | |
bool | prepare (QgsExpression *parent, const QgsExpressionContext *context) |
Prepare this node for evaluation. More... | |
Additional Inherited Members | |
Public Attributes inherited from QgsExpressionNode | |
int | parserFirstColumn = 0 |
First column in the parser this node was found. More... | |
int | parserFirstLine = 0 |
First line in the parser this node was found. More... | |
int | parserLastColumn = 0 |
Last column in the parser this node was found. More... | |
int | parserLastLine = 0 |
Last line in the parser this node was found. More... | |
Protected Member Functions inherited from QgsExpressionNode | |
void | cloneTo (QgsExpressionNode *target) const |
Copies the members of this node to the node provided in target. More... | |
A binary expression operator, which operates on two values.
Definition at line 91 of file qgsexpressionnodeimpl.h.
list of binary operators
Enumerator | |
---|---|
boOr | |
boAnd | |
boEQ | = |
boNE | <> |
boLE | <= |
boGE | >= |
boLT | < |
boGT | > |
boRegexp | |
boLike | |
boNotLike | |
boILike | |
boNotILike | |
boIs | |
boIsNot | |
boPlus | |
boMinus | |
boMul | |
boDiv | |
boIntDiv | |
boMod | |
boPow | |
boConcat |
Definition at line 99 of file qgsexpressionnodeimpl.h.
|
inline |
Binary combination of the left and the right with op.
Definition at line 136 of file qgsexpressionnodeimpl.h.
|
inlineoverride |
Definition at line 141 of file qgsexpressionnodeimpl.h.
|
overridevirtual |
Generate a clone of this node.
Ownership is transferred to the caller.
Implements QgsExpressionNode.
Definition at line 754 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 695 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Abstract virtual eval method Errors are reported to the parent.
Implements QgsExpressionNode.
Definition at line 177 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 761 of file qgsexpressionnodeimpl.cpp.
bool QgsExpressionNodeBinaryOperator::leftAssociative | ( | ) | const |
Returns true
if the operator is left-associative.
Definition at line 659 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 749 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Returns a list of all nodes which are used in this expression.
Implements QgsExpressionNode.
Definition at line 741 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Gets the type of this node.
Implements QgsExpressionNode.
Definition at line 601 of file qgsexpressionnodeimpl.cpp.
|
inline |
Returns the binary operator.
Definition at line 146 of file qgsexpressionnodeimpl.h.
|
inline |
Returns the node to the left of the operator.
Definition at line 152 of file qgsexpressionnodeimpl.h.
|
inline |
Returns the node to the right of the operator.
Definition at line 158 of file qgsexpressionnodeimpl.h.
int QgsExpressionNodeBinaryOperator::precedence | ( | ) | const |
Returns the precedence index for the operator.
Higher values have higher precedence.
Definition at line 613 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Abstract virtual preparation method Errors are reported to the parent.
Implements QgsExpressionNode.
Definition at line 606 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 726 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Returns a set of all functions which are used in this expression.
Implements QgsExpressionNode.
Definition at line 736 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Returns a set of all variables which are used in this expression.
Implements QgsExpressionNode.
Definition at line 731 of file qgsexpressionnodeimpl.cpp.
QString QgsExpressionNodeBinaryOperator::text | ( | ) | const |
Returns a the name of this operator without the operands.
I.e. "AND", "OR", ...
Definition at line 1553 of file qgsexpressionnodeimpl.cpp.