RDKit
Open-source cheminformatics and machine learning.
Toggle main menu visibility
Loading...
Searching...
No Matches
OrQuery.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_ORQUERY_H
12
#define RD_ORQUERY_H
13
14
#include "
Query.h
"
15
16
namespace
Queries
{
17
//! a Query implementing AND: requires any child to be \c true
18
template
<
class
MatchFuncArgType,
class
DataFuncArgType = MatchFuncArgType,
19
bool
needsConversion =
false
>
20
class
RDKIT_QUERY_EXPORT
OrQuery
21
:
public
Query
<MatchFuncArgType, DataFuncArgType, needsConversion> {
22
public
:
23
typedef
Query<MatchFuncArgType, DataFuncArgType, needsConversion>
BASE
;
24
OrQuery
() { this->
df_negate
=
false
; }
25
26
bool
Match
(
const
DataFuncArgType what)
const override
{
27
bool
res =
false
;
28
typename
BASE::CHILD_VECT_CI
it1;
29
for
(it1 = this->
beginChildren
(); it1 != this->
endChildren
(); ++it1) {
30
bool
tmp = (*it1)->Match(what);
31
if
(tmp) {
32
res =
true
;
33
break
;
34
}
35
}
36
if
(this->
getNegation
()) {
37
res = !res;
38
}
39
return
res;
40
}
41
42
Query<MatchFuncArgType, DataFuncArgType, needsConversion>
*
copy
()
43
const override
{
44
OrQuery<MatchFuncArgType, DataFuncArgType, needsConversion>
*res =
45
new
OrQuery<MatchFuncArgType, DataFuncArgType, needsConversion>
();
46
47
typename
BASE::CHILD_VECT_CI
i;
48
for
(i = this->
beginChildren
(); i != this->
endChildren
(); ++i) {
49
res->
addChild
(
typename
BASE::CHILD_TYPE
(i->get()->copy()));
50
}
51
res->
setNegation
(this->
getNegation
());
52
res->
d_description
= this->
d_description
;
53
res->
d_queryType
= this->
d_queryType
;
54
return
res;
55
}
56
};
57
}
// namespace Queries
58
#endif
Query.h
Queries::OrQuery< int, const ROMol &, true >::BASE
Query< int, const ROMol &, needsConversion > BASE
Definition
OrQuery.h:23
Queries::OrQuery::OrQuery
OrQuery()
Definition
OrQuery.h:24
Queries::OrQuery::copy
Query< MatchFuncArgType, DataFuncArgType, needsConversion > * copy() const override
returns a copy of this Query
Definition
OrQuery.h:42
Queries::OrQuery::Match
bool Match(const DataFuncArgType what) const override
Definition
OrQuery.h:26
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
OrQuery.h
Generated on
for RDKit by
1.17.0