Isis 3.0 Programmer Reference
Home
FileName.h
Go to the documentation of this file.
1 #ifndef FileName_h
2 #define FileName_h
3 
26 #include <QSharedData>
27 
28 class QDate;
29 class QDir;
30 class QString;
31 
32 template<typename A, typename B> struct QPair;
33 
34 namespace Isis {
111  class FileName {
112  public:
113  FileName();
114  FileName(const char *fileName);
115  FileName(const QString &fileName);
116  FileName(const FileName &other);
117  ~FileName();
118 
119  QString originalPath() const;
120  QString path() const;
121 
122  QString attributes() const;
123  QString baseName() const;
124  QString name() const;
125  QString extension() const;
126 
127  QString expanded() const;
128  QString original() const;
129 
130  FileName addExtension(const QString &extension) const;
131  FileName removeExtension() const;
132  FileName setExtension(const QString &extension) const;
133 
134  bool isVersioned() const;
135  bool isNumericallyVersioned() const;
136  bool isDateVersioned() const;
137 
138  FileName highestVersion() const;
139  FileName newVersion() const;
140  FileName version(long versionNumber) const;
141  FileName version(QDate versionDate) const;
142 
143  // Return true if the file exists
144  bool fileExists() const;
145 
146  // Create a directory
147  QDir dir() const;
148 
149  static FileName createTempFile(FileName templateFileName = "$TEMPORARY/temp");
150 
151  QString toString() const;
152  FileName &operator=(const FileName &rhs);
153  bool operator==(const FileName &rhs);
154  bool operator!=(const FileName &rhs);
155 
156  private:
157  QDate highestVersionDate() const;
158  long highestVersionNum() const;
159  void validateVersioningState() const;
160 
161  QString fileNameQDatePattern() const;
162 
163  QPair<QString, QString> splitNameAroundVersionNum() const;
164 
165  private:
173  class Data : public QSharedData {
174  public:
175  Data();
176  Data(const Data &other);
177  ~Data();
178 
179  QString original(bool includeAttributes) const;
180  void setOriginal(const QString &);
181 
182  QString expanded(bool includeAttributes) const;
183 
184  // assignment operator is defined in QSharedData
185  // Data &operator=(const Data &rhs);
186 
187  private:
188  QString *m_originalFileNameString;
189  QString *m_expandedFileNameString;
190  };
191 
193  QSharedDataPointer<Data> m_d;
194  };
195 };
196 
197 #endif
File name manipulation and expansion.
Definition: FileName.h:111
void validateVersioningState() const
This verifies the class invariant when using versioning - that the FileName is in an acceptable state...
Definition: FileName.cpp:471
This is the reference-counted data for FileName.
Definition: FileName.h:173
FileName & operator=(const FileName &rhs)
Clears the current contents of the FileName object and reinitializes it with the argument.
Definition: FileName.cpp:340
~FileName()
Destroys the FileName object.
Definition: FileName.cpp:66
FileName()
Constructs an empty FileName object.
Definition: FileName.cpp:44
QString path() const
Returns the path.
Definition: FileName.cpp:88
QSharedDataPointer< Data > m_d
Definition: FileName.h:193