resolve method

  1. @override
Danger<List<FileSystemModelRoute>, CitrusSemanticException> resolve(
  1. CitrusSymbolTable symbolTable,
  2. FileSystemModelRoute target,
  3. FileSystemModelRouteRoster<FileSystemModelRoute> base
)
override

Implementation

@override
Danger<List<FileSystemModelRoute>, CitrusSemanticException> resolve(CitrusSymbolTable symbolTable, FileSystemModelRoute target, FileSystemModelRouteRoster<FileSystemModelRoute> base) {

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

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

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

    final getLoopTargetResult = getLoopTarget(target, base);
    log.add(getLoopTargetResult);

    switch (flagResult) {
    case true:

        return Success(getLoopTargetResult.wrapped, log);

    case false:

        // 空の list を返す.
        return Success([], log);

    }

}