1 #include "PlusFields.h"
2 #include "SingleLineDelimTextFileReader.h"
3 
PlusFields()4 PlusFields::PlusFields()
5 {
6 }
7 
initFromFile(SingleLineDelimTextFileReader * fileReader)8 bool PlusFields::initFromFile(SingleLineDelimTextFileReader *fileReader)
9 {
10 	size_t numFields = fileReader->getNumFields() - _numOffsetFields;
11 
12 	if (size() != numFields) {
13 		_fields.resize(numFields);
14 	}
15 
16 	for (size_t i=0; i < numFields; i++) {
17 		fileReader->getField((int)(i + _numOffsetFields), _fields[i]);
18 	}
19 	return true;
20 }
21 
clear()22 void PlusFields::clear() {
23 	//don't destroy the strings if we don't have to. Just clear their memory.
24 	for (int i=0; i < (int)_fields.size(); i++) {
25 		_fields[i].clear();
26 	}
27 }
28 
getField(int fieldNum) const29 const string &PlusFields::getField(int fieldNum) const
30 {
31 	return _fields[fieldNum - _numOffsetFields - 1];
32 }
33 
printFields(string & outBuf) const34 void PlusFields::printFields(string &outBuf) const {
35 	for (size_t i=0; i < size(); i++) {
36 		outBuf.append(_fields[i]);
37 		if (i < size() - 1) outBuf.append("\t");
38 	}
39 }
40