//reads a shared file
SharedRAbundVector::SharedRAbundVector(ifstream& f) : DataVector(), maxRank(0), numBins(0), numSeqs(0) {
try {
- m->namesOfGroups.clear();
-
+ m->clearAllGroups();
+ vector<string> allGroups;
+
int num, inputData, count;
count = 0;
string holdLabel, nextLabel, groupN;
lookup[0]->setLabel(label);
lookup[0]->setGroup(groupN);
- m->namesOfGroups.push_back(groupN);
+ allGroups.push_back(groupN);
//fill vector. data = first sharedrabund in file
for(int i=0;i<num;i++){
f >> groupN >> num;
count++;
- m->namesOfGroups.push_back(groupN);
+ allGroups.push_back(groupN);
//add new vector to lookup
temp = new SharedRAbundVector();
if (f.eof() != true) { f >> nextLabel; }
}
- m->saveNextLabel = nextLabel;
+ m->saveNextLabel = nextLabel;
+ m->setAllGroups(allGroups);
}
catch(exception& e) {
SharedUtil* util;
util = new SharedUtil();
- util->setGroups(m->Groups, m->namesOfGroups);
+ vector<string> Groups = m->getGroups();
+ vector<string> allGroups = m->getAllGroups();
+ util->setGroups(Groups, allGroups);
bool remove = false;
for (int i = 0; i < lookup.size(); i++) {
//if this sharedrabund is not from a group the user wants then delete it.
- if (util->isValidGroup(lookup[i]->getGroup(), m->Groups) == false) {
+ if (util->isValidGroup(lookup[i]->getGroup(), m->getGroups()) == false) {
remove = true;
delete lookup[i]; lookup[i] = NULL;
lookup.erase(lookup.begin()+i);