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);
305 void setAttribute(QString newValue,
bool (ChildClass::*tester)(QString)
const) {
…}
348 QList< bool (ChildClass::*)(QString)
const > m_attributeTypeTesters;
406 std::vector<QString>
bands()
const;
427 bool isBandRange(QString attribute)
const;
433 std::vector<QString> m_bands;
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
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
LabelAttachment labelAttachment() const
Definition CubeAttribute.cpp:400
double minimum() const
Return the output cube attribute minimum.
Definition CubeAttribute.cpp:294
void setLabelAttachment(LabelAttachment attachment)
Set the label attachment type to the parameter value.
Definition CubeAttribute.cpp:395
ByteOrder byteOrder() const
Return the byte order as an Isis::ByteOrder.
Definition CubeAttribute.cpp:455
double maximum() const
Return the output cube attribute maximum.
Definition CubeAttribute.cpp:309
void setByteOrder(ByteOrder order)
Set the order according to the parameter order.
Definition CubeAttribute.cpp:474
bool propagateMinimumMaximum() const
Return true if the min/max are to be propagated from an input cube.
Definition CubeAttribute.cpp:177
bool propagatePixelType() const
Return true if the pixel type is to be propagated from an input cube.
Definition CubeAttribute.cpp:165
Cube::Format fileFormat() const
Return the file format an Cube::Format.
Definition CubeAttribute.cpp:267
QString fileFormatString() const
Return the file format as a string.
Definition CubeAttribute.cpp:283
QString byteOrderString() const
Return the byte order as a string.
Definition CubeAttribute.cpp:469
CubeAttributeOutput()
Constructs an empty CubeAttributeOutput.
Definition CubeAttribute.cpp:152
PixelType pixelType() const
Return the pixel type as an Isis::PixelType.
Definition CubeAttribute.cpp:360
void setMinimum(double min)
Set the output cube attribute minimum.
Definition CubeAttribute.cpp:324
void setMaximum(double max)
Set the output cube attribute maximum.
Definition CubeAttribute.cpp:342
~CubeAttributeOutput()
Destroys the object.
Definition CubeAttribute.cpp:161
void setPixelType(PixelType type)
Set the pixel type to that given by the parameter.
Definition CubeAttribute.cpp:390
void setFileFormat(Cube::Format fmt)
Set the format to the fmt parameter.
Definition CubeAttribute.cpp:288
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
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