![]() |
RDKit
Open-source cheminformatics and machine learning.
|
Base class for all queries. More...
#include <Query.h>
Public Types | |
| using | CHILD_TYPE |
| using | CHILD_VECT = std::vector<CHILD_TYPE> |
| using | CHILD_VECT_I = typename CHILD_VECT::iterator |
| using | CHILD_VECT_CI = typename CHILD_VECT::const_iterator |
| using | MATCH_FUNC_ARG_TYPE = MatchFuncArgType |
| using | DATA_FUNC_ARG_TYPE = DataFuncArgType |
Public Member Functions | |
| Query () | |
| virtual | ~Query () |
| void | setNegation (bool what) |
| sets whether or not we are negated | |
| bool | getNegation () const |
| returns whether or not we are negated | |
| void | setDescription (const std::string &descr) |
| sets our text description | |
| void | setDescription (const char *descr) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| const std::string & | getDescription () const |
| returns our text description | |
| virtual std::string | getFullDescription () const |
| returns a fuller text description | |
| void | setTypeLabel (const std::string &typ) |
| sets our type label | |
| void | setTypeLabel (const char *typ) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| const std::string & | getTypeLabel () const |
| returns our text label. | |
| void | setMatchFunc (bool(*what)(MatchFuncArgType)) |
| sets our match function | |
| void | setDataFunc (MatchFuncArgType(*what)(DataFuncArgType)) |
| sets our data function | |
| void | addChild (CHILD_TYPE child) |
| adds a child to our list of children | |
| CHILD_VECT_CI | beginChildren () const |
| returns an iterator for the beginning of our child vector | |
| CHILD_VECT_CI | endChildren () const |
| returns an iterator for the end of our child vector | |
| virtual bool | Match (const DataFuncArgType arg) const |
| returns whether or not we match the argument | |
| virtual Query< MatchFuncArgType, DataFuncArgType, needsConversion > * | copy () const |
| returns a copy of this Query | |
Public Attributes | |
| bool(*)(MatchFuncArgType) | getMatchFunc () const |
| returns our match function: | |
| MatchFuncArgType(*)(DataFuncArgType) | getDataFunc () const |
| returns our data function: | |
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 | |
| MatchFuncArgType | TypeConvert (DataFuncArgType what, Int2Type< true >) const |
Protected Attributes | |
| MatchFuncArgType | d_val = 0 |
| MatchFuncArgType | d_tol = 0 |
| std::string | d_description = "" |
| std::string | d_queryType = "" |
| CHILD_VECT | d_children |
| bool | df_negate {false} |
| 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:
other. This is mandatory.other from DataFuncArgType to MatchFuncArgType. This is optional if DataFuncArgType is the same as (or implicitly convertible to) MatchFuncArgType. | using Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::CHILD_TYPE |
| using Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::CHILD_VECT = std::vector<CHILD_TYPE> |
| using Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::CHILD_VECT_CI = typename CHILD_VECT::const_iterator |
| using Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::CHILD_VECT_I = typename CHILD_VECT::iterator |
| using Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::DATA_FUNC_ARG_TYPE = DataFuncArgType |
| using Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::MATCH_FUNC_ARG_TYPE = MatchFuncArgType |
|
inline |
Definition at line 55 of file Query.h.
Referenced by Queries::AndQuery< int, const ROMol &, true >::copy(), Queries::EqualityQuery< double, const ROMol &, true >::copy(), Queries::OrQuery< int, const ROMol &, true >::copy(), Queries::RangeQuery< double, const ROMol &, true >::copy(), Queries::SetQuery< int, Atom const *, true >::copy(), Queries::XOrQuery< int, const ROMol &, true >::copy(), and Queries::SetQuery< int, Atom const *, true >::SetQuery().
|
inlinevirtual |
|
inline |
adds a child to our list of children
Definition at line 103 of file Query.h.
Referenced by Queries::AndQuery< int, const ROMol &, true >::copy(), Queries::OrQuery< int, const ROMol &, true >::copy(), Queries::Query< int, Atom const *, true >::copy(), and Queries::XOrQuery< int, const ROMol &, true >::copy().
|
inline |
returns an iterator for the beginning of our child vector
Definition at line 105 of file Query.h.
Referenced by Queries::AndQuery< int, const ROMol &, true >::copy(), Queries::OrQuery< int, const ROMol &, true >::copy(), Queries::XOrQuery< int, const ROMol &, true >::copy(), Queries::AndQuery< int, const ROMol &, true >::Match(), Queries::OrQuery< int, const ROMol &, true >::Match(), Queries::XOrQuery< int, const ROMol &, true >::Match(), RDKit::detail::qhelper(), and RDKit::detail::qhelper().
|
inlinevirtual |
returns a copy of this Query
Notes:
Reimplemented in Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::AndQuery< int, Atom const *, true >, Queries::AndQuery< int, Bond const *, true >, Queries::AndQuery< int, const ROMol &, true >, Queries::EqualityQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::EqualityQuery< double, const ROMol &, true >, Queries::EqualityQuery< int, Atom const *, true >, Queries::EqualityQuery< int, Bond const *, true >, Queries::EqualityQuery< int, ConstAtomPtr, true >, Queries::EqualityQuery< int, TargetPtr, true >, Queries::EqualityQuery< MatchFuncArgType, MatchFuncArgType, false >, Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::GreaterEqualQuery< double, const ROMol &, true >, Queries::GreaterEqualQuery< int, Atom const *, true >, Queries::GreaterEqualQuery< int, Bond const *, true >, Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::GreaterQuery< double, const ROMol &, true >, Queries::GreaterQuery< int, Atom const *, true >, Queries::GreaterQuery< int, Bond const *, true >, Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::LessEqualQuery< double, const ROMol &, true >, Queries::LessEqualQuery< int, Atom const *, true >, Queries::LessEqualQuery< int, Bond const *, true >, Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::LessQuery< double, const ROMol &, true >, Queries::LessQuery< int, Atom const *, true >, Queries::LessQuery< int, Bond const *, true >, Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::OrQuery< int, Atom const *, true >, Queries::OrQuery< int, Bond const *, true >, Queries::OrQuery< int, const ROMol &, true >, Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::RangeQuery< double, const ROMol &, true >, Queries::RangeQuery< int, Atom const *, true >, Queries::RangeQuery< int, Bond const *, true >, Queries::SetQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::SetQuery< int, Atom const *, true >, Queries::SetQuery< int, Bond const *, true >, Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::XOrQuery< int, Atom const *, true >, Queries::XOrQuery< int, Bond const *, true >, Queries::XOrQuery< int, const ROMol &, true >, RDKit::AtomRingQuery, RDKit::HasPropQuery< TargetPtr >, RDKit::HasPropWithValueQuery< TargetPtr, T >, RDKit::HasPropWithValueQuery< TargetPtr, ExplicitBitVect >, RDKit::HasPropWithValueQuery< TargetPtr, std::string >, and RDKit::RecursiveStructureQuery.
Definition at line 131 of file Query.h.
Referenced by RDKit::QueryAtom::operator=().
|
inline |
returns an iterator for the end of our child vector
Definition at line 107 of file Query.h.
Referenced by Queries::AndQuery< int, const ROMol &, true >::copy(), Queries::OrQuery< int, const ROMol &, true >::copy(), Queries::XOrQuery< int, const ROMol &, true >::copy(), Queries::AndQuery< int, const ROMol &, true >::Match(), Queries::OrQuery< int, const ROMol &, true >::Match(), Queries::XOrQuery< int, const ROMol &, true >::Match(), RDKit::detail::qhelper(), and RDKit::detail::qhelper().
|
inline |
returns our text description
Definition at line 70 of file Query.h.
Referenced by Queries::EqualityQuery< double, const ROMol &, true >::getFullDescription(), Queries::RangeQuery< double, const ROMol &, true >::getFullDescription(), Queries::SetQuery< int, Atom const *, true >::getFullDescription(), and RDKit::isAtomDummy().
|
inlinevirtual |
returns a fuller text description
Reimplemented in Queries::EqualityQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::EqualityQuery< double, const ROMol &, true >, Queries::EqualityQuery< int, Atom const *, true >, Queries::EqualityQuery< int, Bond const *, true >, Queries::EqualityQuery< int, ConstAtomPtr, true >, Queries::EqualityQuery< int, TargetPtr, true >, Queries::EqualityQuery< MatchFuncArgType, MatchFuncArgType, false >, Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::GreaterEqualQuery< double, const ROMol &, true >, Queries::GreaterEqualQuery< int, Atom const *, true >, Queries::GreaterEqualQuery< int, Bond const *, true >, Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::GreaterQuery< double, const ROMol &, true >, Queries::GreaterQuery< int, Atom const *, true >, Queries::GreaterQuery< int, Bond const *, true >, Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::LessEqualQuery< double, const ROMol &, true >, Queries::LessEqualQuery< int, Atom const *, true >, Queries::LessEqualQuery< int, Bond const *, true >, Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::LessQuery< double, const ROMol &, true >, Queries::LessQuery< int, Atom const *, true >, Queries::LessQuery< int, Bond const *, true >, Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::RangeQuery< double, const ROMol &, true >, Queries::RangeQuery< int, Atom const *, true >, Queries::RangeQuery< int, Bond const *, true >, Queries::SetQuery< MatchFuncArgType, DataFuncArgType, needsConversion >, Queries::SetQuery< int, Atom const *, true >, and Queries::SetQuery< int, Bond const *, true >.
Definition at line 72 of file Query.h.
Referenced by RDKit::detail::qhelper(), and RDKit::detail::qhelper().
|
inline |
returns whether or not we are negated
Definition at line 61 of file Query.h.
Referenced by Queries::AndQuery< int, const ROMol &, true >::copy(), Queries::EqualityQuery< double, const ROMol &, true >::copy(), Queries::OrQuery< int, const ROMol &, true >::copy(), Queries::RangeQuery< double, const ROMol &, true >::copy(), Queries::SetQuery< int, Atom const *, true >::copy(), Queries::XOrQuery< int, const ROMol &, true >::copy(), RDKit::RecursiveStructureQuery::copy(), Queries::EqualityQuery< double, const ROMol &, true >::getFullDescription(), Queries::RangeQuery< double, const ROMol &, true >::getFullDescription(), Queries::SetQuery< int, Atom const *, true >::getFullDescription(), RDKit::isAtomDummy(), Queries::AndQuery< int, const ROMol &, true >::Match(), Queries::EqualityQuery< double, const ROMol &, true >::Match(), Queries::OrQuery< int, const ROMol &, true >::Match(), Queries::RangeQuery< double, const ROMol &, true >::Match(), Queries::SetQuery< int, Atom const *, true >::Match(), and Queries::XOrQuery< int, const ROMol &, true >::Match().
|
inline |
|
inlinevirtual |
returns whether or not we match the argument
Reimplemented in Queries::EqualityQuery< int, ConstAtomPtr, true >, Queries::EqualityQuery< int, TargetPtr, true >, Queries::EqualityQuery< MatchFuncArgType, MatchFuncArgType, false >, RDKit::HasPropQuery< TargetPtr >, RDKit::HasPropWithValueQuery< TargetPtr, T >, RDKit::HasPropWithValueQuery< TargetPtr, ExplicitBitVect >, and RDKit::HasPropWithValueQuery< TargetPtr, std::string >.
|
inline |
sets our data function
Definition at line 94 of file Query.h.
Referenced by Queries::EqualityQuery< double, const ROMol &, true >::copy(), Queries::GreaterEqualQuery< double, const ROMol &, true >::copy(), Queries::GreaterQuery< double, const ROMol &, true >::copy(), Queries::LessEqualQuery< double, const ROMol &, true >::copy(), Queries::LessQuery< double, const ROMol &, true >::copy(), Queries::RangeQuery< double, const ROMol &, true >::copy(), Queries::SetQuery< int, Atom const *, true >::copy(), RDKit::makeAtomRangeQuery(), RDKit::RecursiveStructureQuery::RecursiveStructureQuery(), and RDKit::RecursiveStructureQuery::RecursiveStructureQuery().
|
inline |
|
inline |
sets our text description
Definition at line 64 of file Query.h.
Referenced by RDKit::makeAtomRangeQuery(), RDKit::RecursiveStructureQuery::RecursiveStructureQuery(), and RDKit::RecursiveStructureQuery::RecursiveStructureQuery().
|
inline |
|
inline |
sets whether or not we are negated
Definition at line 59 of file Query.h.
Referenced by Queries::AndQuery< int, const ROMol &, true >::copy(), Queries::EqualityQuery< double, const ROMol &, true >::copy(), Queries::GreaterEqualQuery< double, const ROMol &, true >::copy(), Queries::GreaterQuery< double, const ROMol &, true >::copy(), Queries::LessEqualQuery< double, const ROMol &, true >::copy(), Queries::LessQuery< double, const ROMol &, true >::copy(), Queries::OrQuery< int, const ROMol &, true >::copy(), Queries::RangeQuery< double, const ROMol &, true >::copy(), Queries::SetQuery< int, Atom const *, true >::copy(), Queries::XOrQuery< int, const ROMol &, true >::copy(), RDKit::AtomRingQuery::copy(), RDKit::HasPropQuery< TargetPtr >::copy(), RDKit::HasPropWithValueQuery< TargetPtr, T >::copy(), RDKit::HasPropWithValueQuery< TargetPtr, ExplicitBitVect >::copy(), RDKit::HasPropWithValueQuery< TargetPtr, std::string >::copy(), and RDKit::RecursiveStructureQuery::copy().
|
inline |
|
inline |
|
inlineprotected |
|
inlineprotected |
calls our dataFunc (if it's set) on what and returns the result, otherwise returns what
Definition at line 169 of file Query.h.
Referenced by Queries::EqualityQuery< double, const ROMol &, true >::Match(), Queries::RangeQuery< double, const ROMol &, true >::Match(), and Queries::SetQuery< int, Atom const *, true >::Match().
| union { ... } Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion > |
|
protected |
| MatchFuncArgType(* Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::d_dataFunc) (DataFuncArgType) |
Definition at line 164 of file Query.h.
Referenced by Queries::EqualityQuery< double, const ROMol &, true >::copy(), Queries::Query< int, Atom const *, true >::copy(), Queries::RangeQuery< double, const ROMol &, true >::copy(), Queries::SetQuery< int, Atom const *, true >::copy(), and RDKit::AtomRingQuery::copy().
| MatchFuncArgType(* Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::d_dataFuncSameType) (MatchFuncArgType) |
|
protected |
Definition at line 152 of file Query.h.
Referenced by Queries::AndQuery< int, const ROMol &, true >::copy(), Queries::EqualityQuery< double, const ROMol &, true >::copy(), Queries::GreaterEqualQuery< double, const ROMol &, true >::copy(), Queries::GreaterQuery< double, const ROMol &, true >::copy(), Queries::LessEqualQuery< double, const ROMol &, true >::copy(), Queries::LessQuery< double, const ROMol &, true >::copy(), Queries::OrQuery< int, const ROMol &, true >::copy(), Queries::Query< int, Atom const *, true >::copy(), Queries::RangeQuery< double, const ROMol &, true >::copy(), Queries::SetQuery< int, Atom const *, true >::copy(), Queries::XOrQuery< int, const ROMol &, true >::copy(), RDKit::AtomRingQuery::copy(), RDKit::HasPropQuery< TargetPtr >::copy(), RDKit::HasPropWithValueQuery< TargetPtr, T >::copy(), RDKit::HasPropWithValueQuery< TargetPtr, ExplicitBitVect >::copy(), RDKit::HasPropWithValueQuery< TargetPtr, std::string >::copy(), and RDKit::RecursiveStructureQuery::copy().
|
protected |
Definition at line 156 of file Query.h.
Referenced by Queries::Query< int, Atom const *, true >::copy().
|
protected |
Definition at line 153 of file Query.h.
Referenced by Queries::AndQuery< int, const ROMol &, true >::copy(), Queries::EqualityQuery< double, const ROMol &, true >::copy(), Queries::GreaterEqualQuery< double, const ROMol &, true >::copy(), Queries::GreaterQuery< double, const ROMol &, true >::copy(), Queries::LessEqualQuery< double, const ROMol &, true >::copy(), Queries::LessQuery< double, const ROMol &, true >::copy(), Queries::OrQuery< int, const ROMol &, true >::copy(), Queries::Query< int, Atom const *, true >::copy(), Queries::RangeQuery< double, const ROMol &, true >::copy(), Queries::SetQuery< int, Atom const *, true >::copy(), and Queries::XOrQuery< int, const ROMol &, true >::copy().
|
protected |
Definition at line 151 of file Query.h.
Referenced by Queries::EqualityQuery< double, const ROMol &, true >::copy(), Queries::Query< int, Atom const *, true >::copy(), Queries::RangeQuery< double, const ROMol &, true >::copy(), Queries::EqualityQuery< double, const ROMol &, true >::EqualityQuery(), Queries::EqualityQuery< double, const ROMol &, true >::getTol(), Queries::RangeQuery< double, const ROMol &, true >::getTol(), Queries::EqualityQuery< double, const ROMol &, true >::Match(), Queries::RangeQuery< double, const ROMol &, true >::Match(), Queries::EqualityQuery< double, const ROMol &, true >::setTol(), and Queries::RangeQuery< double, const ROMol &, true >::setTol().
|
protected |
Definition at line 150 of file Query.h.
Referenced by Queries::EqualityQuery< double, const ROMol &, true >::copy(), Queries::Query< int, Atom const *, true >::copy(), Queries::EqualityQuery< double, const ROMol &, true >::EqualityQuery(), Queries::EqualityQuery< double, const ROMol &, true >::EqualityQuery(), Queries::EqualityQuery< double, const ROMol &, true >::getFullDescription(), Queries::EqualityQuery< double, const ROMol &, true >::getVal(), Queries::EqualityQuery< double, const ROMol &, true >::Match(), and Queries::EqualityQuery< double, const ROMol &, true >::setVal().
|
protected |
Definition at line 155 of file Query.h.
Referenced by Queries::AndQuery< int, const ROMol &, true >::AndQuery(), Queries::Query< int, Atom const *, true >::copy(), Queries::EqualityQuery< double, const ROMol &, true >::EqualityQuery(), Queries::EqualityQuery< double, const ROMol &, true >::EqualityQuery(), Queries::EqualityQuery< double, const ROMol &, true >::EqualityQuery(), Queries::OrQuery< int, const ROMol &, true >::OrQuery(), Queries::RangeQuery< double, const ROMol &, true >::RangeQuery(), Queries::RangeQuery< double, const ROMol &, true >::RangeQuery(), and Queries::XOrQuery< int, const ROMol &, true >::XOrQuery().
|
inline |
|
inline |