fromYamlMapAndKey static method

Danger<List<ObjectDefinition>, BpriverYamlException> fromYamlMapAndKey(
  1. YamlMap yamlMap,
  2. String key
)

Implementation

static Danger<List<ObjectDefinition>, BpriverYamlException> fromYamlMapAndKey(YamlMap yamlMap, String key) {

    final log = Log(classLocation: ObjectDefinition, functionLocation: 'fromYamlMap');

    final getResult =  BpriverYaml.getByKeyFromYamlMapAsTWithDefault<YamlMap>(yamlMap, key, YamlMap());
    log.add(getResult);
    if (getResult is! Success<YamlMap, BpriverYamlExceptionE>) return Failure(getResult.asException, log);

    final List<ObjectDefinition> list = [];

    for (final entry in getResult.wrapped.entries) {

        final key = entry.key as String;

        final valueResult = BpriverYaml.parseDynamicAsT<YamlMap>(entry.value);
        log.add(valueResult);
        if (valueResult is! Success<YamlMap, BpriverYamlExceptionF>) return Failure(valueResult.asException, log);

        final unitResult = ObjectDefinitionUnit.fromYamlMap(valueResult.wrapped);
        log.add(unitResult);
        if (unitResult is! Success<List<ObjectDefinitionUnit>, BpriverYamlException>) return Failure(unitResult.asException, log);

        final result = ObjectDefinition(key, unitResult.wrapped);

        list.add(result);

    }

    return Success(list, log);

}