Isis 3 Programmer Reference
FileName.h
1#ifndef FileName_h
2#define FileName_h
8/* SPDX-License-Identifier: CC0-1.0 */
9
10#include <QSharedData>
11
12class QDate;
13class QDir;
14class QString;
15
16template<typename A, typename B> struct QPair;
17
18namespace Isis {
100 class FileName {
101 public:
102 // Constructors
103 FileName();
104 FileName(const char *fileName);
105 FileName(const QString &fileName);
106
107 // Copy Constructor, creates a copy of a FileName object.
108 FileName(const FileName &other);
109
110 // Destroys the FileName Object
111 ~FileName();
112
113 // Methods
114 QString originalPath() const;
115 QString path() const;
116 QString attributes() const;
117 QString baseName() const;
118 QString name() const;
119 QString extension() const;
120
121
135 QString expanded() const;
136
137
149 QString original() const;
150
151 FileName addExtension(const QString &extension) const;
153 FileName setExtension(const QString &extension) const;
154
155 bool isVersioned() const;
156 bool isNumericallyVersioned() const;
157 bool isDateVersioned() const;
158
159 FileName highestVersion() const;
160 FileName newVersion() const;
161
162 bool fileExists() const;
163 QDir dir() const;
164 static FileName createTempFile(FileName templateFileName = "$TEMPORARY/temp");
165
166
180 QString toString() const;
181 FileName &operator=(const FileName &rhs);
182 bool operator==(const FileName &rhs);
183 bool operator!=(const FileName &rhs);
184
185
186 private:
187 FileName version(long versionNumber) const;
188 FileName version(QDate versionDate) const;
189 QDate highestVersionDate() const;
190 long highestVersionNum() const;
191 void validateVersioningState() const;
192 QString fileNameQDatePattern() const;
193 QPair<QString, QString> splitNameAroundVersionNum() const;
194
195 private:
203 class Data : public QSharedData {
204 public:
205
206 // Constructors
207 Data();
208
209 // Copy Constructor, creates a copy of a Data object.
210 Data(const Data &other);
211
212 // Destroys the Data Object
213 ~Data();
214
215 // Methods
216 QString original(bool includeAttributes) const;
217 void setOriginal(const QString &originalStr);
218 QString expanded(bool includeAttributes) const;
219
220 private:
221 // Holds the original file name.
222 QString *m_originalFileNameString;
223
224
225 // Holds the expanded file name.
226 QString *m_expandedFileNameString;
227 };
228
229 // @see QSharedDataPointer
230 QSharedDataPointer<Data> m_d;
231 };
232};
233
234#endif
This is the reference-counted data for FileName.
Definition FileName.h:203
Data()
Data constructor, creates a new Data object.
Definition FileName.cpp:776
~Data()
Destroys the Data object.
Definition FileName.cpp:800
void setOriginal(const QString &originalStr)
Sets the original file name, stored in m_originalFileNameString.
Definition FileName.cpp:838
File name manipulation and expansion.
Definition FileName.h:100
QString path() const
Returns the path of the file name.
Definition FileName.cpp:103
bool isDateVersioned() const
Checks if the file name is versioned by date.
Definition FileName.cpp:303
~FileName()
Destroys the FileName object.
Definition FileName.cpp:66
QPair< QString, QString > splitNameAroundVersionNum() const
This returns a QPair of the text (before, after) a version number in a file.
Definition FileName.cpp:757
bool isNumericallyVersioned() const
Checks if the file name is versioned numerically.
Definition FileName.cpp:293
QDir dir() const
Returns the path of the file's parent directory as a QDir object.
Definition FileName.cpp:465
FileName()
Constructs an empty FileName object.
Definition FileName.cpp:31
bool fileExists() const
Returns true if the file exists; false otherwise.
Definition FileName.cpp:449
FileName setExtension(const QString &extension) const
Sets all current file extensions to a new extension in the file name.
Definition FileName.cpp:265
QString baseName() const
Returns the name of the file without the path and without extensions.
Definition FileName.cpp:145
QString name() const
Returns the name of the file excluding the path and the attributes in the file name.
Definition FileName.cpp:162
QString expanded() const
Returns a QString of the full file name including the file path, excluding the attributes.
Definition FileName.cpp:196
QDate highestVersionDate() const
This looks through the directory of the file and checks for the highest version date of the file that...
Definition FileName.cpp:578
static FileName createTempFile(FileName templateFileName="$TEMPORARY/temp")
Creates a temporary file and returns a FileName object created using the temporary file.
Definition FileName.cpp:478
FileName highestVersion() const
Searches the directory specified in the file name for the highest version of the file name.
Definition FileName.cpp:313
QString original() const
Returns the full file name including the file path.
Definition FileName.cpp:212
FileName newVersion() const
Updates the file name to be the latest version.
Definition FileName.cpp:348
FileName & operator=(const FileName &rhs)
Clears the current contents of the FileName object and reinitializes it with the argument.
Definition FileName.cpp:527
long highestVersionNum() const
This looks through the directory of the file and checks for the highest version number of the file th...
Definition FileName.cpp:640
QString fileNameQDatePattern() const
This changes the files format.
Definition FileName.cpp:727
QString extension() const
Returns the last extension of the file name.
Definition FileName.cpp:178
bool operator!=(const FileName &rhs)
Compares equality of two FileName objects.
Definition FileName.cpp:568
QString originalPath() const
Returns the path of the original file name.
Definition FileName.cpp:84
void validateVersioningState() const
This verifies the class invariant when using versioning - that the FileName is in an acceptable state...
Definition FileName.cpp:679
FileName removeExtension() const
Removes all extensions in the file name.
Definition FileName.cpp:246
QString attributes() const
Returns a QString of the attributes in a filename, attributes are expected to be of type CubeAttribut...
Definition FileName.cpp:121
bool operator==(const FileName &rhs)
Compares equality of two FileName objects.
Definition FileName.cpp:540
FileName addExtension(const QString &extension) const
Adds a new extension to the file name.
Definition FileName.cpp:225
bool isVersioned() const
Checks to see if a file name is versioned by date or numerically.
Definition FileName.cpp:281
FileName version(long versionNumber) const
Returns a FileName object of the same file name but versioned numerically by the number passed in as ...
Definition FileName.cpp:398
QString toString() const
Returns a QString of the full file name including the file path, excluding the attributes with any Is...
Definition FileName.cpp:515
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
This is free and unencumbered software released into the public domain.