]> git.donarmstrong.com Git - bamtools.git/blob - src/api/SamReadGroup.cpp
Added explicit copy ctors to SamHeader data structures
[bamtools.git] / src / api / SamReadGroup.cpp
1 // ***************************************************************************
2 // SamReadGroup.cpp (c) 2010 Derek Barnett
3 // Marth Lab, Department of Biology, Boston College
4 // All rights reserved.
5 // ---------------------------------------------------------------------------
6 // Last modified: 23 December 2010 (DB)
7 // ---------------------------------------------------------------------------
8 // Provides functionality for querying/manipulating read group data
9 // **************************************************************************
10
11 #include <api/SamReadGroup.h>
12 using namespace BamTools;
13 using namespace std;
14
15 // default ctor
16 SamReadGroup::SamReadGroup(void)
17     : ID("")
18     , Sample("")
19     , Library("")
20     , Description("")
21     , PlatformUnit("")
22     , PredictedInsertSize("")
23     , SequencingCenter("")
24     , ProductionDate("")
25     , SequencingTechnology("")
26 { }
27
28 // ctor with provided ID
29 SamReadGroup::SamReadGroup(const string& id)
30     : ID(id)
31     , Sample("")
32     , Library("")
33     , Description("")
34     , PlatformUnit("")
35     , PredictedInsertSize("")
36     , SequencingCenter("")
37     , ProductionDate("")
38     , SequencingTechnology("")
39 { }
40
41 // copy ctor
42 SamReadGroup::SamReadGroup(const SamReadGroup& other)
43     : ID(other.ID)
44     , Sample(other.Sample)
45     , Library(other.Library)
46     , Description(other.Description)
47     , PlatformUnit(other.PlatformUnit)
48     , PredictedInsertSize(other.PredictedInsertSize)
49     , SequencingCenter(other.SequencingCenter)
50     , ProductionDate(other.ProductionDate)
51     , SequencingTechnology(other.SequencingTechnology)
52 { }
53
54 // dtor
55 SamReadGroup::~SamReadGroup(void) {
56     Clear();
57 }
58
59 // clear all contents
60 void SamReadGroup::Clear(void) {
61     ID.clear();
62     Sample.clear();
63     Library.clear();
64     Description.clear();
65     PlatformUnit.clear();
66     PredictedInsertSize.clear();
67     SequencingCenter.clear();
68     ProductionDate.clear();
69     SequencingTechnology.clear();
70 }
71
72 // convenience methods to check if SamReadGroup contains these values:
73 bool SamReadGroup::HasID(void) const                   { return (!ID.empty());                   }
74 bool SamReadGroup::HasSample(void) const               { return (!Sample.empty());               }
75 bool SamReadGroup::HasLibrary(void) const              { return (!Library.empty());              }
76 bool SamReadGroup::HasDescription(void) const          { return (!Description.empty());          }
77 bool SamReadGroup::HasPlatformUnit(void) const         { return (!PlatformUnit.empty());         }
78 bool SamReadGroup::HasPredictedInsertSize(void) const  { return (!PredictedInsertSize.empty());  }
79 bool SamReadGroup::HasSequencingCenter(void) const     { return (!SequencingCenter.empty());     }
80 bool SamReadGroup::HasProductionDate(void) const       { return (!ProductionDate.empty());       }
81 bool SamReadGroup::HasSequencingTechnology(void) const { return (!SequencingTechnology.empty()); }