Quantum GIS API Documentation
1.8
|
A representation of a node in a search tree. More...
#include <qgssearchtreenode.h>
Public Types | |
enum | Type { tOperator = 1, tNumber, tColumnRef, tString, tNodeList } |
defines possible types of node More... | |
enum | Operator { opAND = 1, opOR, opNOT, opPLUS, opMINUS, opMUL, opMOD, opDIV, opPOW, opSQRT, opSIN, opCOS, opTAN, opASIN, opACOS, opATAN, opATAN2, opTOINT, opTOREAL, opTOSTRING, opX, opY, opXAT, opYAT, opLENGTH, opAREA, opPERIMETER, opID, opISNULL, opISNOTNULL, opEQ, opNE, opGT, opLT, opGE, opLE, opRegexp, opLike, opILike, opIN, opNOTIN, opCONCAT, opLOWER, opUPPER, opREPLACE, opREGEXPREPLACE, opSTRLEN, opSUBSTR, opROWNUM } |
possible operators TODO: sync the python bindings More... | |
Public Member Functions | |
QgsSearchTreeNode (Type type) | |
constructors | |
QgsSearchTreeNode (double number) | |
QgsSearchTreeNode (Operator op, QgsSearchTreeNode *left, QgsSearchTreeNode *right) | |
QgsSearchTreeNode (QString text, bool isColumnRef) | |
QgsSearchTreeNode (const QgsSearchTreeNode &node) | |
copy contructor - copies whole tree! | |
~QgsSearchTreeNode () | |
destructor - deletes children nodes (if any) | |
Type | type () const |
returns type of current node | |
Operator | op () const |
node value getters | |
double | number () const |
QString | columnRef () const |
QString | string () const |
void | setOp (Operator op) |
node value setters (type is set also) | |
void | setNumber (double number) |
void | setColumnRef (const QString &str) |
void | setString (const QString &str) |
QgsSearchTreeNode * | Left () |
children | |
QgsSearchTreeNode * | Right () |
void | setLeft (QgsSearchTreeNode *left) |
void | setRight (QgsSearchTreeNode *right) |
QString | makeSearchString () |
returns search string that should be equal to original parsed string | |
bool | checkAgainst (const QgsFieldMap &fields, QgsFeature &f) |
checks whether the node tree is valid against supplied attributes | |
Q_DECL_DEPRECATED bool | checkAgainst (const QgsFieldMap &fields, const QgsAttributeMap &attributes, QgsGeometry *geom=0) |
bool | hasError () |
checks if there were errors during evaluation | |
const QString & | errorMsg () |
returns error message | |
bool | getValue (QgsSearchTreeValue &value, QgsSearchTreeNode *node, const QgsFieldMap &fields, QgsFeature &f) |
wrapper around valueAgainst() | |
Q_DECL_DEPRECATED bool | getValue (QgsSearchTreeValue &value, QgsSearchTreeNode *node, const QgsFieldMap &fields, const QgsAttributeMap &attributes, QgsGeometry *geom=0) |
QStringList | referencedColumns () |
return a list of referenced columns in the tree | |
QList< QgsSearchTreeNode * > | columnRefNodes () |
return a list of all attribute nodes | |
bool | needsGeometry () |
check whether there are any operators that need geometry (for area, length) | |
void | setCurrentRowNumber (int rownum) |
Set current row number within this tree. | |
void | append (QgsSearchTreeNode *) |
append a node to the list | |
void | append (QList< QgsSearchTreeNode * >) |
append nodelist to the list | |
Static Public Member Functions | |
static QString | quotedColumnRef (QString name) |
return quoted column reference (in double quotes) | |
Protected Member Functions | |
QgsSearchTreeValue | valueAgainst (const QgsFieldMap &fields, QgsFeature &f) |
returns scalar value of node | |
Q_DECL_DEPRECATED QgsSearchTreeValue | valueAgainst (const QgsFieldMap &fields, const QgsAttributeMap &attributes, QgsGeometry *geom=0) |
void | stripText () |
strips mText when node is of string type | |
void | stripColRef () |
strip mText when column reference is quoted | |
void | init () |
initialize node's internals | |
Private Attributes | |
Type | mType |
node type | |
Operator | mOp |
data | |
double | mNumber |
QString | mText |
QList< QgsSearchTreeNode * > | mNodeList |
QString | mError |
QgsSearchTreeNode * | mLeft |
children | |
QgsSearchTreeNode * | mRight |
QgsDistanceArea * | mCalc |
For length() and area() functions. |
A representation of a node in a search tree.
node in tree of parsed search string node is terminal (has no children) if it's a number, column ref or string non-terminal is only node with operator - with 1 or 2 children
Definition at line 42 of file qgssearchtreenode.h.
possible operators TODO: sync the python bindings
Definition at line 58 of file qgssearchtreenode.h.
defines possible types of node
Definition at line 47 of file qgssearchtreenode.h.
constructors
Definition at line 33 of file qgssearchtreenode.cpp.
References init(), mLeft, mRight, mType, and tNodeList.
Referenced by QgsSearchTreeNode().
QgsSearchTreeNode::QgsSearchTreeNode | ( | double | number | ) |
QgsSearchTreeNode::QgsSearchTreeNode | ( | Operator | op, |
QgsSearchTreeNode * | left, | ||
QgsSearchTreeNode * | right | ||
) |
QgsSearchTreeNode::QgsSearchTreeNode | ( | QString | text, |
bool | isColumnRef | ||
) |
Definition at line 67 of file qgssearchtreenode.cpp.
References init(), mLeft, mRight, mText, mType, stripColRef(), stripText(), tColumnRef, and tString.
QgsSearchTreeNode::QgsSearchTreeNode | ( | const QgsSearchTreeNode & | node | ) |
void QgsSearchTreeNode::append | ( | QgsSearchTreeNode * | node | ) |
void QgsSearchTreeNode::append | ( | QList< QgsSearchTreeNode * > | nodes | ) |
append nodelist to the list
Definition at line 897 of file qgssearchtreenode.cpp.
References mNodeList.
bool QgsSearchTreeNode::checkAgainst | ( | const QgsFieldMap & | fields, |
QgsFeature & | f | ||
) |
checks whether the node tree is valid against supplied attributes
Definition at line 396 of file qgssearchtreenode.cpp.
References checkAgainst(), QgsSearchTreeValue::compare(), getValue(), QgsSearchTreeValue::isError(), QgsSearchTreeValue::isNull(), QgsSearchTreeValue::isNumeric(), makeSearchString(), mError, mLeft, mNodeList, mOp, mRight, mType, QgsSearchTreeValue::number(), opAND, opEQ, opGE, opGT, opILike, opIN, opISNOTNULL, opISNULL, opLE, opLike, opLT, opNE, opNOT, opNOTIN, opOR, opRegexp, QgsDebugMsgLevel, QgsSearchTreeValue::string(), tNodeList, tOperator, and type().
Referenced by checkAgainst().
bool QgsSearchTreeNode::checkAgainst | ( | const QgsFieldMap & | fields, |
const QgsAttributeMap & | attributes, | ||
QgsGeometry * | geom = 0 |
||
) |
Definition at line 387 of file qgssearchtreenode.cpp.
References checkAgainst(), QgsFeature::setAttributeMap(), and QgsFeature::setGeometry().
QString QgsSearchTreeNode::columnRef | ( | ) | const [inline] |
Definition at line 145 of file qgssearchtreenode.h.
QList< QgsSearchTreeNode * > QgsSearchTreeNode::columnRefNodes | ( | ) |
return a list of all attribute nodes
Definition at line 345 of file qgssearchtreenode.cpp.
References columnRefNodes(), mLeft, mRight, mType, tColumnRef, and tOperator.
Referenced by columnRefNodes(), and referencedColumns().
const QString& QgsSearchTreeNode::errorMsg | ( | ) | [inline] |
returns error message
Definition at line 174 of file qgssearchtreenode.h.
bool QgsSearchTreeNode::getValue | ( | QgsSearchTreeValue & | value, |
QgsSearchTreeNode * | node, | ||
const QgsFieldMap & | fields, | ||
QgsFeature & | f | ||
) |
wrapper around valueAgainst()
Definition at line 555 of file qgssearchtreenode.cpp.
References QgsSearchTreeValue::isError(), mError, QgsSearchTreeValue::number(), QgsSearchTreeValue::string(), and valueAgainst().
Referenced by checkAgainst(), getValue(), and valueAgainst().
bool QgsSearchTreeNode::getValue | ( | QgsSearchTreeValue & | value, |
QgsSearchTreeNode * | node, | ||
const QgsFieldMap & | fields, | ||
const QgsAttributeMap & | attributes, | ||
QgsGeometry * | geom = 0 |
||
) |
Definition at line 542 of file qgssearchtreenode.cpp.
References getValue(), QgsFeature::setAttributeMap(), and QgsFeature::setGeometry().
bool QgsSearchTreeNode::hasError | ( | ) | [inline] |
checks if there were errors during evaluation
Definition at line 171 of file qgssearchtreenode.h.
void QgsSearchTreeNode::init | ( | ) | [protected] |
initialize node's internals
Definition at line 136 of file qgssearchtreenode.cpp.
References mCalc, mNumber, mOp, mType, opAREA, opLENGTH, opPERIMETER, opROWNUM, QgsDistanceArea::setEllipsoid(), QgsDistanceArea::setProjectionsEnabled(), and tOperator.
Referenced by QgsSearchTreeNode().
QgsSearchTreeNode* QgsSearchTreeNode::Left | ( | ) | [inline] |
children
Definition at line 155 of file qgssearchtreenode.h.
QString QgsSearchTreeNode::makeSearchString | ( | ) |
returns search string that should be equal to original parsed string
Definition at line 198 of file qgssearchtreenode.cpp.
References makeSearchString(), mLeft, mNodeList, mNumber, mOp, mRight, mText, mType, number(), opACOS, opAND, opAREA, opASIN, opATAN, opATAN2, opCONCAT, opCOS, opDIV, opEQ, opGE, opGT, opID, opILike, opIN, opISNOTNULL, opISNULL, opLE, opLENGTH, opLike, opLOWER, opLT, opMINUS, opMOD, opMUL, opNE, opNOT, opNOTIN, opOR, opPERIMETER, opPLUS, opPOW, opRegexp, opREGEXPREPLACE, opREPLACE, opROWNUM, opSIN, opSQRT, opSTRLEN, opSUBSTR, opTAN, opTOINT, opTOREAL, opTOSTRING, opUPPER, opX, opXAT, opY, opYAT, tColumnRef, tNodeList, tNumber, tOperator, and tString.
Referenced by checkAgainst(), makeSearchString(), QgsSearchString::setTree(), and valueAgainst().
bool QgsSearchTreeNode::needsGeometry | ( | ) |
check whether there are any operators that need geometry (for area, length)
Definition at line 366 of file qgssearchtreenode.cpp.
References mLeft, mOp, mRight, mType, needsGeometry(), opAREA, opLENGTH, opPERIMETER, opX, opXAT, opY, opYAT, and tOperator.
Referenced by needsGeometry().
double QgsSearchTreeNode::number | ( | ) | const [inline] |
Definition at line 144 of file qgssearchtreenode.h.
Referenced by makeSearchString(), QgsSearchTreeNode(), and valueAgainst().
Operator QgsSearchTreeNode::op | ( | ) | const [inline] |
node value getters
Definition at line 143 of file qgssearchtreenode.h.
Referenced by QgsSearchTreeNode().
QString QgsSearchTreeNode::quotedColumnRef | ( | QString | name | ) | [static] |
return quoted column reference (in double quotes)
Definition at line 192 of file qgssearchtreenode.cpp.
QStringList QgsSearchTreeNode::referencedColumns | ( | ) |
return a list of referenced columns in the tree
Definition at line 332 of file qgssearchtreenode.cpp.
References columnRefNodes().
QgsSearchTreeNode* QgsSearchTreeNode::Right | ( | ) | [inline] |
Definition at line 156 of file qgssearchtreenode.h.
void QgsSearchTreeNode::setColumnRef | ( | const QString & | str | ) | [inline] |
Definition at line 151 of file qgssearchtreenode.h.
void QgsSearchTreeNode::setCurrentRowNumber | ( | int | rownum | ) |
Set current row number within this tree.
This value is stored only in the nodes being $rownum operator - in mNumber
Definition at line 874 of file qgssearchtreenode.cpp.
References mLeft, mNumber, mOp, mRight, mType, opROWNUM, setCurrentRowNumber(), and tOperator.
Referenced by setCurrentRowNumber().
void QgsSearchTreeNode::setLeft | ( | QgsSearchTreeNode * | left | ) | [inline] |
Definition at line 157 of file qgssearchtreenode.h.
void QgsSearchTreeNode::setNumber | ( | double | number | ) | [inline] |
Definition at line 150 of file qgssearchtreenode.h.
void QgsSearchTreeNode::setOp | ( | Operator | op | ) | [inline] |
node value setters (type is set also)
Definition at line 149 of file qgssearchtreenode.h.
void QgsSearchTreeNode::setRight | ( | QgsSearchTreeNode * | right | ) | [inline] |
Definition at line 158 of file qgssearchtreenode.h.
void QgsSearchTreeNode::setString | ( | const QString & | str | ) | [inline] |
Definition at line 152 of file qgssearchtreenode.h.
QString QgsSearchTreeNode::string | ( | ) | const [inline] |
Definition at line 146 of file qgssearchtreenode.h.
void QgsSearchTreeNode::stripColRef | ( | ) | [protected] |
strip mText when column reference is quoted
Definition at line 183 of file qgssearchtreenode.cpp.
References mText.
Referenced by QgsSearchTreeNode().
void QgsSearchTreeNode::stripText | ( | ) | [protected] |
strips mText when node is of string type
Definition at line 156 of file qgssearchtreenode.cpp.
References mText.
Referenced by QgsSearchTreeNode().
Type QgsSearchTreeNode::type | ( | ) | const [inline] |
returns type of current node
Definition at line 140 of file qgssearchtreenode.h.
Referenced by checkAgainst(), and valueAgainst().
QgsSearchTreeValue QgsSearchTreeNode::valueAgainst | ( | const QgsFieldMap & | fields, |
QgsFeature & | f | ||
) | [protected] |
returns scalar value of node
Definition at line 600 of file qgssearchtreenode.cpp.
References QgsGeometry::asPoint(), QgsGeometry::asPolyline(), QgsFeature::attributeMap(), EVAL_STR, QgsFeature::geometry(), getValue(), QgsFeature::id(), QgsSearchTreeValue::isNumeric(), QGis::Line, makeSearchString(), mCalc, QgsDistanceArea::measure(), QgsDistanceArea::measurePerimeter(), mLeft, mNodeList, mNumber, mOp, mRight, mText, mType, number(), QgsSearchTreeValue::number(), opACOS, opAREA, opASIN, opATAN, opATAN2, opCONCAT, opCOS, opDIV, opID, opLENGTH, opLOWER, opMINUS, opMOD, opMUL, opPERIMETER, opPLUS, opPOW, opREGEXPREPLACE, opREPLACE, opROWNUM, opSIN, opSQRT, opSTRLEN, opSUBSTR, opTAN, opTOINT, opTOREAL, opTOSTRING, opUPPER, opX, opXAT, opY, opYAT, QGis::Point, QGis::Polygon, QgsDebugMsgLevel, QgsSearchTreeValue::string(), tColumnRef, tNodeList, tNumber, tOperator, tString, QgsGeometry::type(), type(), QgsPoint::x(), and QgsPoint::y().
Referenced by getValue(), and valueAgainst().
QgsSearchTreeValue QgsSearchTreeNode::valueAgainst | ( | const QgsFieldMap & | fields, |
const QgsAttributeMap & | attributes, | ||
QgsGeometry * | geom = 0 |
||
) | [protected] |
Definition at line 589 of file qgssearchtreenode.cpp.
References QgsFeature::setAttributeMap(), QgsFeature::setGeometry(), and valueAgainst().
QgsDistanceArea* QgsSearchTreeNode::mCalc [private] |
For length() and area() functions.
Definition at line 253 of file qgssearchtreenode.h.
Referenced by init(), valueAgainst(), and ~QgsSearchTreeNode().
QString QgsSearchTreeNode::mError [private] |
Definition at line 246 of file qgssearchtreenode.h.
Referenced by checkAgainst(), and getValue().
QgsSearchTreeNode* QgsSearchTreeNode::mLeft [private] |
children
Definition at line 249 of file qgssearchtreenode.h.
Referenced by checkAgainst(), columnRefNodes(), makeSearchString(), needsGeometry(), QgsSearchTreeNode(), setCurrentRowNumber(), valueAgainst(), and ~QgsSearchTreeNode().
QList<QgsSearchTreeNode *> QgsSearchTreeNode::mNodeList [private] |
Definition at line 244 of file qgssearchtreenode.h.
Referenced by append(), checkAgainst(), makeSearchString(), QgsSearchTreeNode(), valueAgainst(), and ~QgsSearchTreeNode().
double QgsSearchTreeNode::mNumber [private] |
Definition at line 242 of file qgssearchtreenode.h.
Referenced by init(), makeSearchString(), QgsSearchTreeNode(), setCurrentRowNumber(), and valueAgainst().
Operator QgsSearchTreeNode::mOp [private] |
data
Definition at line 241 of file qgssearchtreenode.h.
Referenced by checkAgainst(), init(), makeSearchString(), needsGeometry(), QgsSearchTreeNode(), setCurrentRowNumber(), and valueAgainst().
QgsSearchTreeNode* QgsSearchTreeNode::mRight [private] |
Definition at line 250 of file qgssearchtreenode.h.
Referenced by checkAgainst(), columnRefNodes(), makeSearchString(), needsGeometry(), QgsSearchTreeNode(), setCurrentRowNumber(), valueAgainst(), and ~QgsSearchTreeNode().
QString QgsSearchTreeNode::mText [private] |
Definition at line 243 of file qgssearchtreenode.h.
Referenced by makeSearchString(), QgsSearchTreeNode(), stripColRef(), stripText(), and valueAgainst().
Type QgsSearchTreeNode::mType [private] |
node type
Definition at line 238 of file qgssearchtreenode.h.
Referenced by append(), checkAgainst(), columnRefNodes(), init(), makeSearchString(), needsGeometry(), QgsSearchTreeNode(), setCurrentRowNumber(), and valueAgainst().