RDKit
Open-source cheminformatics and machine learning.
Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion > Class Template Reference

Base class for all queries. More...

#include <Query.h>

Inheritance diagram for Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >:
Queries::AndQuery< MatchFuncArgType, DataFuncArgType, needsConversion > Queries::EqualityQuery< MatchFuncArgType, DataFuncArgType, needsConversion > Queries::OrQuery< MatchFuncArgType, DataFuncArgType, needsConversion > Queries::RangeQuery< MatchFuncArgType, DataFuncArgType, needsConversion > Queries::SetQuery< MatchFuncArgType, DataFuncArgType, needsConversion > Queries::XOrQuery< MatchFuncArgType, DataFuncArgType, needsConversion > Queries::GreaterEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion > Queries::GreaterQuery< MatchFuncArgType, DataFuncArgType, needsConversion > Queries::LessEqualQuery< MatchFuncArgType, DataFuncArgType, needsConversion > Queries::LessQuery< MatchFuncArgType, DataFuncArgType, needsConversion >

Public Types

typedef boost::shared_ptr< Query< MatchFuncArgType, DataFuncArgType, needsConversion > > CHILD_TYPE
 
typedef std::vector< CHILD_TYPECHILD_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)
 
MatchFuncArgType(* d_dataFunc )(DataFuncArgType)
 

Detailed Description

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
class Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >

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.

Definition at line 45 of file Query.h.

Member Typedef Documentation

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
typedef boost::shared_ptr< Query<MatchFuncArgType, DataFuncArgType, needsConversion> > Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::CHILD_TYPE

Definition at line 48 of file Query.h.

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
typedef std::vector<CHILD_TYPE> Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::CHILD_VECT

Definition at line 49 of file Query.h.

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
typedef CHILD_VECT::const_iterator Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::CHILD_VECT_CI

Definition at line 51 of file Query.h.

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
typedef CHILD_VECT::iterator Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::CHILD_VECT_I

Definition at line 50 of file Query.h.

Constructor & Destructor Documentation

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::Query ( )
inline

Definition at line 53 of file Query.h.

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
virtual Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::~Query ( )
inlinevirtual

Definition at line 58 of file Query.h.

Member Function Documentation

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
void Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::addChild ( CHILD_TYPE  child)
inline
template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
virtual Query<MatchFuncArgType, DataFuncArgType, needsConversion>* Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::copy ( ) const
inlinevirtual
template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
bool Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::getNegation ( ) const
inline

returns whether or not we are negated

Definition at line 63 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().

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
void Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setDescription ( const std::string &  descr)
inline

sets our text description

Definition at line 66 of file Query.h.

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
void Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setDescription ( const char *  descr)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 70 of file Query.h.

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
void Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setMatchFunc ( bool(*)(MatchFuncArgType)  what)
inline

sets our match function

Definition at line 84 of file Query.h.

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
MatchFuncArgType Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::TypeConvert ( MatchFuncArgType  what,
Int2Type< false >   
) const
inlineprotected
template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
MatchFuncArgType Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::TypeConvert ( DataFuncArgType  what,
Int2Type< true >   
) const
inlineprotected

calls our dataFunc (which must be set) on what and returns the

Definition at line 162 of file Query.h.

Member Data Documentation

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
CHILD_VECT Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::d_children
protected

Definition at line 143 of file Query.h.

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
bool(* Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::d_matchFunc) (MatchFuncArgType)
protected

Definition at line 145 of file Query.h.

Referenced by Queries::Query< int, TargetPtr, needsConversion >::copy().

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
MatchFuncArgType(*)(DataFuncArgType) Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::getDataFunc() const
inline

returns our data function:

Definition at line 94 of file Query.h.

template<class MatchFuncArgType, class DataFuncArgType = MatchFuncArgType, bool needsConversion = false>
bool(*)(MatchFuncArgType) Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::getMatchFunc() const
inline

returns our match function:

Definition at line 88 of file Query.h.


The documentation for this class was generated from the following file: