/***********************************************************************/
-SequenceDB::SequenceDB() {}
+SequenceDB::SequenceDB() { m = MothurOut::getInstance(); }
/***********************************************************************/
//the clear function free's the memory
SequenceDB::~SequenceDB() { clear(); }
/***********************************************************************/
SequenceDB::SequenceDB(int newSize) {
- data.resize(newSize, NULL);
+ data.resize(newSize, Sequence());
}
/***********************************************************************/
SequenceDB::SequenceDB(ifstream& filehandle) {
try{
- string name, sequence, line;
- sequence = "";
- int c;
- string temp;
-
-
+
//read through file
- while ((c = filehandle.get()) != EOF) {
- name = ""; sequence = "";
- //is this a name
- if (c == '>') {
- name = readName(filehandle);
- sequence = readSequence(filehandle);
- }else { cout << "Error fasta in your file. Please correct." << endl; }
-
+ while (!filehandle.eof()) {
//input sequence info into sequencedb
- Sequence* newSequence = new Sequence(name, sequence);
- data.push_back(newSequence);
+ Sequence newSequence(filehandle);
+
+ if (newSequence.getName() != "") { data.push_back(newSequence); }
//takes care of white space
- gobble(filehandle);
+ m->gobble(filehandle);
}
filehandle.close();
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function SequenceDB. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SequenceDB class function SequenceDB. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SequenceDB", "SequenceDB");
exit(1);
}
}
return name;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function readName. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SequenceDB class function readName. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SequenceDB", "readName");
exit(1);
}
}
return sequence;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function readSequence. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SequenceDB class function readSequence. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SequenceDB", "readSequence");
exit(1);
}
}
void SequenceDB::set(int index, string newUnaligned) {
try {
- if (data[index] != NULL) { delete data[index]; } //free memory
-
- Sequence* newSeq = new Sequence(data[index]->getName(), newUnaligned);
- data[index] = newSeq;
+ data[index] = Sequence(data[index].getName(), newUnaligned);
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SequenceDB class function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SequenceDB", "set");
exit(1);
}
}
/***********************************************************************/
-void SequenceDB::set(int index, Sequence* newSeq) {
+void SequenceDB::set(int index, Sequence newSeq) {
try {
- if (data[index] != NULL) { delete data[index]; } //free memory
data[index] = newSeq;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SequenceDB class function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SequenceDB", "set");
exit(1);
}
}
/***********************************************************************/
-Sequence* SequenceDB::get(int index) {
+Sequence SequenceDB::get(int index) {
return data[index];
}
void SequenceDB::resize(int newSize) {
try {
- int size = data.size();
-
- for (int i = size; i > newSize; i--) { delete data[i]; }
data.resize(newSize);
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function resize. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SequenceDB class function resize. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SequenceDB", "resize");
exit(1);
}
}
void SequenceDB::clear() {
try {
- for (int i = 0; i < data.size(); i++) { delete data[i]; }
data.clear();
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function clear. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SequenceDB class function clear. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SequenceDB", "clear");
exit(1);
}
}
void SequenceDB::print(ostream& out) {
try {
for(int i = 0; i < data.size(); i++) {
- data[i]->printSequence(out);
+ data[i].printSequence(out);
}
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SequenceDB class function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SequenceDB", "print");
exit(1);
}
}
/***********************************************************************/
-void SequenceDB::push_back(Sequence* newSequence) {
+void SequenceDB::push_back(Sequence newSequence) {
try {
data.push_back(newSequence);
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SequenceDB class Function add. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SequenceDB class function add. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SequenceDB", "push_back");
exit(1);
}
}