QgsScopedExpressionFunction class
Expression function for use within a QgsExpressionContextScope.
Contents
This differs from a standard QgsExpression::Function in that it requires an implemented clone() method.
Base classes
- class QgsExpressionFunction
- A abstract base class for defining QgsExpression functions.
Constructors, destructors, conversion operators
- QgsScopedExpressionFunction(const QString& fnname, int params, const QString& group, const QString& helpText = QString(), bool usesGeometry = false, const QSet<QString>& referencedColumns = QSet<QString>(), bool lazyEval = false, bool handlesNull = false, bool isContextual = true)
- Create a new QgsScopedExpressionFunction.
-
QgsScopedExpressionFunction(const QString& fnname,
const QgsExpressionFunction::
ParameterList& params, const QString& group, const QString& helpText = QString(), bool usesGeometry = false, const QSet<QString>& referencedColumns = QSet<QString>(), bool lazyEval = false, bool handlesNull = false, bool isContextual = true) - Create a new QgsScopedExpressionFunction using named parameters.
Public functions
- auto clone() const -> QgsScopedExpressionFunction* pure virtual
- Returns a clone of the function.
- auto func(const QVariantList& values, const QgsExpressionContext* context, QgsExpression* parent, const QgsExpressionNodeFunction* node) -> QVariant override
- Returns result of evaluating the function.
- auto isStatic(const QgsExpressionNodeFunction* node, QgsExpression* parent, const QgsExpressionContext* context) const -> bool override
- Will be called during prepare to determine if the function is static.
- auto referencedColumns(const QgsExpressionNodeFunction* node) const -> QSet<QString> override
- Returns a set of field names which are required for this function.
- auto usesGeometry(const QgsExpressionNodeFunction* node) const -> bool override
- Does this function use a geometry object.
Function documentation
QgsScopedExpressionFunction:: QgsScopedExpressionFunction(const QString& fnname,
int params,
const QString& group,
const QString& helpText = QString(),
bool usesGeometry = false,
const QSet<QString>& referencedColumns = QSet<QString>(),
bool lazyEval = false,
bool handlesNull = false,
bool isContextual = true)
Create a new QgsScopedExpressionFunction.
QgsScopedExpressionFunction:: QgsScopedExpressionFunction(const QString& fnname,
const QgsExpressionFunction:: ParameterList& params,
const QString& group,
const QString& helpText = QString(),
bool usesGeometry = false,
const QSet<QString>& referencedColumns = QSet<QString>(),
bool lazyEval = false,
bool handlesNull = false,
bool isContextual = true)
Create a new QgsScopedExpressionFunction using named parameters.
QVariant QgsScopedExpressionFunction:: func(const QVariantList& values,
const QgsExpressionContext* context,
QgsExpression* parent,
const QgsExpressionNodeFunction* node) override
Returns result of evaluating the function.
| Parameters | |
|---|---|
| values | list of values passed to the function |
| context | context expression is being evaluated against |
| parent | parent expression |
| node | expression node |
| Returns | result of function |
bool QgsScopedExpressionFunction:: isStatic(const QgsExpressionNodeFunction* node,
QgsExpression* parent,
const QgsExpressionContext* context) const override
Will be called during prepare to determine if the function is static.
A function is static if it will return the same value for every feature with different attributes and/or geometry.
By default this will return true, if all arguments that have been passed to the function are also static.
QSet<QString> QgsScopedExpressionFunction:: referencedColumns(const QgsExpressionNodeFunction* node) const override
Returns a set of field names which are required for this function.
May contain QgsFeatureRequest::AllAttributes to signal that all attributes are required. If in doubt this will return more fields than strictly required.