00001 #ifndef TRAPPER_DATA_INFO_H 00002 #define TRAPPER_DATA_INFO_H 00003 00004 #include "trappertypes.h" 00005 #include <string> 00006 00007 //Fwd stuff... 00008 class FeatureData; 00009 class SpatialFeatureData; 00010 class DnpData; 00011 class DnaStrData; 00012 class ChromatData; 00013 class QualityData; 00014 class TagData; 00015 00016 00017 /** \brief Base class for displaying info about reads and features. 00018 00019 */ 00020 00021 class FeatureInfo 00022 { 00023 public: 00024 FeatureInfo( SpatialFeatureData* data) : m_data(data) {} 00025 virtual ~FeatureInfo() {} 00026 std::string getPosInfo( TR_DNA pos ); 00027 std::string getRangeInfo( TR_DNA begin, TR_DNA end ); 00028 00029 protected: 00030 SpatialFeatureData* m_data; 00031 00032 virtual std::string myInfoPos( TR_DNA pos ); 00033 virtual std::string myInfoRange( TR_DNA begin, TR_DNA end ); 00034 00035 }; 00036 00037 //DnpData 00038 class DnpInfo : public FeatureInfo 00039 { 00040 public: 00041 DnpInfo( SpatialFeatureData* data ) : FeatureInfo(data) {} 00042 00043 std::string myInfoPos( TR_DNA pos ); 00044 std::string myInfoRange( TR_DNA begin, TR_DNA end ); 00045 00046 private: 00047 DnpData* dnpData(); 00048 00049 }; 00050 00051 00052 //DnaStrData 00053 class DnaStrInfo : public FeatureInfo 00054 { 00055 public: 00056 DnaStrInfo( SpatialFeatureData* data ) : FeatureInfo(data) {} 00057 00058 std::string myInfoPos( TR_DNA pos ); 00059 00060 private: 00061 DnaStrData* dnaStrData(); 00062 00063 }; 00064 00065 //QualityData 00066 class QualityInfo : public FeatureInfo 00067 { 00068 public: 00069 QualityInfo( SpatialFeatureData* data ) : FeatureInfo(data) {} 00070 00071 std::string myInfoPos( TR_DNA pos ); 00072 00073 private: 00074 QualityData* qualityData(); 00075 00076 }; 00077 00078 //TagData 00079 class TagInfo : public FeatureInfo 00080 { 00081 public: 00082 TagInfo( SpatialFeatureData* data ) : FeatureInfo(data) {} 00083 00084 std::string myInfoPos( TR_DNA pos ); 00085 00086 00087 private: 00088 TagData* tagData(); 00089 00090 }; 00091 00092 00093 #endif //TRAPPER_DATA_INFO_H