1 #include "GffPlusRecord.h"
2 #include "SingleLineDelimTextFileReader.h"
3 
GffPlusRecord()4 GffPlusRecord::GffPlusRecord()
5 : _numPrintFields(0)
6 {
7 }
8 
~GffPlusRecord()9 GffPlusRecord::~GffPlusRecord() {
10 
11 }
12 
initFromFile(SingleLineDelimTextFileReader * fileReader)13 bool GffPlusRecord::initFromFile(SingleLineDelimTextFileReader *fileReader)
14 {
15 	if (!GffRecord::initFromFile(fileReader)) {
16 		return false;
17 	}
18 	_plusFields.setNumOffsetFields(GffRecord::getNumFields());
19 	return _plusFields.initFromFile(fileReader);
20 }
21 
22 
clear()23 void GffPlusRecord::clear() {
24 	GffRecord::clear();
25 	_plusFields.clear();
26 }
27 
print(string & outBuf) const28 void GffPlusRecord::print(string &outBuf) const
29 {
30 	GffRecord::print(outBuf);
31 	_plusFields.printFields(outBuf);
32 }
33 
print(string & outBuf,CHRPOS start,CHRPOS end) const34 void GffPlusRecord::print(string &outBuf, CHRPOS start, CHRPOS end) const
35 {
36 	GffRecord::print(outBuf, start, end);
37 	_plusFields.printFields(outBuf);
38 }
39 
print(string & outBuf,const string & start,const string & end) const40 void GffPlusRecord::print(string &outBuf, const string & start, const string & end) const
41 {
42 	GffRecord::print(outBuf, start, end);
43 	_plusFields.printFields(outBuf);
44 }
45 
46 
printNull(string & outBuf) const47 void GffPlusRecord::printNull(string &outBuf) const
48 {
49 	GffRecord::printNull(outBuf);
50 	for (int i=_numFields; i < _numPrintFields; i++) {
51 		outBuf.append("\t.");
52 	}
53 }
54 
getField(int fieldNum) const55 const string &GffPlusRecord::getField(int fieldNum) const
56 {
57 	if (fieldNum > _numFields) {
58 		return _plusFields.getField(fieldNum);
59 	}
60 	return GffRecord::getField(fieldNum);
61 }
62 
isNumericField(int fieldNum)63 bool GffPlusRecord::isNumericField(int fieldNum) {
64 
65 	if (fieldNum < 9) {
66 		return GffRecord::isNumericField(fieldNum);
67 	}
68 	return true;
69 }
70 
71