00001 #ifndef _RAALIST_H_ 00002 #define _RAALIST_H_ 00003 #include <string> 00004 00005 namespace bpp { 00006 00007 class RAA; 00008 00016 class RaaList { 00017 friend class RAA; 00018 RAA *myraa; 00019 int rank; 00020 std::string name; 00021 const std::string *type; 00022 int from; 00023 std::string elementname; 00024 int elementlength; 00025 public: 00026 00030 static const std::string LIST_SEQUENCES; 00031 00035 static const std::string LIST_KEYWORDS; 00036 00040 static const std::string LIST_SPECIES; 00041 00045 int getCount(); 00046 00050 int firstElement(); 00051 00055 int nextElement(); 00056 00063 void setFrom(int element_rank); 00064 00068 std::string elementName() {return elementname; }; 00069 00073 int elementLength() {return elementlength; }; 00074 00080 std::string residueCount(); 00081 00085 void addElement(int rank); 00086 00090 void removeElement(int rank); 00091 00095 bool isInList(int rank); 00096 00100 void zeroList(); 00101 00105 int getRank() {return rank; }; 00106 00110 bool parentsOnly(); 00111 00117 std::string getType() {return *type; }; 00118 00122 std::string getName() {return name; }; 00123 00131 RaaList *modifyByLength(const std::string &criterion, const std::string &listname); 00132 00144 RaaList *modifyByDate(const std::string &criterion, const std::string &listname); 00145 private: 00146 RaaList(); 00147 }; 00148 00149 } //end of namespace bpp. 00150 00151 #endif //_RAALIST_H_ 00152