34 bool Exists(
const std::string& studyPath)
const;
56 static std::shared_ptr<Study>
CreateNew(
const std::string& path,
57 const std::string& name,
58 const std::string& author =
"");
61 const std::string&
GetName()
const {
return mName; }
64 const std::string&
GetAuthor()
const {
return mAuthor; }
70 const std::string&
GetPath()
const {
return mPath; }
71 const std::vector<Test>&
GetTests()
const {
return mTests; }
77 void SetName(
const std::string& name) { mName = name; UpdateModifiedDate(); }
78 void SetDescription(
const std::string& desc) { mDescription = desc; UpdateModifiedDate(); }
79 void SetAuthor(
const std::string& author) { mAuthor = author; UpdateModifiedDate(); }
80 void SetStudyToken(
const std::string& token) { mStudyToken = token; UpdateModifiedDate(); }
81 void SetUploadServerURL(
const std::string& url) { mUploadServerURL = url; UpdateModifiedDate(); }
82 void SetUploadEnabled(
bool enabled) { mUploadEnabled = enabled; UpdateModifiedDate(); }
89 const Test*
GetTest(
const std::string& testName)
const;
114 bool LoadFromJSON(
const std::string& jsonPath);
115 bool SaveToJSON(
const std::string& jsonPath);
116 void UpdateModifiedDate();
117 std::string GetCurrentISO8601Time()
const;
121 std::string mDescription;
124 std::string mStudyToken;
125 std::string mUploadServerURL;
126 std::string mCreatedDate;
127 std::string mModifiedDate;
129 std::vector<Test> mTests;
const std::string & GetUploadServerURL() const
bool TestHasUploadConfig(const std::string &testName) const
void SetAuthor(const std::string &author)
void SetDescription(const std::string &desc)
const std::vector< Test > & GetTests() const
const std::string & GetAuthor() const
Test * GetTest(const std::string &testName)
const std::string & GetName() const
void SetStudyToken(const std::string &token)
bool CreateUploadConfigForTest(const std::string &testName)
void SetName(const std::string &name)
std::string GetStudyCode() const
const std::string & GetCreatedDate() const
static std::shared_ptr< Study > CreateNew(const std::string &path, const std::string &name, const std::string &author="")
bool RemoveTest(const std::string &testName)
const std::string & GetModifiedDate() const
const std::string & GetStudyToken() const
bool GetUploadEnabled() const
std::vector< std::string > GetChainFiles() const
ValidationResult Validate() const
bool AddTest(const Test &test)
int GetChainCount() const
void SetUploadServerURL(const std::string &url)
void SetUploadEnabled(bool enabled)
static std::shared_ptr< Study > LoadFromDirectory(const std::string &path)
std::string GetUploadConfigPath(const std::string &testName) const
const std::string & GetPath() const
const std::string & GetDescription() const
ParameterVariant(const std::string &desc, const std::string &f)
ParameterVariant()=default
std::vector< std::string > warnings
std::vector< std::string > errors
std::vector< std::string > GetAvailableLanguages(const std::string &studyPath) const
bool Exists(const std::string &studyPath) const
std::map< std::string, ParameterVariant > parameterVariants
const ParameterVariant * GetVariant(const std::string &variantName) const