![]() |
RDKit
Open-source cheminformatics and machine learning.
|
Base class for all queries. More...
#include <Query.h>
Public Types | |
| typedef boost::shared_ptr< Query< MatchFuncArgType, DataFuncArgType, needsConversion > > | CHILD_TYPE |
| typedef std::vector< CHILD_TYPE > | CHILD_VECT |
| typedef CHILD_VECT::iterator | CHILD_VECT_I |
| typedef CHILD_VECT::const_iterator | CHILD_VECT_CI |
Public Member Functions | |
| Query () | |
| virtual | ~Query () |
| void | setNegation (bool what) |
| sets whether or not we are negated More... | |
| bool | getNegation () const |
| returns whether or not we are negated More... | |
| void | setDescription (const std::string &descr) |
| sets our text description More... | |
| void | setDescription (const char *descr) |
| const std::string & | getDescription () const |
| returns our text description More... | |
| virtual std::string | getFullDescription () const |
| returns a fuller text description More... | |
| void | setMatchFunc (bool(*what)(MatchFuncArgType)) |
| sets our match function More... | |
| void | setDataFunc (MatchFuncArgType(*what)(DataFuncArgType)) |
| sets our data function More... | |
| void | addChild (CHILD_TYPE child) |
| adds a child to our list of children More... | |
| CHILD_VECT_CI | beginChildren () const |
| returns an iterator for the beginning of our child vector More... | |
| CHILD_VECT_CI | endChildren () const |
| returns an iterator for the end of our child vector More... | |
| virtual bool | Match (const DataFuncArgType arg) const |
| returns whether or not we match the argument More... | |
| virtual Query< MatchFuncArgType, DataFuncArgType, needsConversion > * | copy () const |
| returns a copy of this Query More... | |
Public Attributes | |
| bool(*)(MatchFuncArgType) | getMatchFunc () const |
| returns our match function: More... | |
| MatchFuncArgType(*)(DataFuncArgType) | getDataFunc () const |
| returns our data function: More... | |
Protected Member Functions | |
| MatchFuncArgType | TypeConvert (MatchFuncArgType what, Int2Type< false >) const |
calls our dataFunc (if it's set) on what and returns the result, otherwise returns what More... | |
| MatchFuncArgType | TypeConvert (DataFuncArgType what, Int2Type< true >) const |
calls our dataFunc (which must be set) on what and returns the More... | |
Protected Attributes | |
| std::string | d_description |
| CHILD_VECT | d_children |
| bool | df_negate |
| bool(* | d_matchFunc )(MatchFuncArgType) |
| union { | |
| MatchFuncArgType(* d_dataFunc )(DataFuncArgType) | |
| MatchFuncArgType(* d_dataFuncSameType )(MatchFuncArgType) | |
| }; | |
Base class for all queries.
Query objects have one or two functions associated with them:
bool matchFunc(MatchFuncArgType other) returns true or false to indicate whether this query matches other. This is mandatory.MatchFuncArgType dataFunc(DataFuncArgType other) converts the argument other from DataFuncArgType to MatchFuncArgType. This is optional if DataFuncArgType is the same as (or implicitly convertible to) MatchFuncArgType. | typedef boost::shared_ptr< Query<MatchFuncArgType, DataFuncArgType, needsConversion> > Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::CHILD_TYPE |
| typedef std::vector<CHILD_TYPE> Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::CHILD_VECT |
| typedef CHILD_VECT::const_iterator Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::CHILD_VECT_CI |
| typedef CHILD_VECT::iterator Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::CHILD_VECT_I |
|
inline |
|
inlinevirtual |
|
inline |
adds a child to our list of children
Definition at line 100 of file Query.h.
Referenced by Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), and Queries::Query< int, TargetPtr, needsConversion >::copy().
|
inline |
returns an iterator for the beginning of our child vector
Definition at line 102 of file Query.h.
Referenced by Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), and RDKit::detail::qhelper().
|
inlinevirtual |
returns a copy of this Query
Notes:
deleteing the result Reimplemented in RDKit::HasPropWithValueQuery< TargetPtr, std::string >, RDKit::HasPropWithValueQuery< TargetPtr, T >, RDKit::HasPropQuery< TargetPtr >, RDKit::RecursiveStructureQuery, RDKit::AtomRingQuery, Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::EqualityQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::EqualityQuery< int, ConstAtomPtr, true >, Queries::EqualityQuery< int, TargetPtr, true >, Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::SetQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::SetQuery< int, Atom const *, true >, Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, and Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >.
Definition at line 126 of file Query.h.
Referenced by Queries::Query< int, TargetPtr, needsConversion >::copy(), and RDKit::QueryAtom::QueryAtom().
|
inline |
returns an iterator for the end of our child vector
Definition at line 104 of file Query.h.
Referenced by Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), and RDKit::detail::qhelper().
|
inline |
returns our text description
Definition at line 75 of file Query.h.
Referenced by Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::getFullDescription(), Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::getFullDescription(), Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::getFullDescription(), Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::getFullDescription(), Queries::SetQuery< int, Atom const *, true >::getFullDescription(), Queries::EqualityQuery< int, TargetPtr, true >::getFullDescription(), and Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::getFullDescription().
|
inlinevirtual |
returns a fuller text description
Reimplemented in Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::EqualityQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::EqualityQuery< int, ConstAtomPtr, true >, Queries::EqualityQuery< int, TargetPtr, true >, Queries::SetQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::SetQuery< int, Atom const *, true >, Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, and Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >.
Definition at line 77 of file Query.h.
Referenced by RDKit::detail::qhelper().
|
inline |
returns whether or not we are negated
Definition at line 64 of file Query.h.
Referenced by Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::SetQuery< int, Atom const *, true >::copy(), Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::EqualityQuery< int, TargetPtr, true >::copy(), Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::getFullDescription(), Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::getFullDescription(), Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::getFullDescription(), Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::getFullDescription(), Queries::SetQuery< int, Atom const *, true >::getFullDescription(), Queries::EqualityQuery< int, TargetPtr, true >::getFullDescription(), Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::getFullDescription(), Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::SetQuery< int, Atom const *, true >::Match(), Queries::EqualityQuery< int, TargetPtr, true >::Match(), and Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match().
|
inlinevirtual |
returns whether or not we match the argument
Reimplemented in RDKit::HasPropWithValueQuery< TargetPtr, std::string >, RDKit::HasPropWithValueQuery< TargetPtr, T >, RDKit::HasPropQuery< TargetPtr >, Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::EqualityQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::EqualityQuery< int, ConstAtomPtr, true >, Queries::EqualityQuery< int, TargetPtr, true >, Queries::SetQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::SetQuery< int, Atom const *, true >, Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, and Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >.
|
inline |
sets our data function
Definition at line 91 of file Query.h.
Referenced by Queries::SetQuery< int, Atom const *, true >::copy(), Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::EqualityQuery< int, TargetPtr, true >::copy(), Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), and RDKit::makeAtomRangeQuery().
|
inline |
sets our text description
Definition at line 67 of file Query.h.
Referenced by RDKit::makeAtomRangeQuery().
|
inline |
|
inline |
|
inline |
sets whether or not we are negated
Definition at line 62 of file Query.h.
Referenced by Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::SetQuery< int, Atom const *, true >::copy(), Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::EqualityQuery< int, TargetPtr, true >::copy(), Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), RDKit::AtomRingQuery::copy(), RDKit::RecursiveStructureQuery::copy(), RDKit::HasPropQuery< TargetPtr >::copy(), RDKit::HasPropWithValueQuery< TargetPtr, T >::copy(), and RDKit::HasPropWithValueQuery< TargetPtr, std::string >::copy().
|
inlineprotected |
calls our dataFunc (if it's set) on what and returns the result, otherwise returns what
Definition at line 158 of file Query.h.
Referenced by Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match(), Queries::SetQuery< int, Atom const *, true >::Match(), Queries::EqualityQuery< int, TargetPtr, true >::Match(), and Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::Match().
|
inlineprotected |
| union { ... } |
|
protected |
| MatchFuncArgType(* Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::d_dataFunc) (DataFuncArgType) |
Definition at line 153 of file Query.h.
Referenced by Queries::SetQuery< int, Atom const *, true >::copy(), Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::EqualityQuery< int, TargetPtr, true >::copy(), Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::Query< int, TargetPtr, needsConversion >::copy(), and RDKit::AtomRingQuery::copy().
| MatchFuncArgType(* Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::d_dataFuncSameType) (MatchFuncArgType) |
|
protected |
Definition at line 140 of file Query.h.
Referenced by Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::SetQuery< int, Atom const *, true >::copy(), Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::EqualityQuery< int, TargetPtr, true >::copy(), Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::copy(), Queries::Query< int, TargetPtr, needsConversion >::copy(), RDKit::AtomRingQuery::copy(), RDKit::RecursiveStructureQuery::copy(), RDKit::HasPropQuery< TargetPtr >::copy(), RDKit::HasPropWithValueQuery< TargetPtr, T >::copy(), and RDKit::HasPropWithValueQuery< TargetPtr, std::string >::copy().
|
protected |
Definition at line 146 of file Query.h.
Referenced by Queries::Query< int, TargetPtr, needsConversion >::copy().
|
protected |
Definition at line 145 of file Query.h.
Referenced by Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::AndQuery(), Queries::Query< int, TargetPtr, needsConversion >::copy(), Queries::EqualityQuery< int, TargetPtr, true >::EqualityQuery(), Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::GreaterEqualQuery(), Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::GreaterQuery(), Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::LessEqualQuery(), Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::LessQuery(), Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::OrQuery(), Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::RangeQuery(), and Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::XOrQuery().
|
inline |
|
inline |