1 #ifndef GUI_OBJUTILS___QUERY_NODE_VALUE_HPP
2 #define GUI_OBJUTILS___QUERY_NODE_VALUE_HPP
78 case eNotPromotable:
return "eNotPromotable";
79 case eIncompatibleType:
return "eIncompatibleType";
80 case eWrongArgumentCount:
return "eWrongArgumentCount";
81 case eExecParseError:
return "eExecParseError";
82 case eObjManagerError:
return "eObjManagerError";
83 case eUnableToResolveData:
return "eUnableToResolveData";
84 case eFunctionExedError:
return "eFunctionExedError";
149 : m_CompareOperator(op)
152 , m_PromotedType(ptype) {}
160 else if (m_Type1 == rhs.
m_Type1 &&
163 else if (m_Type1 == rhs.
m_Type1 &&
174 return ((m_Type1 == rhs.
m_Type1) &&
219 , m_NodeBranchDepth(0)
220 , m_NodeMaxChildBranchDepth(-1)
229 , m_NodeBranchDepth(0)
230 , m_NodeMaxChildBranchDepth(-1)
234 virtual void Reset() { m_Value =
false; }
235 virtual string GetVisibleValue()
const;
281 bool HasPromoteType(
size_t arg_idx,
305 virtual void SetString(
const string&
data);
306 virtual void SetBool(
bool data);
307 virtual void SetDouble(
double data);
312 virtual const string&
GetString()
const {
return m_String; }
313 virtual bool GetBool()
const {
return m_Bool; }
static CRef< CScope > m_Scope
class CQueryExecException
NCBI_EXCEPTION_DEFAULT(CQueryExecException, CException)
virtual const char * GetErrCodeString(void) const override
Get error code interpreted as text.
Int8 m_Int
Int data, if data was an integer or converted into one.
vector< CPromoteRule > & GetPromoteRules()
Return promotion rule(s) defined for this operator.
CQueryNodeValue(CQueryParseTree::TNode *n)
QueryValueType::EBaseType m_DataType
Data type, including source of the data (const, string field, or tree)
int GetMaxChildBranchDepth() const
objects::CScope * m_Scope
Used for comparing seq-ids.
void SetBranchDepth(int bd)
Set/Get number of branches between node and root.
CQueryParseTree::TNode * m_Node
Node from parsed query tree.
int m_NodeMaxChildBranchDepth
bool m_Value
Boolean result of the (sub)expression attached to the corresponding query node.
CRef< CQueryNodeValue > m_Ref
Reference to similar object.
void SetFieldID(TFieldIDType fid)
virtual bool GetBool() const
bool m_IsField
True if the data comes from field in the tree.
TFieldIDType m_FieldID
If it is a field, this is the ID to look it up (efficiently)
int GetBranchDepth() const
CQueryParseTree::TNode * GetQueryNode()
Get corresponding query node.
bool m_Bool
Bool data, if data base a constant boolean or converted into one.
virtual void Reset()
Reset user object (for reuse without reallocation)
int m_NodeBranchDepth
Mechanism to pass current position of node within the tree in terms of the number of branches between...
string m_String
String data, if data came from a string or data field in the tree.
CQueryExec::TFieldID TFieldIDType
void SetIsDataField(bool b)
Set/Get to indicate if this is a field from the data source or simple string.
double m_Double
Floating point data, if data was a double or converted into one.
vector< CPromoteRule > m_PromoteRules
The promote rules defined for the current operator.
void SetDataType(QueryValueType::EBaseType dt)
Set/get underlying data type.
virtual Int8 GetInt() const
virtual double GetDouble() const
objects::CScope * GetScope()
void AddPromotedType(const CPromoteRule &pr)
Append a new promote rule.
bool GetValue() const
Set boolean result value (result of (sub)expression).
TFieldIDType GetFieldID() const
virtual const string & GetString() const
void SetScope(objects::CScope *s)
Set/Get CScope used for comparing seq-ids.
void SetMaxChildBranchDepth(int cbd)
Set/Get number of branches between node and most distant child.
QueryValueType::EBaseType GetDataType() const
definition of a Culling tree
class IQueryMacroUserObject
TErrCode GetErrCode(void) const
Get error code.
EErrCode
Error types that an application can generate.
virtual const char * GetErrCodeString(void) const
Get error code interpreted as text.
int64_t Int8
8-byte (64-bit) signed integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define NCBI_GUIOBJUTILS_EXPORT
Defines to provide correct exporting from DLLs in Windows.
EBaseType
Set of all possible types for nodes.
string GetTypeAsString(EBaseType et)
const CharType(& source)[N]
The NCBI C++/STL use hints.
Query parser execution implementations.