putSymbol method
Implementation
Danger<CitrusSymbolTable, CitrusSymbolTableException> putSymbol(CitrusSymbol symbol) {
final log = Log(classLocation: runtimeType, functionLocation: 'putSymbol');
late final Danger<CitrusSymbolTable, CitrusSymbolTableException> result;
switch (symbol) {
case TextSymbol():
final putResult = textSymbolRoster.put(symbol);
log.add(putResult);
result = CitrusSymbolTable.result(putResult.wrapped, this.temporarySymbolRoster, this.textArraySymbolRoster, this.fragmentSymbolRoster, this.flagSymbolRoster, this.objectSymbolRoster, this.objectArraySymbolRoster);
case TemporarySymbol():
final putResult = temporarySymbolRoster.put(symbol);
log.add(putResult);
result = CitrusSymbolTable.result(this.textSymbolRoster, putResult.wrapped, this.textArraySymbolRoster, this.fragmentSymbolRoster, this.flagSymbolRoster, this.objectSymbolRoster, this.objectArraySymbolRoster);
case TextArraySymbol():
final putResult = textArraySymbolRoster.put(symbol);
log.add(putResult);
result = CitrusSymbolTable.result(this.textSymbolRoster, this.temporarySymbolRoster, putResult.wrapped, this.fragmentSymbolRoster, this.flagSymbolRoster, this.objectSymbolRoster, this.objectArraySymbolRoster);
case FragmentSymbol():
final putResult = fragmentSymbolRoster.put(symbol);
log.add(putResult);
result = CitrusSymbolTable.result(this.textSymbolRoster, this.temporarySymbolRoster, this.textArraySymbolRoster, putResult.wrapped, this.flagSymbolRoster, this.objectSymbolRoster, this.objectArraySymbolRoster);
case FlagSymbol():
final putResult = flagSymbolRoster.put(symbol);
log.add(putResult);
result = CitrusSymbolTable.result(this.textSymbolRoster, this.temporarySymbolRoster, this.textArraySymbolRoster, this.fragmentSymbolRoster, putResult.wrapped, this.objectSymbolRoster, this.objectArraySymbolRoster);
case ObjectSymbol():
final putResult = objectSymbolRoster.put(symbol);
log.add(putResult);
result = CitrusSymbolTable.result(this.textSymbolRoster, this.temporarySymbolRoster, this.textArraySymbolRoster, this.fragmentSymbolRoster, this.flagSymbolRoster, putResult.wrapped, this.objectArraySymbolRoster);
case ObjectArraySymbol():
final putResult = objectArraySymbolRoster.put(symbol);
log.add(putResult);
result = CitrusSymbolTable.result(this.textSymbolRoster, this.temporarySymbolRoster, this.textArraySymbolRoster, this.fragmentSymbolRoster, this.flagSymbolRoster, this.objectSymbolRoster, putResult.wrapped);
}
log.add(result);
return Danger.fromDanger(result, log);
}