00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 #ifndef __Feature_AMOS_HH 00011 #define __Feature_AMOS_HH 1 00012 00013 #include "Universal_AMOS.hh" 00014 00015 00016 00017 00018 namespace AMOS { 00019 00020 typedef char FeatureType_t; 00021 00022 //====================================================== Feature_t ============= 00030 //============================================================================== 00031 class Feature_t : public Universal_t 00032 { 00033 00034 private: 00035 00036 std::pair<ID_t, NCode_t> source_m; 00037 Range_t range_m; 00038 FeatureType_t type_m; 00039 00040 00041 protected: 00042 00043 //--------------------------------------------------- readRecord ------------- 00044 virtual void readRecord (std::istream & fix, std::istream & var); 00045 00046 00047 //--------------------------------------------------- writeRecord ------------ 00048 virtual void writeRecord (std::ostream & fix, std::ostream & var) const; 00049 00050 00051 public: 00052 00053 static const NCode_t NCODE; 00055 00056 static const FeatureType_t NULL_FEATURE; 00057 static const FeatureType_t REPEAT; 00058 static const FeatureType_t UNITIG; 00059 static const FeatureType_t JOIN; 00060 static const FeatureType_t COVERAGE; 00061 static const FeatureType_t ORF; 00062 static const FeatureType_t POLYMORPHISM; 00063 00064 00065 //--------------------------------------------------------- Feature_t -------- 00070 Feature_t ( ) 00071 { 00072 source_m . first = NULL_ID; 00073 source_m . second = NULL_NCODE; 00074 type_m = NULL_FEATURE; 00075 } 00076 00077 00078 //--------------------------------------------------------- Feature_t -------- 00081 Feature_t (const Feature_t & source) 00082 { 00083 *this = source; 00084 } 00085 00086 00087 //--------------------------------------------------------- ~Feature_t ------- 00090 ~Feature_t ( ) 00091 { 00092 00093 } 00094 00095 00096 //--------------------------------------------------- clear ------------------ 00097 virtual void clear ( ) 00098 { 00099 source_m . first = NULL_ID; 00100 source_m . second = NULL_NCODE; 00101 range_m . clear( ); 00102 type_m = NULL_FEATURE; 00103 } 00104 00105 00106 //--------------------------------------------------- getNCode --------------- 00107 virtual NCode_t getNCode ( ) const 00108 { 00109 return Feature_t::NCODE; 00110 } 00111 00112 00113 //--------------------------------------------------- getRange --------------- 00118 Range_t getRange ( ) const 00119 { 00120 return range_m; 00121 } 00122 00123 00124 //--------------------------------------------------- getSource -------------- 00133 std::pair<ID_t, NCode_t> getSource ( ) const 00134 { 00135 return source_m; 00136 } 00137 00138 00139 //--------------------------------------------------- getType ---------------- 00144 FeatureType_t getType ( ) const 00145 { 00146 return type_m; 00147 } 00148 00149 00150 //--------------------------------------------------- setRange --------------- 00156 void setRange (Range_t range) 00157 { 00158 range_m = range; 00159 } 00160 00161 00162 //--------------------------------------------------- setSource -------------- 00168 void setSource (std::pair<ID_t, NCode_t> source) 00169 { 00170 source_m = source; 00171 } 00172 00173 00174 //--------------------------------------------------- setType ---------------- 00180 void setType (FeatureType_t type) 00181 { 00182 type_m = type; 00183 } 00184 00185 00186 //--------------------------------------------------- readMessage ------------ 00187 virtual void readMessage (const Message_t & msg); 00188 00189 00190 //--------------------------------------------------- writeMessage ----------- 00191 virtual void writeMessage (Message_t & msg) const; 00192 00193 }; 00194 00195 } // namespace AMOS 00196 00197 #endif // #ifndef __Feature_AMOS_HH