add method
Adds part. Throws a NameTakenException when its id is taken.
Implementation
@override
Registration add(SnapshotPart part) {
if (_scope?.manifest case final manifest? when part.id != manifest.id) {
if (manifest.nameProblem(part.id, what: 'the snapshot part')
case final problem?) {
throw PluginException(problem);
}
}
if (_parts.any((existing) => existing.id == part.id)) {
throw NameTakenException(part.id, what: 'the snapshot part');
}
_parts.add(part);
final registration = Registration(() => _parts.remove(part));
_scope?.track(registration);
return registration;
}