fromChainAndObjectDefinition static method
Danger<CitrusObject, ChainException>
fromChainAndObjectDefinition(
- Chain chain,
- ObjectDefinition objectDefinition
Implementation
static Danger<CitrusObject, ChainException> fromChainAndObjectDefinition(Chain chain, ObjectDefinition objectDefinition) {
final log = Log(classLocation: CitrusObject, functionLocation: 'fromChainAndObjectDefinition');
final List<CitrusObjectUnit> list = [];
for (final unit in objectDefinition.units) {
late final ObjectValuable value;
switch (unit.type) {
case CitrusFlag.TYPE:
final getResult = chain.isFlag(unit.name);
log.add(getResult);
value = CitrusFlag(getResult.wrapped);
case CitrusText.TYPE:
final getResult = chain.getOptionAsSingleString(unit.name);
log.add(getResult);
if (getResult is! Success<String, ChainExceptionIJK>) return Failure(getResult.asException, log);
value = CitrusText(getResult.wrapped);
case CitrusTextArray.TYPE:
final getResult = chain.getOptionAsMultipleString(unit.name);
log.add(getResult);
if (getResult is! Success<List<String>, ChainExceptionI>) return Failure(getResult.asException, log);
value = CitrusTextArray.fromPrimitive(getResult.wrapped);
}
final result = CitrusObjectUnit(unit.name, value);
list.add(result);
}
final result = CitrusObject(list);
return Success(result, log);
}