50 lines
2.4 KiB
50 lines
2.4 KiB
#include "src/settings/modules/RegionSettings.h"
|
|
|
|
#include "src/settings/SettingsManager.h"
|
|
|
|
namespace storm {
|
|
namespace settings {
|
|
namespace modules {
|
|
|
|
const std::string RegionSettings::moduleName = "region";
|
|
const std::string RegionSettings::regionfileOptionName = "regionfile";
|
|
const std::string RegionSettings::regionsOptionName = "regions";
|
|
|
|
RegionSettings::RegionSettings(storm::settings::SettingsManager& settingsManager) : ModuleSettings(settingsManager, moduleName) {
|
|
this->addOption(storm::settings::OptionBuilder(moduleName, regionfileOptionName, true, "Specifies the regions via a file. Format: 0.3<=p<=0.4,0.2<=q<=0.5; 0.6<=p<=0.7,0.8<=q<=0.9")
|
|
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename", "The file from which to read the regions.").build()).build());
|
|
this->addOption(storm::settings::OptionBuilder(moduleName, regionsOptionName, true, "Specifies the regions via command line. Format: '0.3<=p<=0.4,0.2<=q<=0.5; 0.6<=p<=0.7,0.8<=q<=0.9'")
|
|
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("regions", "The considered regions.").build()).build());
|
|
}
|
|
|
|
|
|
|
|
bool RegionSettings::isRegionFileSet() const{
|
|
return this->getOption(regionfileOptionName).getHasOptionBeenSet();
|
|
}
|
|
|
|
std::string RegionSettings::getRegionFilePath() const{
|
|
return this->getOption(regionfileOptionName).getArgumentByName("filename").getValueAsString();
|
|
}
|
|
|
|
bool RegionSettings::isRegionsSet() const{
|
|
return this->getOption(regionsOptionName).getHasOptionBeenSet();
|
|
}
|
|
|
|
std::string RegionSettings::getRegionsFromCmdLine() const{
|
|
return this->getOption(regionsOptionName).getArgumentByName("regions").getValueAsString();
|
|
}
|
|
|
|
bool RegionSettings::check() const{
|
|
if(isRegionsSet() && isRegionFileSet()){
|
|
STORM_LOG_ERROR("Regions specified twice: via command line AND via file.");
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
} // namespace modules
|
|
} // namespace settings
|
|
} // namespace storm
|