create method
Returns a configured TOptions
instance with the given name
.
Implementation
TOptions create(String name) {
var options = _createInstance(name);
for (var setup in _setups) {
if (setup is ConfigureNamedOptions<TOptions>) {
setup.configureNamed(name, options);
} else if (name == Options.defaultName) {
setup.configure(options);
}
}
for (var post in _postConfigures) {
post.postConfigure(options, name: name);
}
if (_validations != null) {
var failures = List<String>.empty(growable: true);
for (var validate in _validations!) {
var result = validate.validate(name, options);
if (result.failed) {
failures.addAll(result.failures);
}
}
if (failures.isNotEmpty) {
throw OptionsValidationException(name, TOptions, failures);
}
}
return options;
}