Loading...
Searching...
No Matches
RDKit::RecursiveStructureQuery Class Reference

allows use of recursive structure queries (e.g. recursive SMARTS) More...

`#include <QueryOps.h>`

Inheritance diagram for RDKit::RecursiveStructureQuery:

## Public Member Functions

| RecursiveStructureQuery ()
| RecursiveStructureQuery (ROMol const *query, unsigned int serialNumber=0)
| initialize from an ROMol pointer
void | setQueryMol (ROMol const *query)
| sets the molecule we'll use recursively
ROMol const * | getQueryMol () const
| returns a pointer to our query molecule
Queries::Query< int, Atom const *, true > * | copy () const override
| returns a copy of this query
unsigned int | getSerialNumber () const
Public Member Functions inherited from Queries::SetQuery< int, Atom const *, true >
| SetQuery ()
void | insert (const int what)
| insert an entry into our `set`
void | clear ()
| clears our `set`
bool | Match (const Atom const *what) const override
Query< int, Atom const *, needsConversion > * | copy () const override
| returns a copy of this Query
CONTAINER_TYPE::const_iterator | beginSet () const
CONTAINER_TYPE::const_iterator | endSet () const
unsigned int | size () const
std::string | getFullDescription () const override
| returns a fuller text description
Public Member Functions inherited from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >
| 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
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 (std::function< bool(MatchFuncArgType)> what)
| sets our match function
std::function< bool(MatchFuncArgType)> | getMatchFunc () const
| returns our match function:
void | setDataFunc (std::function< MatchFuncArgType(DataFuncArgType)> what)
| sets our data function
std::function< MatchFuncArgType(DataFuncArgType)> | getDataFunc () const
| returns 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

## Static Public Member Functions

static int | getAtIdx (Atom const *at)
| returns the index of an atom

## Additional Inherited Members

Public Types inherited from Queries::SetQuery< int, Atom const *, true >
typedef std::set< int > | CONTAINER_TYPE
Public Types inherited from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >
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
Protected Member Functions inherited from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >
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 inherited from Queries::SetQuery< int, Atom const *, true >
CONTAINER_TYPE | d_set
Protected Attributes inherited from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >
MatchFuncArgType | d_val = 0
MatchFuncArgType | d_tol = 0
std::string | d_description = ""
std::string | d_queryType = ""
CHILD_VECT | d_children
bool | df_negate {false}
std::function< bool(MatchFuncArgType)> | d_matchFunc
union { |
std::function< MatchFuncArgType(DataFuncArgType)> d_dataFunc |
std::function< MatchFuncArgType(MatchFuncArgType)> d_dataFuncSameType |
}; |

## Detailed Description

allows use of recursive structure queries (e.g. recursive SMARTS)

Definition at line 793 of file QueryOps.h.

## Constructor & Destructor Documentation

## RecursiveStructureQuery() [1/2]

RDKit::RecursiveStructureQuery::RecursiveStructureQuery | ( |  | ) |

inline

Definition at line 796 of file QueryOps.h.

References getAtIdx(), Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setDataFunc(), Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setDescription(), and Queries::SetQuery< int, Atom const *, true >::SetQuery().

Referenced by copy().

## RecursiveStructureQuery() [2/2]

RDKit::RecursiveStructureQuery::RecursiveStructureQuery | ( | ROMol const * | query,
|  | unsigned int | serialNumber = 0 )

inline

initialize from an ROMol pointer

Notes

- this takes over ownership of the pointer

Definition at line 805 of file QueryOps.h.

References getAtIdx(), Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setDataFunc(), Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setDescription(), Queries::SetQuery< int, Atom const *, true >::SetQuery(), and setQueryMol().

## Member Function Documentation

## copy()

Queries::Query< int, Atom const *, true > * RDKit::RecursiveStructureQuery::copy | ( |  | ) | const

inline override virtual

returns a copy of this query

Reimplemented from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >.

Definition at line 828 of file QueryOps.h.

References Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::d_description, Queries::SetQuery< int, Atom const *, true >::d_set, Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::getNegation(), Queries::SetQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::insert(), RecursiveStructureQuery(), and Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setNegation().

## getAtIdx()

int RDKit::RecursiveStructureQuery::getAtIdx | ( | Atom const * | at | ) |

inline static

returns the index of an atom

Definition at line 813 of file QueryOps.h.

References RDKit::Atom::getIdx(), and PRECONDITION.

Referenced by RecursiveStructureQuery(), and RecursiveStructureQuery().

## getQueryMol()

ROMol const * RDKit::RecursiveStructureQuery::getQueryMol | ( |  | ) | const

inline

returns a pointer to our query molecule

Definition at line 825 of file QueryOps.h.

## getSerialNumber()

unsigned int RDKit::RecursiveStructureQuery::getSerialNumber | ( |  | ) | const

inline

Definition at line 841 of file QueryOps.h.

## setQueryMol()

void RDKit::RecursiveStructureQuery::setQueryMol | ( | ROMol const * | query | ) |

inline

sets the molecule we'll use recursively

Notes

- this takes over ownership of the pointer

Definition at line 823 of file QueryOps.h.

Referenced by RecursiveStructureQuery().

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

- QueryOps.h