00001 ///////////////////////////////////////////////////////////////////////////// 00002 // File: gnBaseQualifier.h 00003 // Purpose: abstract Qualifier class 00004 // Description: Provides an interface for Qualifiers in memory and on disk. 00005 // Changes: 00006 // Version: libGenome 0.5.1 00007 // Author: Aaron Darling 00008 // Modified by: 00009 // Copyright: (c) Aaron Darling 00010 // Licenses: See COPYING file for details 00011 ///////////////////////////////////////////////////////////////////////////// 00012 #ifndef _gnBaseQualifier_h_ 00013 #define _gnBaseQualifier_h_ 00014 00015 #include "gn/gnDefs.h" 00016 00017 #include <string> 00018 #include "gn/gnClone.h" 00019 00020 /** 00021 * gnBaseQualifier is a general interface to sequence qualifiers. 00022 * gnBaseFeature uses qualifiers to store annotated sequences. 00023 * Use gnStringQualifier for a general purpose qualifier class. 00024 */ 00025 class GNDLLEXPORT gnBaseQualifier : public gnClone 00026 { 00027 public: 00028 gnBaseQualifier(){} 00029 virtual ~gnBaseQualifier(){} 00030 virtual gnBaseQualifier* Clone() const = 0; 00031 /** 00032 * Get the name of qualifier stored in this class. 00033 * @return The qualifier name as a string. 00034 */ 00035 virtual string GetName() const = 0; 00036 /** 00037 * Get the qualifier stored in this class. 00038 * @return The qualifier as a string. 00039 */ 00040 virtual string GetValue() const = 0; 00041 00042 /** 00043 * Get the length of the qualifier name stored in this class. 00044 * @return The length of the qualifier name. 00045 */ 00046 virtual uint32 GetNameLength() const = 0; 00047 /** 00048 * Get the length of the qualifier stored in this class. 00049 * @return The length of the qualifier. 00050 */ 00051 virtual uint32 GetValueLength() const = 0; 00052 private: 00053 }; //class gnBaseQualifier 00054 00055 #endif 00056 // _gnBaseQualifier_h_ 00057