compileFragments static method

Danger<CitrusSymbolTable, CitrusLanguageException> compileFragments(
  1. CitrusSymbolTable symbolTable,
  2. TemplateFileSetting templateFileSetting,
  3. String generateLocation,
  4. ObjectDefinitionRoster objectDefinitionRoster,
)

Implementation

static Danger<CitrusSymbolTable, CitrusLanguageException> compileFragments(CitrusSymbolTable symbolTable, TemplateFileSetting templateFileSetting, String generateLocation, ObjectDefinitionRoster objectDefinitionRoster) {

    final log = Log(classLocation: CitrusLanguage, functionLocation: 'compileFragments');

    final List<FragmentSymbol> list = [];

    for (final i in templateFileSetting.fragmentDefinitions) {

        final rootCitrusSyntaxResult = RootCitrusSyntax.fromFinishSource(i.content);
        log.add(rootCitrusSyntaxResult);

        final finishResult = Finish.fromRootCitrusSyntax(rootCitrusSyntaxResult.wrapped);
        log.add(finishResult);

        final resolveResult = finishResult.wrapped.resolve(symbolTable, generateLocation, [], objectDefinitionRoster);
        log.add(resolveResult);

        final result = FragmentSymbol(i.name, CitrusText(resolveResult.wrapped));

        list.add(result);

    }

    final fragmentSymbolRosterResult = CitrusSymbolRoster.result(list);
    log.add(fragmentSymbolRosterResult);
    if (fragmentSymbolRosterResult is! Success<CitrusSymbolRoster<FragmentSymbol>, CitrusSymbolExceptionA>) return Failure(CitrusLanguageExceptionA(), log);

    final changeFragmentSymbolRosterResult = symbolTable.changeFragmentSymbolRoster(fragmentSymbolRosterResult.wrapped);
    log.add(changeFragmentSymbolRosterResult);
    if (changeFragmentSymbolRosterResult is! Success<CitrusSymbolTable, CitrusSymbolTableExceptionA>) return Failure(CitrusLanguageExceptionB(), log);

    return Success(changeFragmentSymbolRosterResult.wrapped, log);

}