addTemporaryProperty method
Danger<PropertyTable, PropertyTableException>
addTemporaryProperty(
- PropertyName temporaryPropertyName,
- PropertyName listPropertyName
Implementation
Danger<PropertyTable, PropertyTableException> addTemporaryProperty(PropertyName temporaryPropertyName, PropertyName listPropertyName) {
final log = Log(classLocation: runtimeType, functionLocation: 'addTemporaryProperty');
final listPropertyResult = listPropertyRoster.getByPrimaryKey(listPropertyName);
log.add(listPropertyResult);
if (listPropertyResult is! Success<ListProperty, RosterPatternExceptionB>) return Failure(PropertyTableExceptionC(), log.monitor({
'list property name': listPropertyName.value,
'exists list property name list': listPropertyRoster.nameList.toPrimitive(),
}));
final temporaryPropertyResult = TemporaryProperty.result(
temporaryPropertyName,
listPropertyResult.wrapped.value,
PropertyLaps.one(),
);
log.add(temporaryPropertyResult);
final addResult = temporaryPropertyRoster.add(temporaryPropertyResult.wrapped);
log.add(addResult);
if (addResult is! Success<PropertyRoster<TemporaryProperty>, PropertyExceptionA>) return Failure(addResult.asException, log.monitor({
'duplicate temporary property name': temporaryPropertyName.value,
'temporary property name list': temporaryPropertyRoster.nameList.toPrimitive(),
}));
final result = PropertyTable.result(this.permanentlyPropertyRoster, addResult.wrapped, this.listPropertyRoster, this.fragmentPropertyRoster);
log.add(result);
if (result is! Success<PropertyTable, PropertyTableExceptionA>) return Failure(result.asException, log);
return Success(result.wrapped, log);
}