19#include <boost/regex.hpp>
24class OksQueryExpression;
62 static const char *
OR;
63 static const char *
AND;
64 static const char *
NOT;
68 static const char *
OID;
69 static const char *
EQ;
70 static const char *
NE;
71 static const char *
RE;
72 static const char *
LE;
73 static const char *
GE;
74 static const char *
LS;
75 static const char *
GT;
323 virtual const char *
what () const noexcept
324 {
return p_what.c_str ();}
OKS query logical AND expression class.
virtual ~OksAndExpression()
OKS query expression comparator class.
OksQuery::Comparator GetFunction() const
const OksAttribute * attribute
void SetValue(OksData *v)
const OksAttribute * GetAttribute() const
void SetFunction(OksQuery::Comparator f)
OksComparator(const OksAttribute *a, OksData *v, OksQuery::Comparator f)
OksQuery::Comparator m_comp_f
void SetAttribute(const OksAttribute *a)
Provides interface to the OKS kernel.
Abstract class describing list of OKS query expressions.
OksListBaseQueryExpression()
std::list< OksQueryExpression * > p_expressions
const std::list< OksQueryExpression * > & expressions() const
void add(OksQueryExpression *q)
virtual ~OksListBaseQueryExpression()
OKS query logical NOT expression class.
OksNotExpression(OksQueryExpression *q=0)
void set(OksQueryExpression *q)
OksQueryExpression * p_expression
OksQueryExpression * get() const
virtual ~OksNotExpression()
OksObject describes instance of OksClass.
OKS query logical OR expression class.
virtual ~OksOrExpression()
OKS query expression class.
virtual ~OksQueryExpression()
const OksQuery::QueryType p_type
bool operator==(const class OksQueryExpression &e) const
OksQuery::QueryType type() const
friend std::ostream & operator<<(std::ostream &, const OksQueryExpression &)
OksQueryExpression(OksQuery::QueryType qet=OksQuery::unknown_type)
static const char * ALL_SUBCLASSES
static bool equal_cmp(const OksData *, const OksData *)
void search_in_subclasses(bool b)
static bool reg_exp_cmp(const OksData *, const OksData *regexp)
static bool greater_cmp(const OksData *, const OksData *)
bool search_in_subclasses() const
static const char * THIS_CLASS
void set(OksQueryExpression *q)
static bool less_or_equal_cmp(const OksData *, const OksData *)
friend std::ostream & operator<<(std::ostream &, const OksQuery &)
static bool not_equal_cmp(const OksData *, const OksData *)
bool(*) Comparator(const OksData *, const OksData *)
static const char * PATH_TO
OksQueryExpression * p_expression
static const char * NESTED
static bool greater_or_equal_cmp(const OksData *, const OksData *)
static bool less_cmp(const OksData *, const OksData *)
static const char * DIRECT
OksQuery(bool b, OksQueryExpression *q=0)
static OksQueryExpression * create_expression(const OksClass *, const std::string &)
OksQueryExpression * get() const
OKS query relationship expression class.
OksQueryExpression * get() const
bool IsCheckAllObjects() const
void set(OksQueryExpression *q)
void SetRelationship(const OksRelationship *r)
const OksRelationship * GetRelationship() const
void SetIsCheckAllObjects(const bool b)
virtual ~OksRelationshipExpression()
const OksRelationship * relationship
OksRelationshipExpression(const OksRelationship *r, OksQueryExpression *q, bool b=false)
OksQueryExpression * p_expression
QueryPathExpression * p_next
QueryPathExpression(bool v)
bool get_use_nested_lookup() const
QueryPathExpression(const std::string &expression)
const QueryPathExpression * get_next() const
std::list< std::string > p_rel_names
const std::list< std::string > & get_rel_names() const
const OksObject * get_goal_object() const
const QueryPathExpression * get_start_expression() const
QueryPath(const OksObject *o, QueryPathExpression *qpe)
QueryPathExpression * p_start
QueryPath(const std::string &query, const OksKernel &)
bad_query_syntax(const std::string &what_arg) noexcept
virtual ~bad_query_syntax() noexcept
virtual const char * what() const noexcept
std::ostream & operator<<(std::ostream &s, const oks::exception &ex)
the structure to pass common parameters to various read() methods of OksData and OksObject class