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