-using namespace std;
-#include <string>
-#include <map>
-#include <exception>
#include "nameassignment.hpp"
//**********************************************************************************************************************
-void NameAssignment::readMap(int colA, int colB){
+void NameAssignment::readMap(){
try{
string firstCol, secondCol, skip;
// int index = 0;
- int skipNCols = colB-colA-1;
-
- map<string, string> data;
+// map<string, string> data;
+ int rowIndex = 0;
+
while(fileHandle){
fileHandle >> firstCol; //read from first column
-
- for(int i=0;i<skipNCols;i++){ //allows for anticipated file format
- fileHandle >> skip;
- }
-
fileHandle >> secondCol; //read from second column
-
- data[firstCol] = secondCol; //store data in map
-
+
+// data[firstCol] = secondCol; //store data in map
+
+ list.push_back(secondCol); //adds data's value to list
+ reverse[rowIndex] = firstCol;
+ (*this)[firstCol] = rowIndex++;
gobble(fileHandle);
}
fileHandle.close();
- int rowIndex = 0;
- map<string, string>::iterator it = data.begin();
- for(it;it!=data.end();it++){
- list.push_back(it->second); //adds data's value to list
- (*this)[it->first] = rowIndex;
- rowIndex++;
- }
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the NameAssignment class Function readMap. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ errorOut(e, "NameAssignment", "readMap");
exit(1);
}
- catch(...) {
- cout << "An unknown error has occurred in the NameAssignment class function readMap. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+}
+//**********************************************************************************************************************
+void NameAssignment::push_back(string name) {
+ try{
+
+ int num = (*this).size();
+ (*this)[name] = num;
+ reverse[num] = name;
+
+ list.push_back(name);
+ }
+ catch(exception& e) {
+ errorOut(e, "NameAssignment", "push_back");
exit(1);
}
}
//**********************************************************************************************************************
-void NameAssignment::print(void){
+void NameAssignment::print(ostream& out){
try {
- map<string,int>::iterator it = (*this).begin();
- for(it;it!=(*this).end();it++){
- cout << it->first << '\t' << it->second << endl; //prints out keys and values of the map this.
+ map<string,int>::iterator it;
+//cout << (*this).size() << endl;
+ for(it = (*this).begin(); it!=(*this).end(); it++){
+ out << it->first << '\t' << it->second << endl; //prints out keys and values of the map this.
}
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the NameAssignment class Function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the NameAssignment class function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ errorOut(e, "NameAssignment", "print");
exit(1);
}
}
return (*this)[key];
}
+//**********************************************************************************************************************
+string NameAssignment::get(int key){
+
+ return reverse[key];
+
+}
//**********************************************************************************************************************