Quantum GIS API Documentation  1.8
Defines | Enumerations | Functions | Variables
src/core/qgsexpression.cpp File Reference
#include "qgsexpression.h"
#include <QtDebug>
#include <QDomDocument>
#include <QSettings>
#include <math.h>
#include <limits>
#include "qgsdistancearea.h"
#include "qgsfeature.h"
#include "qgsgeometry.h"
#include "qgslogger.h"
Include dependency graph for qgsexpression.cpp:

Go to the source code of this file.

Defines

#define TVL_True   QVariant(1)
#define TVL_False   QVariant(0)
#define TVL_Unknown   QVariant()
#define ENSURE_NO_EVAL_ERROR   { if (parent->hasEvalError()) return QVariant(); }
#define SET_EVAL_ERROR(x)   { parent->setEvalErrorString(x); return QVariant(); }
#define ENSURE_GEOM_TYPE(f, g, geomtype)

Enumerations

enum  TVL { False, True, Unknown }

Functions

QgsExpression::NodeparseExpression (const QString &str, QString &parserErrorMsg)
static QVariant tvl2variant (TVL v)
bool isIntSafe (const QVariant &v)
bool isDoubleSafe (const QVariant &v)
bool isNull (const QVariant &v)
static QString getStringValue (const QVariant &value, QgsExpression *)
static double getDoubleValue (const QVariant &value, QgsExpression *parent)
static int getIntValue (const QVariant &value, QgsExpression *parent)
static TVL getTVLValue (const QVariant &value, QgsExpression *parent)
static QVariant fcnSqrt (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnSin (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnCos (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnTan (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnAsin (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnAcos (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnAtan (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnAtan2 (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnExp (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnLn (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnLog10 (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnLog (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnToInt (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnToReal (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnToString (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnLower (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnUpper (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnLength (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnReplace (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnRegexpReplace (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnSubstr (const QVariantList &values, QgsFeature *, QgsExpression *parent)
static QVariant fcnRowNumber (const QVariantList &, QgsFeature *, QgsExpression *parent)
static QVariant fcnFeatureId (const QVariantList &, QgsFeature *f, QgsExpression *)
static QVariant fcnX (const QVariantList &, QgsFeature *f, QgsExpression *)
static QVariant fcnY (const QVariantList &, QgsFeature *f, QgsExpression *)
static QVariant pointAt (const QVariantList &values, QgsFeature *f, QgsExpression *parent)
static QVariant fcnXat (const QVariantList &values, QgsFeature *f, QgsExpression *parent)
static QVariant fcnYat (const QVariantList &values, QgsFeature *f, QgsExpression *parent)
static QVariant fcnGeomArea (const QVariantList &, QgsFeature *f, QgsExpression *parent)
static QVariant fcnGeomLength (const QVariantList &, QgsFeature *f, QgsExpression *parent)
static QVariant fcnGeomPerimeter (const QVariantList &, QgsFeature *f, QgsExpression *parent)

Variables

static TVL AND [3][3]
static TVL OR [3][3]
static TVL NOT [3] = { True, False, Unknown }

Define Documentation

#define ENSURE_GEOM_TYPE (   f,
  g,
  geomtype 
)
Value:
if (!f) return QVariant(); \
  QgsGeometry* g = f->geometry(); \
  if (!g || g->type() != geomtype) return QVariant();

Definition at line 328 of file qgsexpression.cpp.

Referenced by fcnGeomArea(), fcnGeomLength(), fcnGeomPerimeter(), fcnX(), fcnY(), and pointAt().

#define ENSURE_NO_EVAL_ERROR   { if (parent->hasEvalError()) return QVariant(); }
#define SET_EVAL_ERROR (   x)    { parent->setEvalErrorString(x); return QVariant(); }

Definition at line 100 of file qgsexpression.cpp.

Referenced by QgsExpression::NodeUnaryOperator::eval().

#define TVL_False   QVariant(0)
#define TVL_True   QVariant(1)
#define TVL_Unknown   QVariant()

Enumeration Type Documentation

enum TVL
Enumerator:
False 
True 
Unknown 

Definition at line 37 of file qgsexpression.cpp.


Function Documentation

static QVariant fcnAcos ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 218 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnAsin ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 213 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnAtan ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 223 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnAtan2 ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 228 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnCos ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 203 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnExp ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 234 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnFeatureId ( const QVariantList &  ,
QgsFeature f,
QgsExpression  
) [static]

Definition at line 322 of file qgsexpression.cpp.

References QgsFeature::id().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnGeomArea ( const QVariantList &  ,
QgsFeature f,
QgsExpression parent 
) [static]
static QVariant fcnGeomLength ( const QVariantList &  ,
QgsFeature f,
QgsExpression parent 
) [static]
static QVariant fcnGeomPerimeter ( const QVariantList &  ,
QgsFeature f,
QgsExpression parent 
) [static]
static QVariant fcnLength ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 283 of file qgsexpression.cpp.

References getStringValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnLn ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 239 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnLog ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 253 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnLog10 ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 246 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnLower ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 273 of file qgsexpression.cpp.

References getStringValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnRegexpReplace ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]
static QVariant fcnReplace ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 288 of file qgsexpression.cpp.

References getStringValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnRowNumber ( const QVariantList &  ,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 317 of file qgsexpression.cpp.

References QgsExpression::currentRowNumber().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnSin ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 198 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnSqrt ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 193 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnSubstr ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 309 of file qgsexpression.cpp.

References getIntValue(), and getStringValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnTan ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 208 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnToInt ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 261 of file qgsexpression.cpp.

References getIntValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnToReal ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 265 of file qgsexpression.cpp.

References getDoubleValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnToString ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 269 of file qgsexpression.cpp.

References getStringValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnUpper ( const QVariantList &  values,
QgsFeature ,
QgsExpression parent 
) [static]

Definition at line 278 of file qgsexpression.cpp.

References getStringValue().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnX ( const QVariantList &  ,
QgsFeature f,
QgsExpression  
) [static]

Definition at line 333 of file qgsexpression.cpp.

References ENSURE_GEOM_TYPE, and QGis::Point.

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnXat ( const QVariantList &  values,
QgsFeature f,
QgsExpression parent 
) [static]

Definition at line 374 of file qgsexpression.cpp.

References pointAt().

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnY ( const QVariantList &  ,
QgsFeature f,
QgsExpression  
) [static]

Definition at line 345 of file qgsexpression.cpp.

References ENSURE_GEOM_TYPE, and QGis::Point.

Referenced by QgsExpression::BuiltinFunctions().

static QVariant fcnYat ( const QVariantList &  values,
QgsFeature f,
QgsExpression parent 
) [static]

Definition at line 382 of file qgsexpression.cpp.

References pointAt().

Referenced by QgsExpression::BuiltinFunctions().

static double getDoubleValue ( const QVariant &  value,
QgsExpression parent 
) [static]
static int getIntValue ( const QVariant &  value,
QgsExpression parent 
) [static]
static QString getStringValue ( const QVariant &  value,
QgsExpression  
) [static]
static TVL getTVLValue ( const QVariant &  value,
QgsExpression parent 
) [static]
bool isDoubleSafe ( const QVariant &  v) [inline]
bool isIntSafe ( const QVariant &  v) [inline]
bool isNull ( const QVariant &  v) [inline]
QgsExpression::Node* parseExpression ( const QString &  str,
QString &  parserErrorMsg 
)
static QVariant pointAt ( const QVariantList &  values,
QgsFeature f,
QgsExpression parent 
) [static]

Definition at line 358 of file qgsexpression.cpp.

References ENSURE_GEOM_TYPE, getIntValue(), QGis::Line, and QgsExpression::setEvalErrorString().

Referenced by fcnXat(), and fcnYat().

static QVariant tvl2variant ( TVL  v) [static]

Variable Documentation

TVL AND[3][3] [static]
Initial value:
{
  
  { False, False,   False },   
  { False, True,    Unknown }, 
  { False, Unknown, Unknown }  
}

Definition at line 44 of file qgsexpression.cpp.

Referenced by QgsExpression::NodeBinaryOperator::eval().

TVL NOT[3] = { True, False, Unknown } [static]

Definition at line 59 of file qgsexpression.cpp.

Referenced by QgsExpression::NodeUnaryOperator::eval().

TVL OR[3][3] [static]
Initial value:
{
  { False,   True, Unknown },  
  { True,    True, True },     
  { Unknown, True, Unknown }   
}

Definition at line 52 of file qgsexpression.cpp.

Referenced by QgsExpression::NodeBinaryOperator::eval().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines