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