getFinalValue method
Danger<CitrusDataType, CitrusSymbolTableException>
getFinalValue(
- String symbolName,
- CitrusSymbolTable symbolTable
Implementation
Danger<CitrusDataType, CitrusSymbolTableException> getFinalValue(String symbolName, CitrusSymbolTable symbolTable) {
final log = Log(classLocation: runtimeType, functionLocation: 'getFinalValue');
final getCitrusSymbolResult = symbolTable.getSymbol(symbolName);
log.add(getCitrusSymbolResult);
if (getCitrusSymbolResult is! Success<CitrusSymbol, CitrusSymbolTableExceptionB>) return Failure(getCitrusSymbolResult.asException, log.monitor({
'not exist symbol': symbolName,
'exist symbol name list': symbolTable.symbolNameList,
}));
final symbol = getCitrusSymbolResult.wrapped;
switch (symbol) {
case TextSymbol():
return Success(symbol.value, log);
case TemporarySymbol():
final result = symbol.getCurrentValue();
log.add(result);
if (result is! Success<CitrusArrayable, TemporarySymbolException>) return Failure(CitrusSymbolTableExceptionG(), log);
return Success(result.wrapped, log);
case TextArraySymbol():
return Success(symbol.value, log);
case FragmentSymbol():
return Success(symbol.value, log);
case FlagSymbol():
return Success(symbol.value, log);
case ObjectSymbol():
return Success(symbol.value, log);
case ObjectArraySymbol():
return Success(symbol.value, log);
}
}