resolve method

  1. @override
Danger<String, CitrusSemanticException> resolve(
  1. PropertyTable propertyTable
)
override

Implementation

@override
Danger<String, CitrusSemanticException> resolve(PropertyTable propertyTable) {

    final log = Log(classLocation: runtimeType, functionLocation: 'resolve');

    final boolCitrusSemanticResolveResult = boolean.resolve(propertyTable);
    log.add(boolCitrusSemanticResolveResult);
    if (boolCitrusSemanticResolveResult is! Success<bool, BooleanException>) return Failure(boolCitrusSemanticResolveResult.asException, log);

    final flagResult = booleanKeyword.toBool() == boolCitrusSemanticResolveResult.wrapped;

    // log.debug({
    //     'boolean keyword': booleanKeyword.text,
    //     'boolean resolve result': boolCitrusSemanticResolveResult.wrapped,
    // });

    switch (flagResult) {
    case true:

        final resolveResult = matureCitrusSemanticList.resolve(propertyTable);
        log.add(resolveResult);
        if (resolveResult is! Success<String, CitrusSemanticException>) return Failure(resolveResult.asException, log);

        final result = resolveResult.wrapped;
        return Success(result, log);

    case false:

        // 空文字を返す.
        return Success('', log);

    }

}