134 STORM_LOG_THROW(!this->hasBeenBuilt, storm::exceptions::IllegalFunctionCallException,
135 "Cannot rebuild argument with builder that was already used to build an argument.");
136 this->hasBeenBuilt =
true;
137 switch (this->type) {
139 if (this->hasDefaultValue) {
140 return std::shared_ptr<ArgumentBase>(
141 new Argument<std::string>(this->name, this->description, this->validators_String, this->isOptional, this->defaultValue_String));
143 return std::shared_ptr<ArgumentBase>(
new Argument<std::string>(this->name, this->description, this->validators_String));
148 if (this->hasDefaultValue) {
149 return std::shared_ptr<ArgumentBase>(
150 new Argument<int_fast64_t>(this->name, this->description, this->validators_Integer, this->isOptional, this->defaultValue_Integer));
152 return std::shared_ptr<ArgumentBase>(
new Argument<int_fast64_t>(this->name, this->description, this->validators_Integer));
156 if (this->hasDefaultValue) {
157 return std::shared_ptr<ArgumentBase>(
new Argument<uint_fast64_t>(this->name, this->description, this->validators_UnsignedInteger,
158 this->isOptional, this->defaultValue_UnsignedInteger));
160 return std::shared_ptr<ArgumentBase>(
new Argument<uint_fast64_t>(this->name, this->description, this->validators_UnsignedInteger));
164 if (this->hasDefaultValue) {
165 return std::shared_ptr<ArgumentBase>(
166 new Argument<double>(this->name, this->description, this->validators_Double, this->isOptional, this->defaultValue_Double));
168 return std::shared_ptr<ArgumentBase>(
new Argument<double>(this->name, this->description, this->validators_Double));
172 if (this->hasDefaultValue) {
173 return std::shared_ptr<ArgumentBase>(
174 new Argument<bool>(this->name, this->description, this->validators_Boolean, this->isOptional, this->defaultValue_Boolean));
176 return std::shared_ptr<ArgumentBase>(
new Argument<bool>(this->name, this->description, this->validators_Boolean));
180 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentTypeException,
"Argument has illegal type.");