v2.0.0
Loading...
Searching...
No Matches
bids_path.h
Go to the documentation of this file.
1//=============================================================================================================
34
35#ifndef BIDS_PATH_H
36#define BIDS_PATH_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
42#include "bids_global.h"
43
44//=============================================================================================================
45// QT INCLUDES
46//=============================================================================================================
47
48#include <QSharedPointer>
49#include <QString>
50#include <QMap>
51#include <QDir>
52
53//=============================================================================================================
54// DEFINE NAMESPACE BIDSLIB
55//=============================================================================================================
56
57namespace BIDSLIB
58{
59
60//=============================================================================================================
92{
93public:
94 using SPtr = QSharedPointer<BIDSPath>;
95 using ConstSPtr = QSharedPointer<const BIDSPath>;
96
97 //=========================================================================================================
101 BIDSPath();
102
103 //=========================================================================================================
115 BIDSPath(const QString& sRoot,
116 const QString& sSubject,
117 const QString& sSession = QString(),
118 const QString& sTask = QString(),
119 const QString& sDatatype = QString(),
120 const QString& sSuffix = QString(),
121 const QString& sExtension = QString());
122
123 //=========================================================================================================
127 BIDSPath(const BIDSPath& other);
128
129 //=========================================================================================================
133 ~BIDSPath();
134
135 //=========================================================================================================
136 // Entity setters
137 //=========================================================================================================
138
140 void setRoot(const QString& sRoot);
141
143 void setSubject(const QString& sSubject);
144
146 void setSession(const QString& sSession);
147
149 void setTask(const QString& sTask);
150
152 void setAcquisition(const QString& sAcquisition);
153
155 void setRun(const QString& sRun);
156
158 void setProcessing(const QString& sProcessing);
159
161 void setSpace(const QString& sSpace);
162
164 void setRecording(const QString& sRecording);
165
167 void setSplit(const QString& sSplit);
168
170 void setDescription(const QString& sDescription);
171
173 void setDatatype(const QString& sDatatype);
174
176 void setSuffix(const QString& sSuffix);
177
179 void setExtension(const QString& sExtension);
180
181 //=========================================================================================================
182 // Entity getters
183 //=========================================================================================================
184
185 QString root() const;
186 QString subject() const;
187 QString session() const;
188 QString task() const;
189 QString acquisition() const;
190 QString run() const;
191 QString processing() const;
192 QString space() const;
193 QString recording() const;
194 QString split() const;
195 QString description() const;
196 QString datatype() const;
197 QString suffix() const;
198 QString extension() const;
199
200 //=========================================================================================================
201 // Path construction
202 //=========================================================================================================
203
213 QString basename() const;
214
222 QString directory() const;
223
229 QString filePath() const;
230
231 //=========================================================================================================
232 // Convenience methods
233 //=========================================================================================================
234
243 BIDSPath withSuffix(const QString& sSuffix, const QString& sExtension) const;
244
250
256
262
267 BIDSPath eventsTsvPath() const;
268
275
280 bool exists() const;
281
286 bool mkdirs() const;
287
294 QList<BIDSPath> match() const;
295
296 //=========================================================================================================
297 // Validation
298 //=========================================================================================================
299
305 static bool isValidEntityValue(const QString& sValue);
306
307 //=========================================================================================================
308 // Operators
309 //=========================================================================================================
310
311 BIDSPath& operator=(const BIDSPath& other);
312 friend bool operator==(const BIDSPath& a, const BIDSPath& b);
313
314private:
315 QString m_sRoot;
316 QString m_sSubject;
317 QString m_sSession;
318 QString m_sTask;
319 QString m_sAcquisition;
320 QString m_sRun;
321 QString m_sProcessing;
322 QString m_sSpace;
323 QString m_sRecording;
324 QString m_sSplit;
325 QString m_sDescription;
326 QString m_sDatatype;
327 QString m_sSuffix;
328 QString m_sExtension;
329
333 static QString zeroPad(const QString& sValue);
334};
335
336} // namespace BIDSLIB
337
338#endif // BIDS_PATH_H
bool operator==(const BIDSPath &a, const BIDSPath &b)
bids library export/import macros.
#define BIDSSHARED_EXPORT
Definition bids_global.h:55
BIDS dataset reading, writing, path construction, and sidecar metadata handling for iEEG/EEG/MEG.
QString subject() const
void setSession(const QString &sSession)
void setSpace(const QString &sSpace)
QString filePath() const
QString session() const
void setRecording(const QString &sRecording)
void setSubject(const QString &sSubject)
QString split() const
void setDatatype(const QString &sDatatype)
QString description() const
BIDSPath electrodesTsvPath() const
bool exists() const
QString run() const
void setDescription(const QString &sDescription)
void setRun(const QString &sRun)
void setAcquisition(const QString &sAcquisition)
QString root() const
void setSplit(const QString &sSplit)
QSharedPointer< BIDSPath > SPtr
Definition bids_path.h:94
BIDSPath channelsTsvPath() const
static bool isValidEntityValue(const QString &sValue)
QString directory() const
QString acquisition() const
void setTask(const QString &sTask)
BIDSPath & operator=(const BIDSPath &other)
QString extension() const
void setProcessing(const QString &sProcessing)
void setRoot(const QString &sRoot)
QString space() const
QString suffix() const
QString basename() const
void setSuffix(const QString &sSuffix)
QString processing() const
QString recording() const
BIDSPath coordsystemJsonPath() const
QList< BIDSPath > match() const
QString task() const
BIDSPath withSuffix(const QString &sSuffix, const QString &sExtension) const
BIDSPath eventsTsvPath() const
void setExtension(const QString &sExtension)
bool mkdirs() const
QString datatype() const
QSharedPointer< const BIDSPath > ConstSPtr
Definition bids_path.h:95
BIDSPath sidecarJsonPath() const