Isis Developer Reference
PvlContainer.h
Go to the documentation of this file.
1#ifndef PvlContainer_h
2#define PvlContainer_h
8/* SPDX-License-Identifier: CC0-1.0 */
9#include "PvlKeyword.h"
10
11template<typename T> class QList;
12
13namespace Isis {
50 public:
51 PvlContainer(const QString &type);
52 PvlContainer(const QString &type, const QString &name);
53 PvlContainer(const PvlContainer &other);
54
56 void setName(const QString &name) {
58 };
63 inline QString name() const {
64 return (QString) m_name;
65 };
72 bool isNamed(const QString &match) const {
73 return PvlKeyword::stringEqual(match, (QString)m_name);
74 }
79 inline QString type() const {
80 return m_name.name();
81 };
86 inline int keywords() const {
87 return m_keywords.size();
88 };
89
91 void clear() {
92 m_keywords.clear();
93 };
101 void addKeyword(const PvlKeyword &keyword,
102 const InsertMode mode = Append);
103
104
110 void operator+= (const PvlKeyword &keyword) {
111 addKeyword(keyword);
112 };
113
114 PvlKeyword &findKeyword(const QString &name);
120 PvlKeyword &operator[](const QString &name) {
121 return findKeyword(name);
122 };
123 PvlKeyword &operator[](const int index);
124
130 PvlKeyword &operator[](const char *name) {
131 return operator[](QString(name));
132 };
133
134 const PvlKeyword &findKeyword(const QString &name) const;
141 const PvlKeyword &operator[](const QString &name) const {
142 return findKeyword(name);
143 };
144 const PvlKeyword &operator[](const int index) const;
145
151 PvlKeyword operator[](const char *name) const {
152 return operator[](QString(name));
153 };
154
155 bool hasKeyword(const QString &name) const;
158
161
162
163 PvlKeywordIterator findKeyword(const QString &name,
166
170
173
179 return m_keywords.begin();
180 };
181
187 return m_keywords.begin();
188 };
189
195 return m_keywords.end();
196 };
197
203 return m_keywords.end();
204 };
205
206 void deleteKeyword(const QString &name);
207 void deleteKeyword(const int index);
208
210
216 void operator-= (const QString &name) {
218 };
224 void operator-= (const PvlKeyword &key) {
225 deleteKeyword(key.name());
226 };
232 QString fileName() const {
233 return m_filename;
234 };
235
237 m_formatTemplate = &ref;
238 };
239
241 return m_formatTemplate != NULL;
242 };
243
247
249 return m_name.format();
250 }
254
255 int indent() {
256 return m_name.indent();
257 }
258 void setIndent(int indent) {
260 }
261
262 inline int comments() const {
263 return m_name.comments();
264 };
265 QString comment(const int index) const {
266 return m_name.comment(index);
267 }
268
269 void addComment(const QString &comment) {
271 }
272
274 return m_name;
275 }
276 const PvlKeyword &nameKeyword() const {
277 return m_name;
278 }
279
280 const PvlContainer &operator=(const PvlContainer &other);
281
282 protected:
283 QString m_filename;
290 QList<PvlKeyword> m_keywords;
294 void init();
295
301 void setFileName(const QString &filename) {
302 m_filename = filename;
303 }
304
306
308 void validateAllKeywords(PvlContainer &pPvlCont);
309
311 void validateRepeatOption(PvlKeyword & pPvlTmplKwrd, PvlContainer & pPvlCont);
312 };
313
314 std::ostream &operator<<(std::ostream &os, PvlContainer &container);
315};
316
317#endif
Contains more than one keyword-value pair.
Definition PvlContainer.h:49
PvlContainer(const QString &type)
Constructs a PvlContainer object with a type.
Definition PvlContainer.cpp:26
PvlKeyword operator[](const char *name) const
When you use the [] operator with a (char) name, it will call the findKeyword() method.
Definition PvlContainer.h:151
PvlContainer * formatTemplate()
Definition PvlContainer.h:244
ConstPvlKeywordIterator begin() const
Return the const beginning iterator.
Definition PvlContainer.h:186
bool hasKeyword(const QString &name) const
Check to see if a keyword exists.
Definition PvlContainer.cpp:159
bool cleanDuplicateKeywords()
Removes keywords from the container that have BOTH the same name and value.
Definition PvlContainer.cpp:136
PvlKeyword & nameKeyword()
Definition PvlContainer.h:273
const PvlContainer & operator=(const PvlContainer &other)
This is an assignment operator.
Definition PvlContainer.cpp:375
int indent()
Definition PvlContainer.h:255
void clear()
Clears PvlKeywords.
Definition PvlContainer.h:91
QString comment(const int index) const
Definition PvlContainer.h:265
void setFileName(const QString &filename)
Sets the filename to the specified string.
Definition PvlContainer.h:301
QList< PvlKeyword >::iterator PvlKeywordIterator
The keyword iterator.
Definition PvlContainer.h:157
void operator-=(const QString &name)
When you use the -= operator with a (string) name, it will call the deleteKeyword() method.
Definition PvlContainer.h:216
ConstPvlKeywordIterator end() const
Return the const ending iterator.
Definition PvlContainer.h:202
void init()
Sets the filename to blank.
Definition PvlContainer.cpp:51
QString m_filename
This contains the filename used to initialize the pvl object.
Definition PvlContainer.h:283
void validateRepeatOption(PvlKeyword &pPvlTmplKwrd, PvlContainer &pPvlCont)
Validate the Repeat Option for a Keyword.
Definition PvlContainer.cpp:470
PvlKeywordIterator begin()
Return the beginning iterator.
Definition PvlContainer.h:178
QString fileName() const
Returns the filename used to initialise the Pvl object.
Definition PvlContainer.h:232
QList< PvlKeyword >::const_iterator ConstPvlKeywordIterator
The const keyword iterator.
Definition PvlContainer.h:160
const PvlKeyword & nameKeyword() const
Definition PvlContainer.h:276
void setFormatTemplate(PvlContainer &ref)
Definition PvlContainer.h:236
bool hasFormatTemplate()
Definition PvlContainer.h:240
PvlContainer * m_formatTemplate
Definition PvlContainer.h:305
PvlKeyword m_name
This is the name keyword.
Definition PvlContainer.h:289
void operator+=(const PvlKeyword &keyword)
When you use the += operator with a PvlKeyword, it will call the addKeyword() method.
Definition PvlContainer.h:110
bool isNamed(const QString &match) const
Returns whether the given string is equal to the container name or not.
Definition PvlContainer.h:72
int keywords() const
Returns the number of keywords contained in the PvlContainer.
Definition PvlContainer.h:86
PvlKeywordIterator end()
Return the ending iterator.
Definition PvlContainer.h:194
void setName(const QString &name)
Set the name of the container.
Definition PvlContainer.h:56
void setIndent(int indent)
Definition PvlContainer.h:258
InsertMode
Contains both modes: Append or Replace.
Definition PvlContainer.h:95
@ Replace
Definition PvlContainer.h:95
@ Append
Definition PvlContainer.h:95
int comments() const
Definition PvlContainer.h:262
PvlKeyword & operator[](const QString &name)
When you use the [] operator with a (string) name, it will call the findKeyword() method.
Definition PvlContainer.h:120
void setFormat(PvlFormat *format)
Definition PvlContainer.h:251
QString name() const
Returns the container name.
Definition PvlContainer.h:63
PvlKeyword & operator[](const char *name)
When you use the [] operator with a (char) name, it will call the findKeyword() method.
Definition PvlContainer.h:130
QString type() const
Returns the container type.
Definition PvlContainer.h:79
void validateAllKeywords(PvlContainer &pPvlCont)
Validate All the Keywords in a Container comparing with the Template.
Definition PvlContainer.cpp:394
void addKeyword(const PvlKeyword &keyword, const InsertMode mode=Append)
Add a keyword to the container.
Definition PvlContainer.cpp:202
const PvlKeyword & operator[](const QString &name) const
When you use the [] operator with a (string) name, it will call the findKeyword() method.
Definition PvlContainer.h:141
void deleteKeyword(const QString &name)
Remove a specified keyword.
Definition PvlContainer.cpp:97
PvlFormat * format()
Definition PvlContainer.h:248
PvlKeyword & findKeyword(const QString &name)
Find a keyword with a specified name.
Definition PvlContainer.cpp:62
void addComment(const QString &comment)
Definition PvlContainer.h:269
QList< PvlKeyword > m_keywords
This is the vector of PvlKeywords the container is holding.
Definition PvlContainer.h:290
Formats a Pvl name value pair to Isis standards.
Definition PvlFormat.h:108
A single keyword-value pair.
Definition PvlKeyword.h:87
void setIndent(int indent)
Sets the indent level when outputted(for formatting)
Definition PvlKeyword.h:211
QString name() const
Returns the keyword name.
Definition PvlKeyword.h:103
void setFormat(PvlFormat *formatter)
Set the PvlFormatter used to format the keyword name and value(s)
Definition PvlKeyword.cpp:942
int comments() const
Returns the number of lines of comments associated with this keyword.
Definition PvlKeyword.h:168
QString comment(const int index) const
Return a comment at the specified index.
Definition PvlKeyword.cpp:498
int indent() const
Returns the current indent level.
Definition PvlKeyword.h:221
static bool stringEqual(const QString &string1, const QString &string2)
Checks to see if two QStrings are equal.
Definition PvlKeyword.cpp:592
PvlFormat * format()
Get the current PvlFormat or create one.
Definition PvlKeyword.cpp:953
void setValue(QString value, QString unit="")
Sets new values.
Definition PvlKeyword.cpp:155
void addComment(QString comment)
Add a comment to the PvlKeyword.
Definition PvlKeyword.cpp:433
This is free and unencumbered software released into the public domain.
Definition BoxcarCachingAlgorithm.h:13
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
QDebug operator<<(QDebug debug, const Hillshade &hillshade)
Print this class out to a QDebug object.
Definition Hillshade.cpp:313