create method

TOptions create(
  1. String name
)

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;
}