Chemical Data Processing Library C++ API - Version 1.1.1
|
A container for the storage and evaluation of logical match expression lists. More...
#include <MatchExpressionList.hpp>
Public Types | |
typedef std::shared_ptr< MatchExpressionList > | SharedPointer |
A reference-counted smart pointer [SHPTR] for dynamically allocated MatchExpressionList instances. More... | |
Public Types inherited from CDPL::Chem::MatchExpression< ObjType1, void > | |
typedef std::shared_ptr< MatchExpression > | SharedPointer |
A reference-counted smart pointer [SHPTR] for dynamically allocated MatchExpression instances. More... | |
Public Types inherited from CDPL::Util::IndirectArray< MatchExpression< ObjType1, void > > | |
typedef Array< typename ValueType::SharedPointer > | BaseType |
The type of the public Array<PointerType> base class storing the pointer elements. More... | |
typedef MatchExpression< ObjType1, void > | ElementType |
The type of the object that is obtained after dereferenciation of a stored pointer element. More... | |
typedef std::shared_ptr< IndirectArray > | SharedPointer |
A reference-counted smart pointer [SHPTR] for dynamically allocated IndirectArray instances. More... | |
typedef boost::transform_iterator< DerefFunc, typename BaseType::ConstElementIterator, const MatchExpression< ObjType1, void > & > | ConstElementIterator |
A constant random access iterator used to iterate over the pointed-to objects. More... | |
typedef boost::transform_iterator< DerefFunc, typename BaseType::ConstReverseElementIterator, const MatchExpression< ObjType1, void > & > | ConstReverseElementIterator |
A constant random access iterator used to iterate over the pointed-to objects in reverse order. More... | |
typedef boost::transform_iterator< DerefFunc, typename BaseType::ElementIterator, MatchExpression< ObjType1, void > & > | ElementIterator |
A mutable random access iterator used to iterate over the pointed-to objects. More... | |
typedef boost::transform_iterator< DerefFunc, typename BaseType::ReverseElementIterator, MatchExpression< ObjType1, void > & > | ReverseElementIterator |
A mutable random access iterator used to iterate over the pointed-to objects in reverse order. More... | |
Public Types inherited from CDPL::Util::Array< typename ValueType::SharedPointer > | |
typedef std::vector< typename ValueType::SharedPointer > | StorageType |
typedef std::shared_ptr< Array > | SharedPointer |
A reference-counted smart pointer [SHPTR] for dynamically allocated Array instances. More... | |
typedef typename ValueType::SharedPointer | ElementType |
The type of objects stored by the array. More... | |
typedef std::size_t | SizeType |
The type of objects stored by the array. More... | |
typedef Array | BaseType |
Specifies for derived classes the type of the Array base class. More... | |
typedef StorageType::const_iterator | ConstElementIterator |
A constant random access iterator used to iterate over the elements of the array. More... | |
typedef StorageType::const_reverse_iterator | ConstReverseElementIterator |
A constant random access iterator used to iterate over the elements of the array in reverse order. More... | |
typedef StorageType::iterator | ElementIterator |
A mutable random access iterator used to iterate over the elements of the array. More... | |
typedef StorageType::reverse_iterator | ReverseElementIterator |
A mutable random access iterator used to iterate over the elements of the array in reverse order. More... | |
Public Member Functions | |
bool | requiresAtomBondMapping () const |
Tells whether the expression list requires a reevaluation after a query to target object mapping candidate has been found. More... | |
Public Member Functions inherited from CDPL::Chem::MatchExpression< ObjType1, void > | |
virtual | ~MatchExpression () |
Virtual Destructor. More... | |
virtual bool | operator() (const ObjType1 &query_obj1, const void &query_obj2, const ObjType1 &target_obj1, const void &target_obj2, const Base::Any &aux_data) const |
Performs an evaluation of the expression for the given query and target objects. More... | |
virtual bool | operator() (const ObjType1 &query_obj1, const void &query_obj2, const ObjType1 &target_obj1, const void &target_obj2, const AtomBondMapping &mapping, const Base::Any &aux_data) const |
Performs an evaluation of the expression for the given query and target objects under consideration of the provided candidate atom/bond mapping. More... | |
virtual bool | requiresAtomBondMapping () const |
Tells whether the expression must be reevaluated after a query to target atom/bond mapping candidate has been found. More... | |
Public Member Functions inherited from CDPL::Util::IndirectArray< MatchExpression< ObjType1, void > > | |
IndirectArray () | |
Creates an empty array. More... | |
IndirectArray (std::size_t num_elem, const typename ValueType::SharedPointer &ptr=typename ValueType::SharedPointer()) | |
Creates and initializes the array with num_elem copies of ptr. More... | |
IndirectArray (const InputIter &first, const InputIter &last) | |
Creates and initializes the array with copies of the pointers in the range [first, last). More... | |
virtual | ~IndirectArray () |
Virtual destructor. More... | |
ElementIterator | insertElement (const ElementIterator &it, const typename ValueType::SharedPointer &ptr) |
Inserts a new element before the location specified by the iterator it. More... | |
void | insertElement (std::size_t idx, const MatchExpression< ObjType1, void > &value=MatchExpression< ObjType1, void >()) |
Inserts a new element before the location specified by the index idx. More... | |
ElementIterator | insertElement (const ElementIterator &it, const MatchExpression< ObjType1, void > &value=MatchExpression< ObjType1, void >()) |
Inserts a new element before the location specified by the iterator it. More... | |
void | insertElements (const ElementIterator &it, std::size_t num_elem, const typename ValueType::SharedPointer &ptr) |
Inserts num_elem copies of ptr before the location specified by the iterator it. More... | |
void | insertElements (const ElementIterator &it, const InputIter &first, const InputIter &last) |
Inserts the range of pointers [first, last) before the location specified by the iterator it. More... | |
void | insertElements (std::size_t idx, std::size_t num_elem, const MatchExpression< ObjType1, void > &value=MatchExpression< ObjType1, void >()) |
Inserts num_elem copies of value before the location specified by the index idx. More... | |
void | insertElements (const ElementIterator &it, std::size_t num_elem, const MatchExpression< ObjType1, void > &value=MatchExpression< ObjType1, void >()) |
Inserts num_elem copies of value before the location specified by the iterator it. More... | |
void | insertElements (std::size_t idx, const InputIter &first, const InputIter &last) |
Inserts the range of elements [first, last) before the location specified by the index idx. More... | |
void | insertElements (const ElementIterator &it, const InputIter &first, const InputIter &last) |
Inserts the range of elements [first, last) before the location specified by the iterator it. More... | |
ElementIterator | removeElement (const ElementIterator &it) |
Removes the element at the position specified by the iterator it. More... | |
void | removeElement (std::size_t idx) |
Removes the element at the position specified by the index idx. More... | |
ElementIterator | removeElement (const ElementIterator &it) |
Removes the element at the position specified by the iterator it. More... | |
ElementIterator | removeElements (const ElementIterator &first, const ElementIterator &last) |
Removes the elements pointed to by the iterators in the range [first, last). More... | |
ElementIterator | removeElements (const ElementIterator &first, const ElementIterator &last) |
Removes the elements pointed to by the iterators in the range [first, last). More... | |
const MatchExpression< ObjType1, void > & | getFirstElement () const |
Returns a const reference to the object pointed to by the first element of the array. More... | |
MatchExpression< ObjType1, void > & | getFirstElement () |
Returns a non-const reference to the object pointed to by the first element of the array. More... | |
const MatchExpression< ObjType1, void > & | getLastElement () const |
Returns a const reference to the object pointed to by the last element of the array. More... | |
MatchExpression< ObjType1, void > & | getLastElement () |
Returns a non-const reference to the object pointed to by the last element of the array. More... | |
ConstElementIterator | getElementsBegin () const |
Returns a constant iterator over the pointed-to objects that points to the beginning of the array. More... | |
ElementIterator | getElementsBegin () |
Returns a mutable iterator over the pointed-to objects that points to the beginning of the array. More... | |
ConstElementIterator | getElementsEnd () const |
Returns a constant iterator over the pointed-to objects that points to the end of the array. More... | |
ElementIterator | getElementsEnd () |
Returns a mutable iterator over the pointed-to objects that points to the end of the array. More... | |
ConstElementIterator | begin () const |
Returns a constant iterator over the pointed-to objects that points to the beginning of the array. More... | |
ElementIterator | begin () |
Returns a mutable iterator over the pointed-to objects that points to the beginning of the array. More... | |
ConstElementIterator | end () const |
Returns a constant iterator over the pointed-to objects that points to the end of the array. More... | |
ElementIterator | end () |
Returns a mutable iterator over the pointed-to objects that points to the end of the array. More... | |
ConstReverseElementIterator | getElementsReverseBegin () const |
Returns a constant iterator over the pointed-to objects that points to the beginning of the reversed array. More... | |
ReverseElementIterator | getElementsReverseBegin () |
Returns a mutable iterator over the pointed-to objects that points to the beginning of the reversed array. More... | |
ConstReverseElementIterator | getElementsReverseEnd () const |
Returns a constant iterator over the pointed-to objects that points to the end of the reversed array. More... | |
ReverseElementIterator | getElementsReverseEnd () |
Returns a mutable iterator over the pointed-to objects that points to the end of the reversed array. More... | |
const MatchExpression< ObjType1, void > & | getElement (std::size_t idx) const |
Returns a const reference to the object pointed-to by the pointer element at index idx. More... | |
MatchExpression< ObjType1, void > & | getElement (std::size_t idx) |
Returns a non-const reference to the object pointed-to by the pointer element at index idx. More... | |
const MatchExpression< ObjType1, void > & | operator[] (std::size_t idx) const |
Returns a const reference to the object pointed-to by the pointer element at index idx. More... | |
MatchExpression< ObjType1, void > & | operator[] (std::size_t idx) |
Returns a non-const reference to the object pointed-to by the pointer element at index idx. More... | |
Public Member Functions inherited from CDPL::Util::Array< typename ValueType::SharedPointer > | |
Array () | |
Creates an empty array. More... | |
Array (std::size_t num_elem, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) | |
Creates and initializes the array with num_elem copies of value. More... | |
Array (const InputIter &first, const InputIter &last) | |
Creates and initializes the array with copies of the elements in the range [first, last). More... | |
virtual | ~Array () |
Virtual destructor. More... | |
StorageType & | getData () |
const StorageType & | getData () const |
BaseType & | getBase () |
Returns a non-const reference to itself. More... | |
const BaseType & | getBase () const |
Returns a const reference to itself. More... | |
std::size_t | getSize () const |
Returns the number of elements stored in the array. More... | |
std::size_t | size () const |
Returns the number of elements stored in the array. More... | |
bool | isEmpty () const |
Tells whether the array is empty (getSize() == 0). More... | |
void | resize (std::size_t num_elem, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Inserts or erases elements at the end so that the size becomes num_elem. More... | |
void | reserve (std::size_t num_elem) |
Preallocates memory for (at least) num_elem elements. More... | |
std::size_t | getCapacity () const |
Returns the number of elements for which memory has been allocated. More... | |
void | clear () |
Erases all elements. More... | |
void | swap (Array &array) |
Swaps the contents with array. More... | |
void | assign (std::size_t num_elem, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
This function fills the array with num_elem copies of the given value. More... | |
void | assign (const InputIter &first, const InputIter &last) |
This function fills a vector with copies of the elements in the range [first, last). More... | |
void | addElement (const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Inserts a new element at the end of the array. More... | |
void | insertElement (std::size_t idx, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Inserts a new element before the location specified by the index idx. More... | |
ElementIterator | insertElement (const ElementIterator &it, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Inserts a new element before the location specified by the iterator it. More... | |
void | insertElements (std::size_t idx, std::size_t num_elem, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Inserts num_elem copies of value before the location specified by the index idx. More... | |
void | insertElements (const ElementIterator &it, std::size_t num_elem, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Inserts num_elem copies of value before the location specified by the iterator it. More... | |
void | insertElements (std::size_t idx, const InputIter &first, const InputIter &last) |
Inserts the range of elements [first, last) before the location specified by the index idx. More... | |
void | insertElements (const ElementIterator &it, const InputIter &first, const InputIter &last) |
Inserts the range of elements [first, last) before the location specified by the iterator it. More... | |
void | popLastElement () |
Removes the last element of the array. More... | |
void | removeElement (std::size_t idx) |
Removes the element at the position specified by the index idx. More... | |
ElementIterator | removeElement (const ElementIterator &it) |
Removes the element at the position specified by the iterator it. More... | |
ElementIterator | removeElements (const ElementIterator &first, const ElementIterator &last) |
Removes the elements pointed to by the iterators in the range [first, last). More... | |
const typename ValueType::SharedPointer & | getFirstElement () const |
Returns a const reference to the first element of the array. More... | |
typename ValueType::SharedPointer & | getFirstElement () |
Returns a non-const reference to the first element of the array. More... | |
const typename ValueType::SharedPointer & | getLastElement () const |
Returns a const reference to the last element of the array. More... | |
typename ValueType::SharedPointer & | getLastElement () |
Returns a non-const reference to the last element of the array. More... | |
ConstElementIterator | getElementsBegin () const |
Returns a constant iterator pointing to the beginning of the array. More... | |
ElementIterator | getElementsBegin () |
Returns a mutable iterator pointing to the beginning of the array. More... | |
ConstElementIterator | getElementsEnd () const |
Returns a constant iterator pointing to the end of the array. More... | |
ElementIterator | getElementsEnd () |
Returns a mutable iterator pointing to the end of the array. More... | |
ConstElementIterator | begin () const |
Returns a constant iterator pointing to the beginning of the array. More... | |
ElementIterator | begin () |
Returns a mutable iterator pointing to the beginning of the array. More... | |
ConstElementIterator | end () const |
Returns a constant iterator pointing to the end of the array. More... | |
ElementIterator | end () |
Returns a mutable iterator pointing to the end of the array. More... | |
ConstReverseElementIterator | getElementsReverseBegin () const |
Returns a constant iterator pointing to the beginning of the reversed array. More... | |
ReverseElementIterator | getElementsReverseBegin () |
Returns a mutable iterator pointing to the beginning of the reversed array. More... | |
ConstReverseElementIterator | getElementsReverseEnd () const |
Returns a constant iterator pointing to the end of the reversed array. More... | |
ReverseElementIterator | getElementsReverseEnd () |
Returns a mutable iterator pointing to the end of the reversed array. More... | |
const typename ValueType::SharedPointer & | getElement (std::size_t idx) const |
Returns a const reference to the element at index idx. More... | |
typename ValueType::SharedPointer & | getElement (std::size_t idx) |
Returns a non-const reference to the element at index idx. More... | |
void | setElement (std::size_t idx, const typename ValueType::SharedPointer &value=typename ValueType::SharedPointer()) |
Assigns a new value to the element specified by the index idx. More... | |
const typename ValueType::SharedPointer & | operator[] (std::size_t idx) const |
Returns a const reference to the element at index idx. More... | |
typename ValueType::SharedPointer & | operator[] (std::size_t idx) |
Returns a non-const reference to the element at index idx. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from CDPL::Util::Array< typename ValueType::SharedPointer > | |
void | checkIfNonEmpty () const |
void | checkIndex (std::size_t idx, bool allow_end) const |
void | checkIterator (const ElementIterator &it, bool allow_end) |
void | checkIterator (const ConstElementIterator &it, bool allow_end) const |
A container for the storage and evaluation of logical match expression lists.
MatchExpressionList
allows for a concatenation of multiple Chem::MatchExpression instances that get evaluated in turn according to some logic. The actual logic of expression list evaluation has to be implemented by subclasses by overriding the virtual function call operator methods of the Chem::MatchExpression interface.
ObjType1 | The type of the primary query/target objects for which the expression list gets evaluated. |
ObjType2 | The type of secondary query/target objects which provide auxiliary information for expression list evaluation. |
typedef std::shared_ptr<MatchExpressionList> CDPL::Chem::MatchExpressionList< ObjType1, ObjType2 >::SharedPointer |
A reference-counted smart pointer [SHPTR] for dynamically allocated MatchExpressionList
instances.
bool CDPL::Chem::MatchExpressionList< ObjType1, ObjType2 >::requiresAtomBondMapping |
Tells whether the expression list requires a reevaluation after a query to target object mapping candidate has been found.
true
if one of the stored expressions requires a reevaluation after a mapping candidate has been found, and false
otherwise.