]> git.donarmstrong.com Git - bamtools.git/blob - src/api/SamProgram.cpp
Cleaned up intra-API includes & moved version numbers to 2.0.0
[bamtools.git] / src / api / SamProgram.cpp
1 // ***************************************************************************
2 // SamProgram.cpp (c) 2011 Derek Barnett
3 // Marth Lab, Department of Biology, Boston College
4 // ---------------------------------------------------------------------------
5 // Last modified: 10 October 2011 (DB)
6 // ---------------------------------------------------------------------------
7 // Provides direct read/write access to the SAM header program records.
8 // ***************************************************************************
9
10 #include "api/SamProgram.h"
11 using namespace BamTools;
12 using namespace std;
13
14 /*! \struct BamTools::SamProgram
15     \brief Represents a SAM program record.
16
17     Provides direct read/write access to the SAM header program records.
18
19     \sa \samSpecURL
20 */
21 /*! \var SamProgram::CommandLine
22     \brief corresponds to \@PG CL:\<CommandLine\>
23 */
24 /*! \var SamProgram::ID
25     \brief corresponds to \@PG ID:\<ID\>
26
27     Required for valid SAM header.
28 */
29 /*! \var SamProgram::Name
30     \brief corresponds to \@PG PN:\<Name\>
31 */
32 /*! \var SamProgram::PreviousProgramID
33     \brief corresponds to \@PG PP:\<PreviousProgramID\>
34 */
35 /*! \var SamProgram::Version
36     \brief corresponds to \@PG VN:\<Version\>
37 */
38 /*! \var SamProgram::NextProgramID
39     \internal
40     Holds ID of the "next" program record in a SamProgramChain
41 */
42
43 /*! \fn SamProgram::SamProgram(void)
44     \brief default constructor
45 */
46 SamProgram::SamProgram(void)
47     : CommandLine("")
48     , ID("")
49     , Name("")
50     , PreviousProgramID("")
51     , Version("")
52     , NextProgramID("")
53 { }
54
55 /*! \fn SamProgram::SamProgram(const std::string& id)
56     \brief constructs program record with \a id
57
58     \param id desired program record ID
59 */
60 SamProgram::SamProgram(const std::string& id)
61     : CommandLine("")
62     , ID(id)
63     , Name("")
64     , PreviousProgramID("")
65     , Version("")
66     , NextProgramID("")
67 { }
68
69 /*! \fn SamProgram::SamProgram(const SamProgram& other)
70     \brief copy constructor
71 */
72 SamProgram::SamProgram(const SamProgram& other)
73     : CommandLine(other.CommandLine)
74     , ID(other.ID)
75     , Name(other.Name)
76     , PreviousProgramID(other.PreviousProgramID)
77     , Version(other.Version)
78     , NextProgramID(other.NextProgramID)
79 { }
80
81 /*! \fn SamProgram::~SamProgram(void)
82     \brief destructor
83 */
84 SamProgram::~SamProgram(void) { }
85
86 /*! \fn void SamProgram::Clear(void)
87     \brief Clears all data fields.
88 */
89 void SamProgram::Clear(void) {
90     CommandLine.clear();
91     ID.clear();
92     Name.clear();
93     PreviousProgramID.clear();
94     Version.clear();
95     NextProgramID.clear();
96 }
97
98 /*! \fn bool SamProgram::HasCommandLine(void) const
99     \brief Returns \c true if program record contains \@PG: CL:\<CommandLine\>
100 */
101 bool SamProgram::HasCommandLine(void) const {
102     return (!CommandLine.empty());
103 }
104
105 /*! \fn bool SamProgram::HasID(void) const
106     \brief Returns \c true if program record contains \@PG: ID:\<ID\>
107 */
108 bool SamProgram::HasID(void) const {
109     return (!ID.empty());
110 }
111
112 /*! \fn bool SamProgram::HasName(void) const
113     \brief Returns \c true if program record contains \@PG: PN:\<Name\>
114 */
115 bool SamProgram::HasName(void) const {
116     return (!Name.empty());
117 }
118
119 /*! \fn bool SamProgram::HasNextProgramID(void) const
120     \internal
121     \return true if program has a "next" record in a SamProgramChain
122 */
123 bool SamProgram::HasNextProgramID(void) const {
124     return (!NextProgramID.empty());
125 }
126
127 /*! \fn bool SamProgram::HasPreviousProgramID(void) const
128     \brief Returns \c true if program record contains \@PG: PP:\<PreviousProgramID\>
129 */
130 bool SamProgram::HasPreviousProgramID(void) const {
131     return (!PreviousProgramID.empty());
132 }
133
134 /*! \fn bool SamProgram::HasVersion(void) const
135     \brief Returns \c true if program record contains \@PG: VN:\<Version\>
136 */
137 bool SamProgram::HasVersion(void) const {
138     return (!Version.empty());
139 }