RDKit
Open-source cheminformatics and machine learning.
SanitException.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2002-2019 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 
11 #include <RDGeneral/export.h>
12 #ifndef RD_SANITEXCEPTION_H
13 #define RD_SANITEXCEPTION_H
14 
15 #include <RDGeneral/types.h>
16 #include <GraphMol/GraphMol.h>
17 #include <GraphMol/Atom.h>
18 #include <GraphMol/Bond.h>
19 
20 #include <string>
21 #include <vector>
22 #include <exception>
23 
24 namespace RDKit {
25 
26 //! class for flagging sanitization errors
27 class RDKIT_GRAPHMOL_EXPORT MolSanitizeException : public std::exception {
28  public:
29  MolSanitizeException(const char *msg) : d_msg(msg){};
30  MolSanitizeException(const std::string &msg) : d_msg(msg){};
32  : d_msg(other.d_msg){};
33  virtual const char *what() const noexcept override { return d_msg.c_str(); };
34  virtual const char *message() const noexcept { return what(); };
35  virtual ~MolSanitizeException() noexcept {};
36  virtual MolSanitizeException *copy() const {
37  return new MolSanitizeException(*this);
38  };
39  virtual std::string getType() const { return "MolSanitizeException"; };
40 
41  protected:
42  std::string d_msg;
43 };
44 
46  : public MolSanitizeException {
47  public:
48  AtomSanitizeException(const char *msg, unsigned int atomIdx)
49  : MolSanitizeException(msg), d_atomIdx(atomIdx){};
50  AtomSanitizeException(const std::string &msg, unsigned int atomIdx)
51  : MolSanitizeException(msg), d_atomIdx(atomIdx){};
53  : MolSanitizeException(other), d_atomIdx(other.d_atomIdx){};
54  unsigned int getAtomIdx() const { return d_atomIdx; };
55  virtual ~AtomSanitizeException() noexcept {};
56  virtual MolSanitizeException *copy() const {
57  return new AtomSanitizeException(*this);
58  };
59  virtual std::string getType() const { return "AtomSanitizeException"; };
60 
61  protected:
62  unsigned int d_atomIdx;
63 };
64 
66  : public AtomSanitizeException {
67  public:
68  AtomValenceException(const char *msg, unsigned int atomIdx)
69  : AtomSanitizeException(msg, atomIdx){};
70  AtomValenceException(const std::string &msg, unsigned int atomIdx)
71  : AtomSanitizeException(msg, atomIdx){};
73  : AtomSanitizeException(other){};
74  virtual ~AtomValenceException() noexcept {};
76  return new AtomValenceException(*this);
77  };
78  std::string getType() const { return "AtomValenceException"; };
79 };
80 
82  : public AtomSanitizeException {
83  public:
84  AtomKekulizeException(const char *msg, unsigned int atomIdx)
85  : AtomSanitizeException(msg, atomIdx){};
86  AtomKekulizeException(const std::string &msg, unsigned int atomIdx)
87  : AtomSanitizeException(msg, atomIdx){};
89  : AtomSanitizeException(other){};
90  virtual ~AtomKekulizeException() noexcept {};
92  return new AtomKekulizeException(*this);
93  };
94  std::string getType() const { return "AtomKekulizeException"; };
95 };
96 
98  public:
99  KekulizeException(const char *msg, const std::vector<unsigned int> &indices)
100  : MolSanitizeException(msg), d_atomIndices(indices){};
101  KekulizeException(const std::string &msg,
102  const std::vector<unsigned int> &indices)
103  : MolSanitizeException(msg), d_atomIndices(indices){};
105  : MolSanitizeException(other), d_atomIndices(other.d_atomIndices){};
106  const std::vector<unsigned int> &getAtomIndices() const {
107  return d_atomIndices;
108  };
109  virtual ~KekulizeException() noexcept {};
110  MolSanitizeException *copy() const { return new KekulizeException(*this); };
111  std::string getType() const { return "KekulizeException"; };
112 
113  protected:
114  std::vector<unsigned int> d_atomIndices;
115 };
116 
117 } // namespace RDKit
118 
119 #endif
RDKit::AtomSanitizeException::getAtomIdx
unsigned int getAtomIdx() const
Definition: SanitException.h:54
RDKit::AtomSanitizeException::d_atomIdx
unsigned int d_atomIdx
Definition: SanitException.h:59
RDKit::AtomValenceException::~AtomValenceException
virtual ~AtomValenceException() noexcept
Definition: SanitException.h:74
types.h
RDKit::KekulizeException::d_atomIndices
std::vector< unsigned int > d_atomIndices
Definition: SanitException.h:111
Bond.h
RDKit::AtomKekulizeException::copy
MolSanitizeException * copy() const
Definition: SanitException.h:91
RDKit::KekulizeException::KekulizeException
KekulizeException(const char *msg, const std::vector< unsigned int > &indices)
Definition: SanitException.h:99
GraphMol.h
pulls in RWMol and ROMol
RDKit::AtomSanitizeException::AtomSanitizeException
AtomSanitizeException(const char *msg, unsigned int atomIdx)
Definition: SanitException.h:48
RDKit::KekulizeException::getAtomIndices
const std::vector< unsigned int > & getAtomIndices() const
Definition: SanitException.h:106
RDKit::MolSanitizeException::message
virtual const char * message() const noexcept
Definition: SanitException.h:34
RDKit::AtomKekulizeException::AtomKekulizeException
AtomKekulizeException(const char *msg, unsigned int atomIdx)
Definition: SanitException.h:84
RDKit::AtomSanitizeException::copy
virtual MolSanitizeException * copy() const
Definition: SanitException.h:56
RDKit::AtomKekulizeException::~AtomKekulizeException
virtual ~AtomKekulizeException() noexcept
Definition: SanitException.h:90
RDKit::KekulizeException
Definition: SanitException.h:97
RDKit::AtomSanitizeException::AtomSanitizeException
AtomSanitizeException(const std::string &msg, unsigned int atomIdx)
Definition: SanitException.h:50
RDKit::MolSanitizeException::copy
virtual MolSanitizeException * copy() const
Definition: SanitException.h:36
Atom.h
Defines the Atom class and associated typedefs.
RDKit::MolSanitizeException::what
virtual const char * what() const noexcept override
Definition: SanitException.h:33
RDKit::MolSanitizeException
class for flagging sanitization errors
Definition: SanitException.h:27
RDKIT_GRAPHMOL_EXPORT
#define RDKIT_GRAPHMOL_EXPORT
Definition: export.h:307
RDKit::KekulizeException::KekulizeException
KekulizeException(const KekulizeException &other)
Definition: SanitException.h:104
RDKit::AtomValenceException
Definition: SanitException.h:66
RDKit::AtomSanitizeException::~AtomSanitizeException
virtual ~AtomSanitizeException() noexcept
Definition: SanitException.h:55
RDKit::KekulizeException::~KekulizeException
virtual ~KekulizeException() noexcept
Definition: SanitException.h:109
RDKit::MolSanitizeException::getType
virtual std::string getType() const
Definition: SanitException.h:39
RDKit::AtomValenceException::AtomValenceException
AtomValenceException(const char *msg, unsigned int atomIdx)
Definition: SanitException.h:68
RDKit::AtomKekulizeException::AtomKekulizeException
AtomKekulizeException(const AtomKekulizeException &other)
Definition: SanitException.h:88
RDKit::AtomSanitizeException::getType
virtual std::string getType() const
Definition: SanitException.h:59
RDKit::AtomSanitizeException
Definition: SanitException.h:46
RDKit::MolSanitizeException::d_msg
std::string d_msg
Definition: SanitException.h:39
RDKit::MolSanitizeException::~MolSanitizeException
virtual ~MolSanitizeException() noexcept
Definition: SanitException.h:35
RDKit
Std stuff.
Definition: Atom.h:30
RDKit::MolSanitizeException::MolSanitizeException
MolSanitizeException(const std::string &msg)
Definition: SanitException.h:30
RDKit::AtomKekulizeException::AtomKekulizeException
AtomKekulizeException(const std::string &msg, unsigned int atomIdx)
Definition: SanitException.h:86
RDKit::MolSanitizeException::MolSanitizeException
MolSanitizeException(const MolSanitizeException &other)
Definition: SanitException.h:31
RDKit::AtomValenceException::copy
MolSanitizeException * copy() const
Definition: SanitException.h:75
RDKit::AtomKekulizeException
Definition: SanitException.h:82
RDKit::AtomValenceException::getType
std::string getType() const
Definition: SanitException.h:78
RDKit::KekulizeException::getType
std::string getType() const
Definition: SanitException.h:111
RDKit::AtomKekulizeException::getType
std::string getType() const
Definition: SanitException.h:94
RDKit::AtomValenceException::AtomValenceException
AtomValenceException(const AtomValenceException &other)
Definition: SanitException.h:72
RDKit::AtomSanitizeException::AtomSanitizeException
AtomSanitizeException(const AtomSanitizeException &other)
Definition: SanitException.h:52
RDKit::MolSanitizeException::MolSanitizeException
MolSanitizeException(const char *msg)
Definition: SanitException.h:29
RDKit::KekulizeException::KekulizeException
KekulizeException(const std::string &msg, const std::vector< unsigned int > &indices)
Definition: SanitException.h:101
RDKit::AtomValenceException::AtomValenceException
AtomValenceException(const std::string &msg, unsigned int atomIdx)
Definition: SanitException.h:70
RDKit::KekulizeException::copy
MolSanitizeException * copy() const
Definition: SanitException.h:110
export.h