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 DnpData; 00010 class DnaStrData; 00011 class ChromatData; 00012 class QualityData; 00013 00014 00015 /** \brief Base class for displaying info about reads and features. 00016 00017 */ 00018 00019 class FeatureInfo 00020 { 00021 public: 00022 FeatureInfo( FeatureData* data) : m_data(data) {} 00023 virtual ~FeatureInfo() {} 00024 std::string getPosInfo( TR_DNA pos ); 00025 std::string getRangeInfo( TR_DNA begin, TR_DNA end ); 00026 00027 protected: 00028 FeatureData* m_data; 00029 00030 virtual std::string myInfoPos( TR_DNA pos ); 00031 virtual std::string myInfoRange( TR_DNA begin, TR_DNA end ); 00032 00033 }; 00034 00035 //DnpData 00036 class DnpInfo : public FeatureInfo 00037 { 00038 public: 00039 DnpInfo( FeatureData* data ) : FeatureInfo(data) {} 00040 00041 std::string myInfoPos( TR_DNA pos ); 00042 std::string myInfoRange( TR_DNA begin, TR_DNA end ); 00043 00044 private: 00045 DnpData* dnpData(); 00046 00047 }; 00048 00049 00050 //DnaStrData 00051 class DnaStrInfo : public FeatureInfo 00052 { 00053 public: 00054 DnaStrInfo( FeatureData* data ) : FeatureInfo(data) {} 00055 00056 std::string myInfoPos( TR_DNA pos ); 00057 00058 private: 00059 DnaStrData* dnaStrData(); 00060 00061 }; 00062 00063 //QualityData 00064 class QualityInfo : public FeatureInfo 00065 { 00066 public: 00067 QualityInfo( FeatureData* data ) : FeatureInfo(data) {} 00068 00069 std::string myInfoPos( TR_DNA pos ); 00070 00071 private: 00072 QualityData* qualityData(); 00073 00074 }; 00075 00076 00077 #endif //TRAPPER_DATA_INFO_H