/************************************************************************ * This file has been generated automatically from * * * * src/core/expression/qgsexpressionfunction.h * * * * Do not edit manually ! Edit header and run scripts/sipify.pl again * ************************************************************************/ class QgsExpressionFunction { %Docstring(signature="appended") A abstract base class for defining :py:class:`QgsExpression` functions. %End %TypeHeaderCode #include "qgsexpressionfunction.h" %End public: class Parameter { %Docstring(signature="appended") Represents a single parameter passed to a function. .. versionadded:: 2.16 %End %TypeHeaderCode #include "qgsexpressionfunction.h" %End public: Parameter( const QString &name, bool optional = false, const QVariant &defaultValue = QVariant(), bool isSubExpression = false ); %Docstring Constructor for Parameter. :param name: parameter name, used when named parameter are specified in an expression :param optional: set to ``True`` if parameter should be optional :param defaultValue: default value to use for optional parameters :param isSubExpression: set to ``True`` if this parameter is a sub-expression %End QString name() const; %Docstring Returns the name of the parameter. %End bool optional() const; %Docstring Returns ``True`` if the parameter is optional. %End QVariant defaultValue() const; %Docstring Returns the default value for the parameter. %End bool isSubExpression() const; %Docstring Returns ``True`` if parameter argument is a separate sub-expression, and should not be checked while determining referenced columns for the expression. .. versionadded:: 3.2 %End bool operator==( const QgsExpressionFunction::Parameter &other ) const; }; typedef QList< QgsExpressionFunction::Parameter > ParameterList; QgsExpressionFunction( const QString &fnname, int params, const QString &group, const QString &helpText = QString(), bool lazyEval = false, bool handlesNull = false, bool isContextual = false ); %Docstring Constructor for function which uses unnamed parameters %End QgsExpressionFunction( const QString &fnname, int params, const QStringList &groups, const QString &helpText = QString(), bool lazyEval = false, bool handlesNull = false, bool isContextual = false ); %Docstring Constructor for function which uses unnamed parameters and group list .. versionadded:: 3.0 %End QgsExpressionFunction( const QString &fnname, const QgsExpressionFunction::ParameterList ¶ms, const QString &group, const QString &helpText = QString(), bool lazyEval = false, bool handlesNull = false, bool isContextual = false ); %Docstring Constructor for function which uses named parameter list. .. versionadded:: 2.16 %End QgsExpressionFunction( const QString &fnname, const QgsExpressionFunction::ParameterList ¶ms, const QStringList &groups, const QString &helpText = QString(), bool lazyEval = false, bool handlesNull = false, bool isContextual = false ); %Docstring Constructor for function which uses named parameter list and group list. .. versionadded:: 3.0 %End virtual ~QgsExpressionFunction(); QString name() const; %Docstring The name of the function. %End int params() const; %Docstring The number of parameters this function takes. %End int minParams() const; %Docstring The minimum number of parameters this function takes. %End const QgsExpressionFunction::ParameterList ¶meters() const; %Docstring Returns the list of named parameters for the function, if set. .. versionadded:: 2.16 %End virtual bool usesGeometry( const QgsExpressionNodeFunction *node ) const; %Docstring Does this function use a geometry object. %End virtual QStringList aliases() const; %Docstring Returns a list of possible aliases for the function. These include other permissible names for the function, e.g., deprecated names. :return: list of known aliases .. versionadded:: 2.9 %End bool lazyEval() const; %Docstring ``True`` if this function should use lazy evaluation. Lazy evaluation functions take :py:class:`QgsExpression`.Node objects rather than the node results when called. You can use node->eval(parent, feature) to evaluate the node and return the result Functions are non lazy default and will be given the node return value when called. %End virtual bool isStatic( const QgsExpressionNodeFunction *node, QgsExpression *parent, const QgsExpressionContext *context ) const; %Docstring 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. .. versionadded:: 3.0 %End virtual bool prepare( const QgsExpressionNodeFunction *node, QgsExpression *parent, const QgsExpressionContext *context ) const; %Docstring This will be called during the prepare :py:func:`~QgsExpressionFunction.step` of an expression if it is not static. This can be used by functions to do any preparation steps that might help to speedup the upcoming evaluation. .. versionadded:: 3.0 %End virtual QSet referencedColumns( const QgsExpressionNodeFunction *node ) const; %Docstring Returns a set of field names which are required for this function. May contain :py:class:`QgsFeatureRequest`.AllAttributes to signal that all attributes are required. If in doubt this will return more fields than strictly required. .. versionadded:: 3.0 %End bool isContextual() const; %Docstring Returns whether the function is only available if provided by a :py:class:`QgsExpressionContext` object. .. versionadded:: 2.12 %End virtual bool isDeprecated() const; %Docstring Returns ``True`` if the function is deprecated and should not be presented as a valid option to users in expression builders. .. versionadded:: 3.0 %End QString group() const; %Docstring Returns the first group which the function belongs to. .. note:: consider using :py:func:`~QgsExpressionFunction.groups` instead, as some functions naturally belong in multiple groups %End QStringList groups() const; %Docstring Returns a list of the groups the function belongs to. .. seealso:: :py:func:`group` .. versionadded:: 3.0 %End const QString helpText() const; %Docstring The help text for the function. %End virtual QVariant func( const QVariantList &values, const QgsExpressionContext *context, QgsExpression *parent, const QgsExpressionNodeFunction *node ) = 0; %Docstring Returns result of evaluating the function. :param values: list of values passed to the function :param context: context expression is being evaluated against :param parent: parent expression :param node: expression node :return: result of function %End virtual QVariant run( QgsExpressionNode::NodeList *args, const QgsExpressionContext *context, QgsExpression *parent, const QgsExpressionNodeFunction *node ); %Docstring Evaluates the function, first evaluating all required arguments before passing them to the function's :py:func:`~QgsExpressionFunction.func` method. %End bool operator==( const QgsExpressionFunction &other ) const; virtual bool handlesNull() const; %Docstring Returns ``True`` if the function handles NULL values in arguments by itself, and the default NULL value handling should be skipped. %End protected: static bool allParamsStatic( const QgsExpressionNodeFunction *node, QgsExpression *parent, const QgsExpressionContext *context ); %Docstring This will return ``True`` if all the params for the provided function ``node`` are static within the constraints imposed by the ``context`` within the given ``parent``. This can be used as callback for custom implementations of subclasses. It is the default for implementation for StaticFunction.isStatic. .. versionadded:: 3.0 %End }; /************************************************************************ * This file has been generated automatically from * * * * src/core/expression/qgsexpressionfunction.h * * * * Do not edit manually ! Edit header and run scripts/sipify.pl again * ************************************************************************/