Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages

CVTerm.h

Go to the documentation of this file.
00001 // --------------------------------------------------------------------------
00002 //                   OpenMS -- Open-Source Mass Spectrometry
00003 // --------------------------------------------------------------------------
00004 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
00005 // ETH Zurich, and Freie Universitaet Berlin 2002-2012.
00006 //
00007 // This software is released under a three-clause BSD license:
00008 //  * Redistributions of source code must retain the above copyright
00009 //    notice, this list of conditions and the following disclaimer.
00010 //  * Redistributions in binary form must reproduce the above copyright
00011 //    notice, this list of conditions and the following disclaimer in the
00012 //    documentation and/or other materials provided with the distribution.
00013 //  * Neither the name of any author or any participating institution
00014 //    may be used to endorse or promote products derived from this software
00015 //    without specific prior written permission.
00016 // For a full list of authors, refer to the file AUTHORS.
00017 // --------------------------------------------------------------------------
00018 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00019 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00020 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00021 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
00022 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00023 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00024 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00025 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00026 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00027 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
00028 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00029 //
00030 // --------------------------------------------------------------------------
00031 // $Maintainer: Andreas Bertsch $
00032 // $Authors: Andreas Bertsch $
00033 // --------------------------------------------------------------------------
00034 
00035 #ifndef OPENMS_METADATA_CVTERM_H
00036 #define OPENMS_METADATA_CVTERM_H
00037 
00038 #include <OpenMS/DATASTRUCTURES/String.h>
00039 #include <OpenMS/DATASTRUCTURES/DataValue.h>
00040 
00041 namespace OpenMS
00042 {
00050 
00051   class OPENMS_DLLAPI CVTerm
00052   {
00053 public:
00054 
00055 
00056     struct Unit
00057     {
00058       Unit()
00059       {
00060       }
00061 
00062       Unit(const String & p_accession, const String & p_name, const String & p_cv_ref) :
00063         accession(p_accession),
00064         name(p_name),
00065         cv_ref(p_cv_ref)
00066       {
00067       }
00068 
00069       Unit(const Unit & rhs) :
00070         accession(rhs.accession),
00071         name(rhs.name),
00072         cv_ref(rhs.cv_ref)
00073       {
00074       }
00075 
00076       virtual ~Unit()
00077       {
00078       }
00079 
00080       Unit & operator=(const Unit & rhs)
00081       {
00082         if (this != &rhs)
00083         {
00084           accession = rhs.accession;
00085           name = rhs.name;
00086           cv_ref = rhs.cv_ref;
00087         }
00088         return *this;
00089       }
00090 
00091       bool operator==(const Unit & rhs) const
00092       {
00093         return accession == rhs.accession &&
00094                name == rhs.name &&
00095                cv_ref == rhs.cv_ref;
00096       }
00097 
00098       bool operator!=(const Unit & rhs) const
00099       {
00100         return !(*this == rhs);
00101       }
00102 
00103       String accession;
00104       String name;
00105       String cv_ref;
00106     };
00107 
00108 
00110     CVTerm();
00111 
00113     CVTerm(const String & accession, const String & name, const String & cv_identifier_ref, const String & value, const Unit & unit);
00114 
00116     CVTerm(const CVTerm & rhs);
00117 
00119     virtual ~CVTerm();
00120 
00122     CVTerm & operator=(const CVTerm & rhs);
00123 
00127 
00128     void setAccession(const String & accession);
00129 
00131     const String & getAccession() const;
00132 
00134     void setName(const String & name);
00135 
00137     const String & getName() const;
00138 
00140     void setCVIdentifierRef(const String & cv_identifier_ref);
00141 
00143     const String & getCVIdentifierRef() const;
00144 
00146     void setValue(const DataValue & value);
00147 
00149     const DataValue & getValue() const;
00150 
00152     void setUnit(const Unit & unit);
00153 
00155     const Unit & getUnit() const;
00157 
00161 
00162     bool operator==(const CVTerm & rhs) const;
00163 
00165     bool operator!=(const CVTerm & rhs) const;
00166 
00168     bool hasValue() const;
00169 
00171     bool hasUnit() const;
00172     //}
00173 
00174 protected:
00175 
00176     String accession_;
00177 
00178     String name_;
00179 
00180     String cv_identifier_ref_;
00181 
00182     Unit unit_;
00183 
00184     DataValue value_;
00185   };
00186 
00187 } // namespace OpenMS
00188 
00189 #endif // OPENMS_DATASTRUCTURES_CVTERM_H

OpenMS / TOPP release 1.10.0 Documentation generated on Thu Mar 7 2013 09:42:38 using doxygen 1.7.1