3 #include "nameassignment.hpp"
5 //**********************************************************************************************************************
7 NameAssignment::NameAssignment(string nameMapFile){
8 m = MothurOut::getInstance();
9 m->openInputFile(nameMapFile, fileHandle);
13 //**********************************************************************************************************************
15 void NameAssignment::readMap(){
17 string firstCol, secondCol, skip;
21 map<string, int>::iterator itData;
25 fileHandle >> firstCol; //read from first column
26 fileHandle >> secondCol; //read from second column
28 itData = (*this).find(firstCol);
29 if (itData == (*this).end()) {
31 (*this)[firstCol] = rowIndex++;
32 list.push_back(secondCol); //adds data's value to list
33 reverse[rowIndex] = firstCol;
35 }else{ m->mothurOut(firstCol + " is already in namesfile. I will use first definition."); m->mothurOutEndLine(); }
37 m->gobble(fileHandle);
43 m->errorOut(e, "NameAssignment", "readMap");
47 //**********************************************************************************************************************
48 void NameAssignment::push_back(string name) {
51 int num = (*this).size();
58 m->errorOut(e, "NameAssignment", "push_back");
63 //**********************************************************************************************************************
65 ListVector NameAssignment::getListVector(void){
71 //**********************************************************************************************************************
73 void NameAssignment::print(ostream& out){
75 map<string,int>::iterator it;
76 //cout << (*this).size() << endl;
77 for(it = (*this).begin(); it!=(*this).end(); it++){
78 out << it->first << '\t' << it->second << endl; //prints out keys and values of the map this.
79 //out << it->first << '\t' << it->first << endl;
83 m->errorOut(e, "NameAssignment", "print");
88 //**********************************************************************************************************************
90 int NameAssignment::get(string key){
92 map<string, int>::iterator itGet = (*this).find(key);
94 //if you can't find it
95 if (itGet == (*this).end()) { return -1; }
100 m->errorOut(e, "NameAssignment", "get");
104 //**********************************************************************************************************************
106 string NameAssignment::get(int key){
109 map<int, string>::iterator itGet = reverse.find(key);
111 if (itGet == reverse.end()) { return "not found"; }
116 catch(exception& e) {
117 m->errorOut(e, "NameAssignment", "get");
121 //**********************************************************************************************************************