#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, opDIV, opPOW, opSQRT, opSIN, opCOS, opTAN, opASIN, opACOS, opATAN, opTOINT, opTOREAL, opTOSTRING, opLENGTH, opAREA, opID, opISNULL, opISNOTNULL, opEQ, opNE, opGT, opLT, opGE, opLE, opRegexp, opLike, opILike, opIN, opNOTIN, opCONCAT, opLOWER, opUPPER, opROWNUM } |
possible operators 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 | |
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() | |
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 | |
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. |
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
Definition at line 57 of file qgssearchtreenode.h.
QgsSearchTreeNode::QgsSearchTreeNode | ( | QgsSearchTreeNode::Type | t | ) |
constructors
Definition at line 41 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 75 of file qgssearchtreenode.cpp.
References init(), mLeft, mRight, mText, mType, stripColRef(), stripText(), tColumnRef, and tString.
QgsSearchTreeNode::QgsSearchTreeNode | ( | const QgsSearchTreeNode & | node | ) |
QgsSearchTreeNode::~QgsSearchTreeNode | ( | ) |
Type QgsSearchTreeNode::type | ( | ) | const [inline] |
returns type of current node
Definition at line 126 of file qgssearchtreenode.h.
Referenced by checkAgainst().
Operator QgsSearchTreeNode::op | ( | ) | const [inline] |
double QgsSearchTreeNode::number | ( | ) | const [inline] |
Definition at line 130 of file qgssearchtreenode.h.
QString QgsSearchTreeNode::columnRef | ( | ) | const [inline] |
Definition at line 131 of file qgssearchtreenode.h.
QString QgsSearchTreeNode::string | ( | ) | const [inline] |
Definition at line 132 of file qgssearchtreenode.h.
void QgsSearchTreeNode::setOp | ( | Operator | op | ) | [inline] |
void QgsSearchTreeNode::setNumber | ( | double | number | ) | [inline] |
Definition at line 136 of file qgssearchtreenode.h.
void QgsSearchTreeNode::setColumnRef | ( | const QString & | str | ) | [inline] |
Definition at line 137 of file qgssearchtreenode.h.
void QgsSearchTreeNode::setString | ( | const QString & | str | ) | [inline] |
Definition at line 138 of file qgssearchtreenode.h.
QgsSearchTreeNode* QgsSearchTreeNode::Left | ( | ) | [inline] |
QgsSearchTreeNode* QgsSearchTreeNode::Right | ( | ) | [inline] |
Definition at line 142 of file qgssearchtreenode.h.
void QgsSearchTreeNode::setLeft | ( | QgsSearchTreeNode * | left | ) | [inline] |
Definition at line 143 of file qgssearchtreenode.h.
void QgsSearchTreeNode::setRight | ( | QgsSearchTreeNode * | right | ) | [inline] |
Definition at line 144 of file qgssearchtreenode.h.
QString QgsSearchTreeNode::makeSearchString | ( | ) |
returns search string that should be equal to original parsed string
Definition at line 204 of file qgssearchtreenode.cpp.
References makeSearchString(), mLeft, mNodeList, mNumber, mOp, mRight, mText, mType, opACOS, opAND, opAREA, opASIN, opATAN, opCONCAT, opCOS, opDIV, opEQ, opGE, opGT, opID, opILike, opIN, opISNOTNULL, opISNULL, opLE, opLENGTH, opLike, opLOWER, opLT, opMINUS, opMUL, opNE, opNOT, opNOTIN, opOR, opPLUS, opPOW, opRegexp, opROWNUM, opSIN, opSQRT, opTAN, opTOINT, opTOREAL, opTOSTRING, opUPPER, tColumnRef, tNodeList, tNumber, tOperator, and tString.
Referenced by checkAgainst(), makeSearchString(), QgsSearchString::setTree(), and valueAgainst().
bool QgsSearchTreeNode::checkAgainst | ( | const QgsFieldMap & | fields, | |
QgsFeature & | f | |||
) |
checks whether the node tree is valid against supplied attributes
Definition at line 387 of file qgssearchtreenode.cpp.
References checkAgainst(), QgsSearchTreeValue::compare(), getValue(), QgsSearchTreeValue::isNull(), QgsSearchTreeValue::isNumeric(), makeSearchString(), mError, mLeft, mNodeList, mOp, mRight, mType, 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(), and QgsRuleBasedRendererV2::Rule::isFilterOK().
bool QgsSearchTreeNode::checkAgainst | ( | const QgsFieldMap & | fields, | |
const QgsAttributeMap & | attributes, | |||
QgsGeometry * | geom = 0 | |||
) |
Definition at line 378 of file qgssearchtreenode.cpp.
References checkAgainst(), QgsFeature::setAttributeMap(), and QgsFeature::setGeometry().
bool QgsSearchTreeNode::hasError | ( | ) | [inline] |
const QString& QgsSearchTreeNode::errorMsg | ( | ) | [inline] |
bool QgsSearchTreeNode::getValue | ( | QgsSearchTreeValue & | value, | |
QgsSearchTreeNode * | node, | |||
const QgsFieldMap & | fields, | |||
QgsFeature & | f | |||
) |
wrapper around valueAgainst()
Definition at line 540 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 527 of file qgssearchtreenode.cpp.
References getValue(), QgsFeature::setAttributeMap(), and QgsFeature::setGeometry().
QStringList QgsSearchTreeNode::referencedColumns | ( | ) |
return a list of referenced columns in the tree
Definition at line 325 of file qgssearchtreenode.cpp.
References columnRefNodes().
Referenced by QgsRuleBasedRendererV2::Rule::needsFields().
QList< QgsSearchTreeNode * > QgsSearchTreeNode::columnRefNodes | ( | ) |
return a list of all attribute nodes
Definition at line 338 of file qgssearchtreenode.cpp.
References columnRefNodes(), mLeft, mRight, mType, tColumnRef, and tOperator.
Referenced by columnRefNodes(), and referencedColumns().
bool QgsSearchTreeNode::needsGeometry | ( | ) |
check whether there are any operators that need geometry (for area, length)
Definition at line 359 of file qgssearchtreenode.cpp.
References mLeft, mOp, mRight, mType, needsGeometry(), opAREA, opLENGTH, and tOperator.
Referenced by needsGeometry().
QString QgsSearchTreeNode::quotedColumnRef | ( | QString | name | ) | [static] |
return quoted column reference (in double quotes)
Definition at line 198 of file qgssearchtreenode.cpp.
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 784 of file qgssearchtreenode.cpp.
References mLeft, mNumber, mOp, mRight, mType, opROWNUM, setCurrentRowNumber(), and tOperator.
Referenced by setCurrentRowNumber().
void QgsSearchTreeNode::append | ( | QgsSearchTreeNode * | node | ) |
void QgsSearchTreeNode::append | ( | QList< QgsSearchTreeNode * > | nodes | ) |
append nodelist to the list
Definition at line 807 of file qgssearchtreenode.cpp.
References mNodeList.
QgsSearchTreeValue QgsSearchTreeNode::valueAgainst | ( | const QgsFieldMap & | fields, | |
QgsFeature & | f | |||
) | [protected] |
returns scalar value of node
Definition at line 584 of file qgssearchtreenode.cpp.
References QgsFeature::attributeMap(), EVAL_STR, QgsFeature::geometry(), getValue(), QgsFeature::id(), QgsSearchTreeValue::isNumeric(), QGis::Line, makeSearchString(), mCalc, QgsDistanceArea::measure(), mLeft, mNumber, mOp, mRight, mText, mType, QgsSearchTreeValue::number(), opACOS, opAREA, opASIN, opATAN, opCONCAT, opCOS, opDIV, opID, opLENGTH, opLOWER, opMINUS, opMUL, opPLUS, opPOW, opROWNUM, opSIN, opSQRT, opTAN, opTOINT, opTOREAL, opTOSTRING, opUPPER, QGis::Polygon, QgsDebugMsgLevel, QgsSearchTreeValue::string(), tColumnRef, tNumber, tOperator, tString, and QgsGeometry::type().
Referenced by getValue(), and valueAgainst().
QgsSearchTreeValue QgsSearchTreeNode::valueAgainst | ( | const QgsFieldMap & | fields, | |
const QgsAttributeMap & | attributes, | |||
QgsGeometry * | geom = 0 | |||
) | [protected] |
Definition at line 573 of file qgssearchtreenode.cpp.
References QgsFeature::setAttributeMap(), QgsFeature::setGeometry(), and valueAgainst().
void QgsSearchTreeNode::stripText | ( | ) | [protected] |
strips mText when node is of string type
Definition at line 162 of file qgssearchtreenode.cpp.
References mText.
Referenced by QgsSearchTreeNode().
void QgsSearchTreeNode::stripColRef | ( | ) | [protected] |
strip mText when column reference is quoted
Definition at line 189 of file qgssearchtreenode.cpp.
References mText.
Referenced by QgsSearchTreeNode().
void QgsSearchTreeNode::init | ( | ) | [protected] |
initialize node's internals
Definition at line 142 of file qgssearchtreenode.cpp.
References mCalc, mNumber, mOp, mType, opAREA, opLENGTH, opROWNUM, QgsDistanceArea::setEllipsoid(), QgsDistanceArea::setProjectionsEnabled(), and tOperator.
Referenced by QgsSearchTreeNode().
Type QgsSearchTreeNode::mType [private] |
node type
Definition at line 224 of file qgssearchtreenode.h.
Referenced by append(), checkAgainst(), columnRefNodes(), init(), makeSearchString(), needsGeometry(), QgsSearchTreeNode(), setCurrentRowNumber(), and valueAgainst().
Operator QgsSearchTreeNode::mOp [private] |
data
Definition at line 227 of file qgssearchtreenode.h.
Referenced by checkAgainst(), init(), makeSearchString(), needsGeometry(), QgsSearchTreeNode(), setCurrentRowNumber(), and valueAgainst().
double QgsSearchTreeNode::mNumber [private] |
Definition at line 228 of file qgssearchtreenode.h.
Referenced by init(), makeSearchString(), QgsSearchTreeNode(), setCurrentRowNumber(), and valueAgainst().
QString QgsSearchTreeNode::mText [private] |
Definition at line 229 of file qgssearchtreenode.h.
Referenced by makeSearchString(), QgsSearchTreeNode(), stripColRef(), stripText(), and valueAgainst().
QList<QgsSearchTreeNode *> QgsSearchTreeNode::mNodeList [private] |
Definition at line 230 of file qgssearchtreenode.h.
Referenced by append(), checkAgainst(), makeSearchString(), QgsSearchTreeNode(), and ~QgsSearchTreeNode().
QString QgsSearchTreeNode::mError [private] |
QgsSearchTreeNode* QgsSearchTreeNode::mLeft [private] |
children
Definition at line 235 of file qgssearchtreenode.h.
Referenced by checkAgainst(), columnRefNodes(), makeSearchString(), needsGeometry(), QgsSearchTreeNode(), setCurrentRowNumber(), valueAgainst(), and ~QgsSearchTreeNode().
QgsSearchTreeNode* QgsSearchTreeNode::mRight [private] |
Definition at line 236 of file qgssearchtreenode.h.
Referenced by checkAgainst(), columnRefNodes(), makeSearchString(), needsGeometry(), QgsSearchTreeNode(), setCurrentRowNumber(), valueAgainst(), and ~QgsSearchTreeNode().
QgsDistanceArea* QgsSearchTreeNode::mCalc [private] |
For length() and area() functions.
Definition at line 239 of file qgssearchtreenode.h.
Referenced by init(), valueAgainst(), and ~QgsSearchTreeNode().