1 /* 2 * Bed3Interval.h 3 * 4 * Created on: Nov 8, 2012 5 * Author: nek3d 6 */ 7 8 #ifndef BED3INTERVAL_H_ 9 #define BED3INTERVAL_H_ 10 11 #include "Record.h" 12 #include "ParseTools.h" 13 #include "string.h" 14 15 class FileReader; 16 class SingleLineDelimTextFileReader; 17 18 19 class Bed3Interval : public Record { 20 public: 21 friend class FreeList<Bed3Interval>; 22 23 Bed3Interval(); 24 bool initFromFile(FileReader *); 25 virtual bool initFromFile(SingleLineDelimTextFileReader *); 26 virtual void print(string &outBuf) const; 27 virtual void print(string &outBuf, CHRPOS start, CHRPOS end) const; 28 virtual void print(string &outBuf, const string & start, const string & end) const; 29 virtual void printNull(string &outBuf) const; getType()30 virtual FileRecordTypeChecker::RECORD_TYPE getType() const { return FileRecordTypeChecker::BED3_RECORD_TYPE; } 31 32 virtual const string &getField(int fieldNum) const; getNumFields()33 virtual int getNumFields() const { return 3; } 34 35 static bool isNumericField(int fieldNum); 36 virtual ~Bed3Interval(); 37 38 protected: 39 40 bool _skipFirstThreeFieldsWhenPrinting; 41 42 }; 43 44 45 #endif /* BED3INTERVAL_H_ */ 46