result static method

Danger<CitrusSymbolTable, CitrusSymbolTableException> result(
  1. CitrusSymbolRoster<TextSymbol> textSymbolRoster,
  2. CitrusSymbolRoster<TemporarySymbol> temporarySymbolRoster,
  3. CitrusSymbolRoster<TextArraySymbol> textArraySymbolRoster,
  4. CitrusSymbolRoster<FragmentSymbol> fragmentSymbolRoster,
  5. CitrusSymbolRoster<FlagSymbol> flagSymbolRoster,
  6. CitrusSymbolRoster<ObjectSymbol> objectSymbolRoster,
  7. CitrusSymbolRoster<ObjectArraySymbol> objectArraySymbolRoster,
)
  • CitrusSymbolTableExceptionA duplicate property name exist.

Implementation

static Danger<CitrusSymbolTable, CitrusSymbolTableException> result(
    CitrusSymbolRoster<TextSymbol> textSymbolRoster,
    CitrusSymbolRoster<TemporarySymbol> temporarySymbolRoster,
    CitrusSymbolRoster<TextArraySymbol> textArraySymbolRoster,
    CitrusSymbolRoster<FragmentSymbol> fragmentSymbolRoster,
    CitrusSymbolRoster<FlagSymbol> flagSymbolRoster,
    CitrusSymbolRoster<ObjectSymbol> objectSymbolRoster,
    CitrusSymbolRoster<ObjectArraySymbol> objectArraySymbolRoster,
) {

    final log = Log(classLocation: CitrusSymbolTable, functionLocation: 'result');

    final list = [
        ...textSymbolRoster,
        ...temporarySymbolRoster,
        ...textArraySymbolRoster,
        ...fragmentSymbolRoster,
        ...flagSymbolRoster,
        ...objectSymbolRoster,
        ...objectArraySymbolRoster,
    ];

    final result = CitrusSymbolRoster.result(list);
    log.add(result);

    if (result is Failure) return Failure(CitrusSymbolTableExceptionA(), log.monitor({
        'symbol name list': [
            ...textSymbolRoster.nameList,
            ...temporarySymbolRoster.nameList,
            ...textArraySymbolRoster.nameList,
            ...fragmentSymbolRoster.nameList,
            ...flagSymbolRoster.nameList,
            ...objectSymbolRoster.nameList,
            ...objectArraySymbolRoster.nameList,
        ],
    }));

    return Success(
        CitrusSymbolTable(
            textSymbolRoster,
            temporarySymbolRoster,
            textArraySymbolRoster,
            fragmentSymbolRoster,
            flagSymbolRoster,
            objectSymbolRoster,
            objectArraySymbolRoster,
        ),
        log,
    );

}