]> git.donarmstrong.com Git - mothur.git/blob - nameassignment.cpp
created mothurOut class to handle logfiles
[mothur.git] / nameassignment.cpp
1
2
3 #include "nameassignment.hpp"
4
5 //**********************************************************************************************************************
6
7 NameAssignment::NameAssignment(string nameMapFile){
8         m = MothurOut::getInstance();
9         openInputFile(nameMapFile, fileHandle);
10         
11 }
12
13 //**********************************************************************************************************************
14
15 void NameAssignment::readMap(){
16         try{
17                 string firstCol, secondCol, skip;
18         //      int index = 0;
19         
20         
21 //              map<string, string> data;
22                 int rowIndex = 0;
23
24                 while(fileHandle){
25                         fileHandle >> firstCol;                         //read from first column
26                         fileHandle >> secondCol;                        //read from second column
27                         
28 //                      data[firstCol] = secondCol;                     //store data in map
29
30                         list.push_back(secondCol);              //adds data's value to list
31                         reverse[rowIndex] = firstCol;
32                         (*this)[firstCol] = rowIndex++;
33                         gobble(fileHandle);
34                 }
35                 fileHandle.close();
36         
37         }
38         catch(exception& e) {
39                 m->errorOut(e, "NameAssignment", "readMap");
40                 exit(1);
41         }
42 }
43 //**********************************************************************************************************************
44 void NameAssignment::push_back(string name) {
45         try{
46         
47                 int num = (*this).size();
48                 (*this)[name] = num;
49                 reverse[num] = name;
50                 
51                 list.push_back(name);
52         }
53         catch(exception& e) {
54                 m->errorOut(e, "NameAssignment", "push_back");
55                 exit(1);
56         }
57 }
58
59 //**********************************************************************************************************************
60
61 ListVector NameAssignment::getListVector(void){
62
63         return list;
64         
65 }
66
67 //**********************************************************************************************************************
68
69 void NameAssignment::print(ostream& out){
70         try {
71                 map<string,int>::iterator it;
72 //cout << (*this).size() << endl;
73                 for(it = (*this).begin(); it!=(*this).end(); it++){
74                         out << it->first << '\t' <<  it->second << endl;  //prints out keys and values of the map this.
75                 }
76         }
77         catch(exception& e) {
78                 m->errorOut(e, "NameAssignment", "print");
79                 exit(1);
80         }
81 }
82
83 //**********************************************************************************************************************
84
85 int NameAssignment::get(string key){
86         
87         return  (*this)[key];   
88
89 }
90 //**********************************************************************************************************************
91
92 string NameAssignment::get(int key){
93         
94         return  reverse[key];   
95
96 }
97 //**********************************************************************************************************************
98