]> git.donarmstrong.com Git - mothur.git/blobdiff - inputdata.cpp
added sort parameter to get.otulist
[mothur.git] / inputdata.cpp
index cbf44ed11a96a03c251fcc3025b185c2020c2830..65685d6a7e13c09f6563ebb3c2ea3f78dd3fd937 100644 (file)
@@ -15,7 +15,7 @@
 /***********************************************************************/
 
 InputData::InputData(string fName, string f) : format(f){
-       
+       m = MothurOut::getInstance();
        openInputFile(fName, fileHandle);
        filename = fName;
        
@@ -34,7 +34,7 @@ InputData::~InputData(){
 
 InputData::InputData(string fName, string orderFileName, string f) : format(f){
        try {
-               
+               m = MothurOut::getInstance();
                ifstream ofHandle;
                openInputFile(orderFileName, ofHandle);
                string name;
@@ -52,7 +52,7 @@ InputData::InputData(string fName, string orderFileName, string f) : format(f){
                openInputFile(fName, fileHandle);
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "InputData");
+               m->errorOut(e, "InputData", "InputData");
                exit(1);
        }
 }
@@ -60,10 +60,10 @@ InputData::InputData(string fName, string orderFileName, string f) : format(f){
 
 ListVector* InputData::getListVector(){
        try {
-               if(fileHandle){
+               if(!fileHandle.eof()){
                        if(format == "list") {
                                list = new ListVector(fileHandle);
-                       }
+                       }else{ list = NULL;  }
                                        
                        gobble(fileHandle);
                        return list;
@@ -73,13 +73,12 @@ ListVector* InputData::getListVector(){
                }
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getListVector");
+               m->errorOut(e, "InputData", "getListVector");
                exit(1);
        }
 }
 
 /***********************************************************************/
-
 ListVector* InputData::getListVector(string label){
        try {
                ifstream in;
@@ -101,7 +100,7 @@ ListVector* InputData::getListVector(string label){
                                        else {  delete list;    }
                                        gobble(in);
                                }
-                       }
+                       }else{ list = NULL;  }
                        
                        in.close();
                        return list;
@@ -111,11 +110,44 @@ ListVector* InputData::getListVector(string label){
                }
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getListVector");
+               m->errorOut(e, "InputData", "getListVector");
                exit(1);
        }
 }
+/***********************************************************************/
+ListVector* InputData::getListVector(string label, bool resetFP){
+       try {
+               string  thisLabel;
+               fileHandle.clear();
+               fileHandle.seekg(0);
+               
+               if(fileHandle){
 
+                       if (format == "list") {
+                       
+                               while (fileHandle.eof() != true) {
+                                       
+                                       list = new ListVector(fileHandle); gobble(fileHandle);
+                                       thisLabel = list->getLabel();
+                                       
+                                       //if you are at the last label
+                                       if (thisLabel == label) {  break;  }
+                                       //so you don't loose this memory
+                                       else {  delete list;    }
+                               }
+                       }else{ list = NULL;  }
+               
+                       return list;
+               }
+               else{
+                       return NULL;
+               }
+       }
+       catch(exception& e) {
+               m->errorOut(e, "InputData", "getListVector");
+               exit(1);
+       }
+}
 
 /***********************************************************************/
 
@@ -124,7 +156,7 @@ SharedListVector* InputData::getSharedListVector(){
                if(fileHandle){
                        if (format == "shared")  {
                                SharedList = new SharedListVector(fileHandle);
-                       }
+                       }else{ SharedList = NULL;  }
                                        
                        gobble(fileHandle);
                        return SharedList;
@@ -134,7 +166,7 @@ SharedListVector* InputData::getSharedListVector(){
                }
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getSharedListVector");
+               m->errorOut(e, "InputData", "getSharedListVector");
                exit(1);
        }
 }
@@ -162,7 +194,7 @@ SharedListVector* InputData::getSharedListVector(string label){
                                        gobble(in);
                                }
 
-                       }
+                       }else{ SharedList = NULL;  }
                                
                        in.close();
                        return SharedList;
@@ -172,7 +204,7 @@ SharedListVector* InputData::getSharedListVector(string label){
                }
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getSharedListVector");
+               m->errorOut(e, "InputData", "getSharedListVector");
                exit(1);
        }
 }
@@ -186,7 +218,7 @@ SharedOrderVector* InputData::getSharedOrderVector(){
                if(fileHandle){
                        if (format == "sharedfile")  {
                                SharedOrder = new SharedOrderVector(fileHandle);
-                       }
+                       }else{ SharedOrder = NULL;  }
                                
                        gobble(fileHandle);
                        return SharedOrder;
@@ -196,7 +228,7 @@ SharedOrderVector* InputData::getSharedOrderVector(){
                }
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getSharedOrderVector");
+               m->errorOut(e, "InputData", "getSharedOrderVector");
                exit(1);
        }
 }
@@ -225,7 +257,7 @@ SharedOrderVector* InputData::getSharedOrderVector(string label){
                                        gobble(in);
                                }
 
-                       }
+                       }else{ SharedOrder = NULL;  }
                                
                        in.close();
                        return SharedOrder;
@@ -235,7 +267,7 @@ SharedOrderVector* InputData::getSharedOrderVector(string label){
                }
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getSharedOrderVector");
+               m->errorOut(e, "InputData", "getSharedOrderVector");
                exit(1);
        }
 }
@@ -262,11 +294,12 @@ OrderVector* InputData::getOrderVector(){
                        else if(format == "sabund"){
                                input = new SAbundVector(fileHandle);
                        }
-                                       
+                       
                        gobble(fileHandle);
-                       output = new OrderVector();
-                       *output = (input->getOrderVector());
                        
+                       output = new OrderVector();     
+                       *output = (input->getOrderVector());
+               
                        return output;
                }
                else{
@@ -274,7 +307,7 @@ OrderVector* InputData::getOrderVector(){
                }
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getOrderVector");
+               m->errorOut(e, "InputData", "getOrderVector");
                exit(1);
        }
 }
@@ -377,7 +410,7 @@ OrderVector* InputData::getOrderVector(string label){
                }
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getOrderVector");
+               m->errorOut(e, "InputData", "getOrderVector");
                exit(1);
        }
 }
@@ -407,7 +440,7 @@ vector<SharedRAbundVector*> InputData::getSharedRAbundVectors(){
                
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getSharedRAbundVectors");
+               m->errorOut(e, "InputData", "getSharedRAbundVectors");
                exit(1);
        }
 }
@@ -465,7 +498,7 @@ vector<SharedRAbundVector*> InputData::getSharedRAbundVectors(string label){
        
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getSharedRAbundVectors");
+               m->errorOut(e, "InputData", "getSharedRAbundVectors");
                exit(1);
        }
 }
@@ -504,7 +537,7 @@ SAbundVector* InputData::getSAbundVector(){
                }
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getSAbundVector");
+               m->errorOut(e, "InputData", "getSAbundVector");
                exit(1);
        }
 }
@@ -606,7 +639,7 @@ SAbundVector* InputData::getSAbundVector(string label){
                }
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getSAbundVector");
+               m->errorOut(e, "InputData", "getSAbundVector");
                exit(1);
        }
 }
@@ -643,7 +676,7 @@ RAbundVector* InputData::getRAbundVector(){
                }
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getRAbundVector");
+               m->errorOut(e, "InputData", "getRAbundVector");
                exit(1);
        }
 }
@@ -744,7 +777,7 @@ RAbundVector* InputData::getRAbundVector(string label){
                }
        }
        catch(exception& e) {
-               errorOut(e, "InputData", "getRAbundVector");
+               m->errorOut(e, "InputData", "getRAbundVector");
                exit(1);
        }
 }