73 lines
3.7 KiB
73 lines
3.7 KiB
#include "storm-gspn/settings/modules/GSPNSettings.h"
|
|
|
|
#include "storm/settings/SettingsManager.h"
|
|
#include "storm/settings/SettingMemento.h"
|
|
#include "storm/settings/Option.h"
|
|
#include "storm/settings/OptionBuilder.h"
|
|
#include "storm/settings/ArgumentBuilder.h"
|
|
#include "storm/settings/Argument.h"
|
|
|
|
#include "storm/exceptions/InvalidSettingsException.h"
|
|
|
|
namespace storm {
|
|
namespace settings {
|
|
namespace modules {
|
|
const std::string GSPNSettings::moduleName = "gspn";
|
|
|
|
const std::string GSPNSettings::gspnFileOptionName = "gspnfile";
|
|
const std::string GSPNSettings::gspnFileOptionShortName = "gspn";
|
|
const std::string GSPNSettings::capacitiesFileOptionName = "capacitiesfile";
|
|
const std::string GSPNSettings::capacitiesFileOptionShortName = "capacities";
|
|
const std::string GSPNSettings::capacityOptionName = "capacity";
|
|
|
|
|
|
GSPNSettings::GSPNSettings() : ModuleSettings(moduleName) {
|
|
this->addOption(storm::settings::OptionBuilder(moduleName, gspnFileOptionName, false, "Parses the GSPN.").setShortName(gspnFileOptionShortName).addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename", "path to file").addValidatorString(ArgumentValidatorFactory::createExistingFileValidator()).build()).build());
|
|
this->addOption(storm::settings::OptionBuilder(moduleName, capacitiesFileOptionName, false, "Capacaties as invariants for places.").setShortName(capacitiesFileOptionShortName).addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename", "path to file").addValidatorString(ArgumentValidatorFactory::createExistingFileValidator()).build()).build());
|
|
this->addOption(storm::settings::OptionBuilder(moduleName, capacityOptionName, false, "Global capacity as invariants for all places.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("value", "capacity").addValidatorUnsignedInteger(ArgumentValidatorFactory::createUnsignedGreaterValidator(0)).build()).build());
|
|
}
|
|
|
|
bool GSPNSettings::isGspnFileSet() const {
|
|
return this->getOption(gspnFileOptionName).getHasOptionBeenSet();
|
|
}
|
|
|
|
std::string GSPNSettings::getGspnFilename() const {
|
|
return this->getOption(gspnFileOptionName).getArgumentByName("filename").getValueAsString();
|
|
}
|
|
|
|
bool GSPNSettings::isCapacitiesFileSet() const {
|
|
return this->getOption(capacitiesFileOptionName).getHasOptionBeenSet();
|
|
}
|
|
|
|
std::string GSPNSettings::getCapacitiesFilename() const {
|
|
return this->getOption(capacitiesFileOptionName).getArgumentByName("filename").getValueAsString();
|
|
}
|
|
|
|
bool GSPNSettings::isCapacitySet() const {
|
|
return this->getOption(capacityOptionName).getHasOptionBeenSet();
|
|
}
|
|
|
|
uint64_t GSPNSettings::getCapacity() const {
|
|
return this->getOption(capacityOptionName).getArgumentByName("value").getValueAsUnsignedInteger();
|
|
}
|
|
|
|
void GSPNSettings::finalize() {
|
|
|
|
}
|
|
|
|
bool GSPNSettings::check() const {
|
|
if(!isGspnFileSet()) {
|
|
if(isCapacitiesFileSet()) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (isCapacitiesFileSet() && isCapacitySet()) {
|
|
STORM_LOG_ERROR("Conflicting settings: Capacity file AND capacity was set.");
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|