fromYamlMap static method

Danger<TemplateSettingStruct, BpriverYamlException> fromYamlMap(
  1. YamlMap yamlMap
)

Implementation

static Danger<TemplateSettingStruct, BpriverYamlException> fromYamlMap(YamlMap yamlMap) {

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

    final permanentlyPropertyNameListResult =  BpriverYaml.getByKeyFromYamlMapAsTListWithDefault<String>(yamlMap, 'permanently', []);
    log.add(permanentlyPropertyNameListResult);
    if (permanentlyPropertyNameListResult is! Success<List<String>, BpriverYamlExceptionEF>) return Failure(permanentlyPropertyNameListResult.asException, log);

    final listPropertyNameListResult =  BpriverYaml.getByKeyFromYamlMapAsTListWithDefault<String>(yamlMap, 'list', []);
    log.add(listPropertyNameListResult);
    if (listPropertyNameListResult is! Success<List<String>, BpriverYamlExceptionEF>) return Failure(listPropertyNameListResult.asException, log);

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

    final fragmentPropertyRosterResult =  FragmentPropertyStructList.fromYamlMap(fragmentKeyResult.wrapped);
    log.add(fragmentPropertyRosterResult);
    if (fragmentPropertyRosterResult is! Success<PropertyStructList<FragmentPropertyStruct>, BpriverYamlException>) return Failure(fragmentPropertyRosterResult.asException, log);

    final templateKeyResult =  BpriverYaml.getByKeyFromYamlMapAsT<YamlMap>(yamlMap, 'template');
    log.add(templateKeyResult);
    if (templateKeyResult is! Success<YamlMap, BpriverYamlExceptionDE>) return Failure(templateKeyResult.asException, log);

    final templateResult =  FileSystemModelList.fromYamlMap(templateKeyResult.wrapped);
    log.add(templateResult);
    if (templateResult is! Success<FileSystemModelList<FileSystemModel>, BpriverYamlExceptionH>) return Failure(templateResult.asException, log);

    final result = TemplateSettingStruct(
        permanentlyPropertyNameListResult.wrapped,
        listPropertyNameListResult.wrapped,
        fragmentPropertyRosterResult.wrapped,
        templateResult.wrapped,
    );

    return Success(result, log);

}