resolve method

Danger<String, ImmatureCitrusSemanticException> resolve(
  1. CitrusSymbolTable symbolTable
)
override

Implementation

Danger<String, ImmatureCitrusSemanticException> resolve(CitrusSymbolTable symbolTable) {

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

    final accesserResolveResult = accesser.resolve(symbolTable);
    log.add(accesserResolveResult);
    if (accesserResolveResult is! Success<CitrusSymbolValue, AccesserException>) return Failure(accesserResolveResult.asException, log);

    final symbolValue = accesserResolveResult.wrapped;

    switch (symbolValue) {
    case CitrusText():

        final changeCaseResult = changeCase(symbolValue.value);

        return Success(changeCaseResult, log);

    case CitrusFlag():

        final changeCaseResult = changeCase(symbolValue.value.toString());

        return Success(changeCaseResult, log);

    case _:

        return Failure(ChangeCaseExceptionB(), log.monitor({
            'invalid symbol value': symbolValue.runtimeType,
        }));

    }

}