deleteRepeatInstance method
Removes the repeat instance at deleteRef, renumbers the following
instances and re-evaluates what depended on it.
The reference-based core of JavaRosa's deleteRepeat(FormIndex).
Implementation
void deleteRepeatInstance(TreeReference deleteRef) {
final deleteElement = mainInstance.resolveReference(deleteRef)!;
final parentElement = mainInstance.resolveReference(deleteRef.parentRef!)!;
final childMult = deleteElement.multiplicity;
parentElement.removeChild(deleteElement);
for (final child in parentElement.children) {
if (child.name == deleteElement.name && child.multiplicity > childMult) {
child
..multiplicity = child.multiplicity - 1
..clearChildrenCaches();
}
}
_dag.deleteRepeatInstance(
mainInstance,
evaluationContext,
deleteRef,
deleteElement,
);
}