57 QString msg =
"Invalid label attachment type [" + QString::number(labelType) +
"]";
71 QString temp = labelType.toUpper();
76 QString msg =
"Invalid label attachment type string [" + labelType +
"]";
123 m_attributeTypeTesters = testers;
140 m_attributeTypeTesters = testers;
161 if (!m_attributes.isEmpty())
162 result =
"+" + m_attributes.join(
"+");
179 QString upcaseAtt = attribute.toUpper();
181 if (attribute.contains(
"+")) {
183 "Individual attributes (for example, BSQ) cannot contain the '+' "
184 "character because that is used to denote the separation of individual "
191 bool (ChildClass::*tester)(QString)
const;
192 foreach (tester, m_attributeTypeTesters) {
193 if ( (
static_cast<const ChildClass *
>(
this)->*tester)(upcaseAtt) ) {
196 QObject::tr(
"Attribute [%1] is ambiguous").arg(attribute),
206 QObject::tr(
"Attribute [%1] is not recognized").arg(attribute),
210 m_attributes.append(attribute);
265 m_attributes.clear();
266 foreach (QString attribute, attributes)
283 foreach (QString attribute, m_attributes) {
284 QString upcaseAtt = attribute.toUpper();
285 if ( (
static_cast<const ChildClass *
>(
this)->*tester)(upcaseAtt) ) {
286 relevantAttributes.append(upcaseAtt);
290 return relevantAttributes;
305 void setAttribute(QString newValue,
bool (ChildClass::*tester)(QString) const) {
306 QMutableListIterator<QString> it(m_attributes);
309 while (it.hasNext()) {
310 QString &attribute = it.next();
312 QString upcaseAtt = attribute.toUpper();
313 if ( (
static_cast<const ChildClass *
>(
this)->*tester)(upcaseAtt) ) {
314 if (found || newValue ==
"") {
320 attribute = newValue;
328 if (!found && newValue !=
"") {
329 m_attributes.append(newValue);
348 QList< bool (ChildClass::*)(QString) const > m_attributeTypeTesters;
406 std::vector<QString> bands()
const;
419 QString bandsString()
const;
422 void setBands(
const std::vector<QString> &bands);
427 bool isBandRange(QString attribute)
const;
429 static QString
toString(
const std::vector<QString> &bands);
433 std::vector<QString> m_bands;
500 bool propagatePixelType()
const;
503 bool propagateMinimumMaximum()
const;
509 QString fileFormatString()
const;
518 QString byteOrderString()
const;
524 double minimum()
const;
527 double maximum()
const;
530 void setMinimum(
double min);
533 void setMaximum(
double max);
550 bool isByteOrder(QString attribute)
const;
551 bool isFileFormat(QString attribute)
const;
552 bool isLabelAttachment(QString attribute)
const;
553 bool isPixelType(QString attribute)
const;
554 bool isRange(QString attribute)
const;
#define _FILEINFO_
Macro for the filename and line number.
Definition IException.h:24
Parent class for CubeAttributeInput and CubeAttributeOutput.
Definition CubeAttribute.h:118
CubeAttribute(QList< bool(ChildClass::*)(QString) const > testers, const FileName &fileName)
Constructs a CubeAttribute using the argument.
Definition CubeAttribute.h:138
void addAttributes(const FileName &fileNameWithAtts)
Append the attributes found in the filename to these cube attributes.
Definition CubeAttribute.h:222
void addAttribute(QString attribute)
Add a single attribute to these attributes.
Definition CubeAttribute.h:178
QString toString() const
Return a string-representation of this cube attributes.
Definition CubeAttribute.h:158
virtual ~CubeAttribute()
Destroys the object.
Definition CubeAttribute.h:146
void addAttributes(const QString &attributesString)
Append the attributes in the string to these cube attributes.
Definition CubeAttribute.h:248
QStringList attributeList(bool(ChildClass::*tester)(QString) const) const
Get a list of attributes that the tester returns true on.
Definition CubeAttribute.h:280
void setAttributes(const FileName &fileName)
Replaces the current attributes with the attributes in the given file name.
Definition CubeAttribute.h:262
void setAttribute(QString newValue, bool(ChildClass::*tester)(QString) const)
Set the attribute(s) for which tester returns true to newValue.
Definition CubeAttribute.h:305
CubeAttribute(QList< bool(ChildClass::*)(QString) const > testers)
Constructs an empty CubeAttribute.
Definition CubeAttribute.h:122
void addAttributes(const char *attributesString)
Append the attributes in the string to these cube attributes.
Definition CubeAttribute.h:235
Manipulate and parse attributes of output cube filenames.
Definition CubeAttribute.h:473
Format
These are the possible storage formats of ISIS cubes.
Definition Cube.h:179
File name manipulation and expansion.
Definition FileName.h:100
QString attributes() const
Returns a QString of the attributes in a filename, attributes are expected to be of type CubeAttribut...
Definition FileName.cpp:121
Isis exception class.
Definition IException.h:91
@ Unknown
A type of error that cannot be classified as any of the other error types.
Definition IException.h:118
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition IException.h:146
This is free and unencumbered software released into the public domain.
Definition BoxcarCachingAlgorithm.h:13
ByteOrder
Tests the current architecture for byte order.
Definition Endian.h:42
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
Definition IString.cpp:211
LabelAttachment LabelAttachmentEnumeration(const QString &labelType)
Return the appropriate LabelType depending on which of the valid values the argument spells.
Definition CubeAttribute.h:70
LabelAttachment
Input cube label type tracker.
Definition CubeAttribute.h:31
@ ExternalLabel
The label is pointing to an external DN file - the label is also external to the data.
Definition CubeAttribute.h:40
@ AttachedLabel
The input label is embedded in the image file.
Definition CubeAttribute.h:32
@ DetachedLabel
The input label is in a separate data file from the image.
Definition CubeAttribute.h:33
QString LabelAttachmentName(LabelAttachment labelType)
Return the string representation of the contents of a variable of type LabelAttachment.
Definition CubeAttribute.h:52
PixelType
Enumerations for Isis Pixel Types.
Definition PixelType.h:27