diff --git a/modules/mol/base/src/chem_class.hh b/modules/mol/base/src/chem_class.hh index 14581ac5b0925f74e5fbc12a44f65a67eeff7416..2146b300df44586b13dbe0d479ed4922b48ba9db 100644 --- a/modules/mol/base/src/chem_class.hh +++ b/modules/mol/base/src/chem_class.hh @@ -26,68 +26,60 @@ namespace ost { namespace mol { struct DLLEXPORT ChemClass { - static constexpr char PEPTIDE_LINKING ='P'; - static constexpr char D_PEPTIDE_LINKING ='D'; - static constexpr char L_PEPTIDE_LINKING ='L'; - static constexpr char RNA_LINKING ='R'; - static constexpr char DNA_LINKING ='S'; - static constexpr char NON_POLYMER ='N'; - static constexpr char L_SACCHARIDE ='X'; - static constexpr char D_SACCHARIDE ='Y'; - static constexpr char SACCHARIDE ='Z'; - static constexpr char WATER ='W'; - static constexpr char UNKNOWN ='U'; + typedef enum { + PEPTIDE_LINKING ='P', + D_PEPTIDE_LINKING ='D', + L_PEPTIDE_LINKING ='L', + RNA_LINKING ='R', + DNA_LINKING ='S', + NON_POLYMER ='N', + L_SACCHARIDE ='X', + D_SACCHARIDE ='Y', + SACCHARIDE ='Z', + WATER ='W', + UNKNOWN ='U' + } Type; - // for backward compatibility to 1.1 and earlier - static constexpr char PeptideLinking =PEPTIDE_LINKING; - static constexpr char DPeptideLinking =D_PEPTIDE_LINKING; - static constexpr char LPeptideLinking =L_PEPTIDE_LINKING; - static constexpr char RNALinking =RNA_LINKING; - static constexpr char DNALinking =DNA_LINKING; - static constexpr char NonPolymer =NON_POLYMER; - static constexpr char LSaccharide =L_SACCHARIDE; - static constexpr char DSaccharide =D_SACCHARIDE; - static constexpr char Saccharide =SACCHARIDE; - static constexpr char Water =WATER; - static constexpr char Unknown =UNKNOWN; - explicit ChemClass(char chem_class) - : chem_class_(chem_class) { - } + explicit ChemClass(Type chem_class): chem_class_(chem_class) { } + + explicit ChemClass(char type): chem_class_(Type(type)) { } + + ChemClass(): chem_class_(UNKNOWN) { } - ChemClass() - : chem_class_(UNKNOWN) { - } bool operator==(const ChemClass& cc) const { - return cc.chem_class_==chem_class_; + return cc.chem_class_ == chem_class_; } bool operator!=(const ChemClass& cc) const { - return !this->operator==(cc); + return !this->operator == (cc); } bool IsPeptideLinking() const { - return (chem_class_==ChemClass::PEPTIDE_LINKING || - chem_class_==ChemClass::D_PEPTIDE_LINKING || - chem_class_==ChemClass::L_PEPTIDE_LINKING); + return (chem_class_ == PEPTIDE_LINKING || + chem_class_ == D_PEPTIDE_LINKING || + chem_class_ == L_PEPTIDE_LINKING); } bool IsNucleotideLinking() const { - return (chem_class_==ChemClass::DNA_LINKING || - chem_class_==ChemClass::RNA_LINKING); + return (chem_class_ == DNA_LINKING || + chem_class_ == RNA_LINKING); } - bool IsWater() const { return chem_class_==ChemClass::WATER; } + bool IsWater() const { + return chem_class_ == WATER; + } + operator char() const { return chem_class_; } bool IsSaccharide() const { - return (chem_class_==ChemClass::SACCHARIDE || - chem_class_==ChemClass::L_SACCHARIDE || - chem_class_==ChemClass::D_SACCHARIDE); + return (chem_class_ == SACCHARIDE || + chem_class_ == L_SACCHARIDE || + chem_class_ == D_SACCHARIDE); } private: - char chem_class_; + Type chem_class_; }; }} // ns