Chemical Data Processing Library C++ API - Version 1.4.0
Public Types | Public Member Functions | List of all members
CDPL::Chem::NOTMatchExpression< ObjType1, ObjType2 > Class Template Reference

Chem::MatchExpression implementation that negates the evaluation results of a wrapped external expression instance. More...

#include <NOTMatchExpression.hpp>

+ Inheritance diagram for CDPL::Chem::NOTMatchExpression< ObjType1, ObjType2 >:

Public Types

typedef std::shared_ptr< NOTMatchExpression > SharedPointer
 A reference-counted smart pointer [SHPTR] for dynamically allocated NOTMatchExpression 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 Member Functions

 NOTMatchExpression (const typename MatchExpression< ObjType1, ObjType2 >::SharedPointer &expr_ptr)
 Constructs the NOTMatchExpression object that wraps the match expression instance specified by expr_ptr. More...
 
bool operator() (const ObjType1 &query_obj1, const ObjType2 &query_obj2, const ObjType1 &target_obj1, const ObjType2 &target_obj2, const Base::Any &aux_data) const
 Performs an evaluation of the wrapped match expression for the given query and target objects and returns the inverted result. More...
 
bool operator() (const ObjType1 &query_obj1, const ObjType2 &query_obj2, const ObjType1 &target_obj1, const ObjType2 &target_obj2, const AtomBondMapping &mapping, const Base::Any &aux_data) const
 Performs an evaluation of the wrapped match expression for the given query and target objects under consideration of the provided candidate atom/bond mapping and returns the inverted result. More...
 
bool requiresAtomBondMapping () const
 Tells whether the wrapped match expression requires a reevaluation after a query to target atom/bond mapping candidate has been found. More...
 
- Public Member Functions inherited from CDPL::Chem::MatchExpression< ObjType1, void >
virtual ~MatchExpression ()
 Virtual Destructor. More...
 

Detailed Description

template<typename ObjType1, typename ObjType2 = void>
class CDPL::Chem::NOTMatchExpression< ObjType1, ObjType2 >

Chem::MatchExpression implementation that negates the evaluation results of a wrapped external expression instance.

The expression evaluates to the logical negation of its wrapped expression. Useful for expressing "!X" constraints in substructure searches.

Template Parameters
ObjType1The type of the primary query/target objects for which the expression gets evaluated.
ObjType2The type of secondary query/target objects which provide auxiliary information for expression evaluation.

Member Typedef Documentation

◆ SharedPointer

template<typename ObjType1 , typename ObjType2 = void>
typedef std::shared_ptr<NOTMatchExpression> CDPL::Chem::NOTMatchExpression< ObjType1, ObjType2 >::SharedPointer

A reference-counted smart pointer [SHPTR] for dynamically allocated NOTMatchExpression instances.

Constructor & Destructor Documentation

◆ NOTMatchExpression()

template<typename ObjType1 , typename ObjType2 = void>
CDPL::Chem::NOTMatchExpression< ObjType1, ObjType2 >::NOTMatchExpression ( const typename MatchExpression< ObjType1, ObjType2 >::SharedPointer &  expr_ptr)
inline

Constructs the NOTMatchExpression object that wraps the match expression instance specified by expr_ptr.

Parameters
expr_ptrA pointer to the the match expression instance to wrap.

Member Function Documentation

◆ operator()() [1/2]

template<typename ObjType1 , typename ObjType2 >
bool CDPL::Chem::NOTMatchExpression< ObjType1, ObjType2 >::operator() ( const ObjType1 &  query_obj1,
const ObjType2 &  query_obj2,
const ObjType1 &  target_obj1,
const ObjType2 &  target_obj2,
const Base::Any &  aux_data 
) const
virtual

Performs an evaluation of the wrapped match expression for the given query and target objects and returns the inverted result.

Parameters
query_obj1The primary query object.
query_obj2The secondary query object.
target_obj1The primary target object.
target_obj2The secondary target object.
aux_dataProvides auxiliary information for the evaluation of the wrapped expression.
Returns
true if the wrapped match expression evaluates to false, and vice versa.

Reimplemented from CDPL::Chem::MatchExpression< ObjType1, void >.

◆ operator()() [2/2]

template<typename ObjType1 , typename ObjType2 >
bool CDPL::Chem::NOTMatchExpression< ObjType1, ObjType2 >::operator() ( const ObjType1 &  query_obj1,
const ObjType2 &  query_obj2,
const ObjType1 &  target_obj1,
const ObjType2 &  target_obj2,
const AtomBondMapping &  mapping,
const Base::Any &  aux_data 
) const
virtual

Performs an evaluation of the wrapped match expression for the given query and target objects under consideration of the provided candidate atom/bond mapping and returns the inverted result.

Parameters
query_obj1The primary query object.
query_obj2The secondary query object.
target_obj1The primary target object.
target_obj2The secondary target object.
mappingThe current query to target atom/bond mapping candidate to evaluate.
aux_dataProvides auxiliary information for the evaluation of the wrapped expression.
Returns
true if the wrapped match expression evaluates to false, and vice versa.

Reimplemented from CDPL::Chem::MatchExpression< ObjType1, void >.

◆ requiresAtomBondMapping()

template<typename ObjType1 >
bool CDPL::Chem::NOTMatchExpression< ObjType1 >::requiresAtomBondMapping
virtual

Tells whether the wrapped match expression requires a reevaluation after a query to target atom/bond mapping candidate has been found.

Returns
true if the expression needs to be evaluated again after a query/target mapping candidate has been found, and false otherwise.

Reimplemented from CDPL::Chem::MatchExpression< ObjType1, void >.


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