RDKit
Open-source cheminformatics and machine learning.
Toggle main menu visibility
Loading...
Searching...
No Matches
AndQuery.h
Go to the documentation of this file.
1
//
2
// Copyright (c) 2003-2020 Greg Landrum and Rational Discovery LLC
3
//
4
// @@ All Rights Reserved @@
5
// This file is part of the RDKit.
6
// The contents are covered by the terms of the BSD license
7
// which is included in the file license.txt, found at the root
8
// of the RDKit source tree.
9
//
10
#include <
RDGeneral/export.h
>
11
#ifndef RD_ANDQUERY_H
12
#define RD_ANDQUERY_H
13
14
#include "
Query.h
"
15
16
namespace
Queries
{
17
18
//! a Query implementing AND: requires all children to be \c true
19
template
<
class
MatchFuncArgType,
class
DataFuncArgType = MatchFuncArgType,
20
bool
needsConversion =
false
>
21
class
RDKIT_QUERY_EXPORT
AndQuery
22
:
public
Query
<MatchFuncArgType, DataFuncArgType, needsConversion> {
23
public
:
24
typedef
Query<MatchFuncArgType, DataFuncArgType, needsConversion>
BASE
;
25
AndQuery
() { this->
df_negate
=
false
; }
26
27
bool
Match
(
const
DataFuncArgType what)
const override
{
28
bool
res =
true
;
29
typename
BASE::CHILD_VECT_CI
it1;
30
for
(it1 = this->
beginChildren
(); it1 != this->
endChildren
(); ++it1) {
31
bool
tmp = (*it1)->Match(what);
32
if
(!tmp) {
33
res =
false
;
34
break
;
35
}
36
}
37
if
(this->
getNegation
()) {
38
res = !res;
39
}
40
return
res;
41
}
42
Query<MatchFuncArgType, DataFuncArgType, needsConversion>
*
copy
()
43
const override
{
44
AndQuery<MatchFuncArgType, DataFuncArgType, needsConversion>
*res =
45
new
AndQuery<MatchFuncArgType, DataFuncArgType, needsConversion>
();
46
typename
BASE::CHILD_VECT_CI
i;
47
for
(i = this->
beginChildren
(); i != this->
endChildren
(); ++i) {
48
res->
addChild
(
typename
BASE::CHILD_TYPE
(i->get()->copy()));
49
}
50
res->
setNegation
(this->
getNegation
());
51
res->
d_description
= this->
d_description
;
52
res->
d_queryType
= this->
d_queryType
;
53
return
res;
54
}
55
};
56
}
// namespace Queries
57
#endif
Query.h
Queries::AndQuery::Match
bool Match(const DataFuncArgType what) const override
Definition
AndQuery.h:27
Queries::AndQuery::AndQuery
AndQuery()
Definition
AndQuery.h:25
Queries::AndQuery< int, const ROMol &, true >::BASE
Query< int, const ROMol &, needsConversion > BASE
Definition
AndQuery.h:24
Queries::AndQuery::copy
Query< MatchFuncArgType, DataFuncArgType, needsConversion > * copy() const override
returns a copy of this Query
Definition
AndQuery.h:42
Queries::Query::addChild
void addChild(CHILD_TYPE child)
adds a child to our list of children
Definition
Query.h:108
Queries::Query::d_queryType
std::string d_queryType
Definition
Query.h:158
Queries::Query::endChildren
CHILD_VECT_CI endChildren() const
returns an iterator for the end of our child vector
Definition
Query.h:112
Queries::Query::beginChildren
CHILD_VECT_CI beginChildren() const
returns an iterator for the beginning of our child vector
Definition
Query.h:110
Queries::Query::getNegation
bool getNegation() const
returns whether or not we are negated
Definition
Query.h:64
Queries::Query::setNegation
void setNegation(bool what)
sets whether or not we are negated
Definition
Query.h:62
Queries::Query::CHILD_TYPE
std::shared_ptr< Query< MatchFuncArgType, DataFuncArgType, needsConversion > > CHILD_TYPE
Definition
Query.h:50
Queries::Query::CHILD_VECT_CI
typename CHILD_VECT::const_iterator CHILD_VECT_CI
Definition
Query.h:54
Queries::Query< MatchFuncArgType, MatchFuncArgType, false >::Query
Query()
Definition
Query.h:58
Queries::Query::df_negate
bool df_negate
Definition
Query.h:160
Queries::Query::d_description
std::string d_description
Definition
Query.h:157
export.h
RDKIT_QUERY_EXPORT
#define RDKIT_QUERY_EXPORT
Definition
export.h:833
Queries
Definition
AndQuery.h:16
Query
AndQuery.h
Generated on
for RDKit by
1.17.0