Quantum GIS API Documentation  1.8
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes
QgsSearchTreeNode Class Reference

A representation of a node in a search tree. More...

#include <qgssearchtreenode.h>

Collaboration diagram for QgsSearchTreeNode:
Collaboration graph
[legend]

List of all members.

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)
QgsSearchTreeNodeLeft ()
 children
QgsSearchTreeNodeRight ()
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
QgsSearchTreeNodemLeft
 children
QgsSearchTreeNodemRight
QgsDistanceAreamCalc
 For length() and area() functions.

Detailed Description

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.


Member Enumeration Documentation

possible operators TODO: sync the python bindings

Enumerator:
opAND 
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 

Definition at line 58 of file qgssearchtreenode.h.

defines possible types of node

Enumerator:
tOperator 
tNumber 
tColumnRef 
tString 
tNodeList 

Definition at line 47 of file qgssearchtreenode.h.


Constructor & Destructor Documentation

constructors

Definition at line 33 of file qgssearchtreenode.cpp.

References init(), mLeft, mRight, mType, and tNodeList.

Referenced by QgsSearchTreeNode().

Definition at line 43 of file qgssearchtreenode.cpp.

References init(), mLeft, mNumber, mRight, mType, number(), and tNumber.

Definition at line 54 of file qgssearchtreenode.cpp.

References init(), mLeft, mOp, mRight, mType, op(), and tOperator.

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.

copy contructor - copies whole tree!

Definition at line 92 of file qgssearchtreenode.cpp.

References init(), mLeft, mNodeList, mNumber, mOp, mRight, mText, mType, and QgsSearchTreeNode().

destructor - deletes children nodes (if any)

Definition at line 119 of file qgssearchtreenode.cpp.

References mCalc, mLeft, mNodeList, and mRight.


Member Function Documentation

append a node to the list

Note:
added in 1.6

Definition at line 891 of file qgssearchtreenode.cpp.

References mNodeList, mType, and tNodeList.

void QgsSearchTreeNode::append ( QList< QgsSearchTreeNode * >  nodes)

append nodelist to the list

Note:
added in 1.6

Definition at line 897 of file qgssearchtreenode.cpp.

References mNodeList.

bool QgsSearchTreeNode::checkAgainst ( const QgsFieldMap fields,
QgsFeature f 
)
bool QgsSearchTreeNode::checkAgainst ( const QgsFieldMap fields,
const QgsAttributeMap attributes,
QgsGeometry geom = 0 
)
QString QgsSearchTreeNode::columnRef ( ) const [inline]

Definition at line 145 of file qgssearchtreenode.h.

return a list of all attribute nodes

Note:
added in 1.5

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 
)
bool QgsSearchTreeNode::getValue ( QgsSearchTreeValue value,
QgsSearchTreeNode node,
const QgsFieldMap fields,
const QgsAttributeMap attributes,
QgsGeometry geom = 0 
)
bool QgsSearchTreeNode::hasError ( ) [inline]

checks if there were errors during evaluation

Definition at line 171 of file qgssearchtreenode.h.

void QgsSearchTreeNode::init ( ) [protected]

children

Definition at line 155 of file qgssearchtreenode.h.

check whether there are any operators that need geometry (for area, length)

Note:
added in 1.5

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)

Note:
added in 1.5

Definition at line 192 of file qgssearchtreenode.cpp.

return a list of referenced columns in the tree

Note:
added in 1.5

Definition at line 332 of file qgssearchtreenode.cpp.

References columnRefNodes().

Definition at line 156 of file qgssearchtreenode.h.

void QgsSearchTreeNode::setColumnRef ( const QString &  str) [inline]

Definition at line 151 of file qgssearchtreenode.h.

Set current row number within this tree.

This value is stored only in the nodes being $rownum operator - in mNumber

Note:
added in 1.6

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]
QgsSearchTreeValue QgsSearchTreeNode::valueAgainst ( const QgsFieldMap fields,
const QgsAttributeMap attributes,
QgsGeometry geom = 0 
) [protected]

Member Data Documentation

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().

double QgsSearchTreeNode::mNumber [private]
QString QgsSearchTreeNode::mText [private]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines