mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-26 00:02:08 -05:00
257 lines
6.6 KiB
Plaintext
257 lines
6.6 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/expression/qgsexpressionnode.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class QgsExpressionNode /Abstract/
|
|
{
|
|
%Docstring
|
|
|
|
Abstract base class for all nodes that can appear in an expression.
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsexpressionnode.h"
|
|
%End
|
|
%ConvertToSubClassCode
|
|
switch ( sipCpp->nodeType() )
|
|
{
|
|
case QgsExpressionNode::ntUnaryOperator:
|
|
sipType = sipType_QgsExpressionNodeUnaryOperator;
|
|
break;
|
|
case QgsExpressionNode::ntBinaryOperator:
|
|
sipType = sipType_QgsExpressionNodeBinaryOperator;
|
|
break;
|
|
case QgsExpressionNode::ntInOperator:
|
|
sipType = sipType_QgsExpressionNodeInOperator;
|
|
break;
|
|
case QgsExpressionNode::ntFunction:
|
|
sipType = sipType_QgsExpressionNodeFunction;
|
|
break;
|
|
case QgsExpressionNode::ntLiteral:
|
|
sipType = sipType_QgsExpressionNodeLiteral;
|
|
break;
|
|
case QgsExpressionNode::ntColumnRef:
|
|
sipType = sipType_QgsExpressionNodeColumnRef;
|
|
break;
|
|
case QgsExpressionNode::ntCondition:
|
|
sipType = sipType_QgsExpressionNodeCondition;
|
|
break;
|
|
default:
|
|
sipType = 0;
|
|
break;
|
|
}
|
|
%End
|
|
public:
|
|
|
|
enum NodeType
|
|
{
|
|
ntUnaryOperator,
|
|
ntBinaryOperator,
|
|
ntInOperator,
|
|
ntFunction,
|
|
ntLiteral,
|
|
ntColumnRef,
|
|
ntCondition
|
|
};
|
|
|
|
|
|
struct NamedNode
|
|
{
|
|
public:
|
|
|
|
NamedNode( const QString &name, QgsExpressionNode *node );
|
|
%Docstring
|
|
Constructor for NamedNode
|
|
|
|
:param name: node name
|
|
:param node: node
|
|
%End
|
|
|
|
QString name;
|
|
|
|
QgsExpressionNode *node;
|
|
};
|
|
|
|
class NodeList
|
|
{
|
|
%Docstring
|
|
A list of expression nodes.
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsexpressionnode.h"
|
|
%End
|
|
public:
|
|
virtual ~NodeList();
|
|
void append( QgsExpressionNode *node /Transfer/ );
|
|
%Docstring
|
|
Takes ownership of the provided node
|
|
%End
|
|
|
|
void append( QgsExpressionNode::NamedNode *node /Transfer/ );
|
|
%Docstring
|
|
Adds a named node. Takes ownership of the provided node.
|
|
|
|
.. versionadded:: 2.16
|
|
%End
|
|
|
|
int count() const;
|
|
%Docstring
|
|
Returns the number of nodes in the list.
|
|
%End
|
|
|
|
bool hasNamedNodes() const;
|
|
%Docstring
|
|
Returns true if list contains any named nodes
|
|
|
|
.. versionadded:: 2.16
|
|
%End
|
|
|
|
QList<QgsExpressionNode *> list();
|
|
%Docstring
|
|
Get a list of all the nodes.
|
|
%End
|
|
|
|
QgsExpressionNode *at( int i );
|
|
%Docstring
|
|
Get the node at position i in the list.
|
|
|
|
.. versionadded:: 3.0
|
|
%End
|
|
|
|
QStringList names() const;
|
|
%Docstring
|
|
Returns a list of names for nodes. Unnamed nodes will be indicated by an empty string in the list.
|
|
|
|
.. versionadded:: 2.16
|
|
%End
|
|
|
|
QgsExpressionNode::NodeList *clone() const /Factory/;
|
|
%Docstring
|
|
Creates a deep copy of this list. Ownership is transferred to the caller
|
|
%End
|
|
|
|
virtual QString dump() const;
|
|
%Docstring
|
|
Returns a string dump of the expression node.
|
|
%End
|
|
|
|
public:
|
|
};
|
|
|
|
virtual ~QgsExpressionNode();
|
|
|
|
virtual QgsExpressionNode::NodeType nodeType() const = 0;
|
|
%Docstring
|
|
Get the type of this node.
|
|
|
|
:return: The type of this node
|
|
%End
|
|
|
|
virtual QString dump() const = 0;
|
|
%Docstring
|
|
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.
|
|
%End
|
|
|
|
QVariant eval( QgsExpression *parent, const QgsExpressionContext *context );
|
|
%Docstring
|
|
Evaluate this node with the given context and parent.
|
|
This will return a cached value if it has been determined to be static
|
|
during the prepare() execution.
|
|
|
|
.. versionadded:: 2.12
|
|
%End
|
|
|
|
virtual QgsExpressionNode *clone() const = 0;
|
|
%Docstring
|
|
Generate a clone of this node.
|
|
Ownership is transferred to the caller.
|
|
|
|
:return: a deep copy of this node.
|
|
%End
|
|
|
|
virtual QSet<QString> referencedColumns() const = 0;
|
|
%Docstring
|
|
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.
|
|
|
|
:return: A list of columns required to evaluate this expression
|
|
%End
|
|
|
|
virtual QSet<QString> referencedVariables() const = 0;
|
|
%Docstring
|
|
Return a set of all variables which are used in this expression.
|
|
%End
|
|
|
|
virtual QSet<QString> referencedFunctions() const = 0;
|
|
%Docstring
|
|
Return a set of all functions which are used in this expression.
|
|
%End
|
|
|
|
virtual bool needsGeometry() const = 0;
|
|
%Docstring
|
|
Abstract virtual method which returns if the geometry is required to evaluate
|
|
this expression.
|
|
|
|
This needs to call `needsGeometry()` recursively on any child nodes.
|
|
|
|
:return: true if a geometry is required to evaluate this expression
|
|
%End
|
|
|
|
virtual bool isStatic( QgsExpression *parent, const QgsExpressionContext *context ) const = 0;
|
|
%Docstring
|
|
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.
|
|
|
|
.. versionadded:: 3.0
|
|
%End
|
|
|
|
bool prepare( QgsExpression *parent, const QgsExpressionContext *context );
|
|
%Docstring
|
|
Prepare this node for evaluation.
|
|
This will check if the node content is static and in this case cache the value.
|
|
If it's not static it will call prepareNode() to allow the node to do initialization
|
|
work like for example resolving a column name to an attribute index.
|
|
|
|
.. versionadded:: 2.12
|
|
%End
|
|
|
|
int parserFirstLine;
|
|
|
|
int parserFirstColumn;
|
|
|
|
int parserLastLine;
|
|
|
|
int parserLastColumn;
|
|
|
|
protected:
|
|
|
|
|
|
};
|
|
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/expression/qgsexpressionnode.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|