QGIS API Documentation
3.6.0-Noosa (5873452)
|
An expression node for expression functions. More...
#include <qgsexpressionnodeimpl.h>
Public Member Functions | |
QgsExpressionNodeFunction (int fnIndex, QgsExpressionNode::NodeList *args) | |
A function node consists of an index of the function in the global function array and a list of arguments that will be passed to it. More... | |
~QgsExpressionNodeFunction () override | |
QgsExpressionNode::NodeList * | args () const |
Returns a list of arguments specified for the function. More... | |
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... | |
int | fnIndex () const |
Returns the index of the node's function. More... | |
bool | isStatic (QgsExpression *parent, const QgsExpressionContext *context) const override |
Returns true if this node can be evaluated for a static value. 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... | |
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... | |
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... | |
Static Public Member Functions | |
static bool | validateParams (int fnIndex, QgsExpressionNode::NodeList *args, QString &error) |
Tests whether the provided argument list is valid for the matching function. More... | |
Additional Inherited Members | |
Public Types inherited from QgsExpressionNode | |
enum | NodeType { ntUnaryOperator, ntBinaryOperator, ntInOperator, ntFunction, ntLiteral, ntColumnRef, ntCondition, ntIndexOperator } |
Known node types. More... | |
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... | |
An expression node for expression functions.
Definition at line 316 of file qgsexpressionnodeimpl.h.
QgsExpressionNodeFunction::QgsExpressionNodeFunction | ( | int | fnIndex, |
QgsExpressionNode::NodeList * | args | ||
) |
A function node consists of an index of the function in the global function array and a list of arguments that will be passed to it.
Definition at line 882 of file qgsexpressionnodeimpl.cpp.
|
override |
Definition at line 922 of file qgsexpressionnodeimpl.cpp.
|
inline |
Returns a list of arguments specified for the function.
Definition at line 336 of file qgsexpressionnodeimpl.h.
|
overridevirtual |
Generate a clone of this node.
Ownership is transferred to the caller.
Implements QgsExpressionNode.
Definition at line 1054 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 948 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Abstract virtual eval method Errors are reported to the parent.
Implements QgsExpressionNode.
Definition at line 870 of file qgsexpressionnodeimpl.cpp.
|
inline |
Returns the index of the node's function.
Definition at line 331 of file qgsexpressionnodeimpl.h.
|
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 1061 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.
Implements QgsExpressionNode.
Definition at line 1042 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Returns a list of all nodes which are used in this expression.
Implements QgsExpressionNode.
Definition at line 1027 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Gets the type of this node.
Implements QgsExpressionNode.
Definition at line 927 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Abstract virtual preparation method Errors are reported to the parent.
Implements QgsExpressionNode.
Definition at line 932 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 957 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Returns a set of all functions which are used in this expression.
Implements QgsExpressionNode.
Definition at line 1010 of file qgsexpressionnodeimpl.cpp.
|
overridevirtual |
Returns a set of all variables which are used in this expression.
Implements QgsExpressionNode.
Definition at line 980 of file qgsexpressionnodeimpl.cpp.
|
static |
Tests whether the provided argument list is valid for the matching function.
Definition at line 1066 of file qgsexpressionnodeimpl.cpp.