135 STORM_LOG_THROW(!this->hasBeenBuilt, storm::exceptions::IllegalFunctionCallException,
136 "Cannot rebuild argument with builder that was already used to build an argument.");
137 this->hasBeenBuilt =
true;
138 switch (this->type) {
140 if (this->hasDefaultValue) {
141 return std::shared_ptr<ArgumentBase>(
142 new Argument<std::string>(this->name, this->description, this->validators_String, this->isOptional, this->defaultValue_String));
144 return std::shared_ptr<ArgumentBase>(
new Argument<std::string>(this->name, this->description, this->validators_String));
149 if (this->hasDefaultValue) {
150 return std::shared_ptr<ArgumentBase>(
151 new Argument<int_fast64_t>(this->name, this->description, this->validators_Integer, this->isOptional, this->defaultValue_Integer));
153 return std::shared_ptr<ArgumentBase>(
new Argument<int_fast64_t>(this->name, this->description, this->validators_Integer));
157 if (this->hasDefaultValue) {
158 return std::shared_ptr<ArgumentBase>(
new Argument<uint_fast64_t>(this->name, this->description, this->validators_UnsignedInteger,
159 this->isOptional, this->defaultValue_UnsignedInteger));
161 return std::shared_ptr<ArgumentBase>(
new Argument<uint_fast64_t>(this->name, this->description, this->validators_UnsignedInteger));
165 if (this->hasDefaultValue) {
166 return std::shared_ptr<ArgumentBase>(
167 new Argument<double>(this->name, this->description, this->validators_Double, this->isOptional, this->defaultValue_Double));
169 return std::shared_ptr<ArgumentBase>(
new Argument<double>(this->name, this->description, this->validators_Double));
173 if (this->hasDefaultValue) {
174 return std::shared_ptr<ArgumentBase>(
175 new Argument<bool>(this->name, this->description, this->validators_Boolean, this->isOptional, this->defaultValue_Boolean));
177 return std::shared_ptr<ArgumentBase>(
new Argument<bool>(this->name, this->description, this->validators_Boolean));
181 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentTypeException,
"Argument has illegal type.");