Digital PCT265 defect: Missing moecule.id to moduleName validation for the replacement behavior.

This commit is contained in:
Hedden, Kyle Matthew 2024-08-21 19:59:46 -04:00
parent 6c841c078a
commit 472323f303

View File

@ -49,9 +49,15 @@ public class ReplaceableMoleculeBehavior: PageMoleculeTransformationBehavior, Pa
public func onPageNew(rootMolecules: [MoleculeModelProtocol], _ delegateObject: MVMCoreUIDelegateObject?, changes: inout [MoleculeModelProtocol]) -> [MoleculeModelProtocol]? { public func onPageNew(rootMolecules: [MoleculeModelProtocol], _ delegateObject: MVMCoreUIDelegateObject?, changes: inout [MoleculeModelProtocol]) -> [MoleculeModelProtocol]? {
self.delegateObject = delegateObject self.delegateObject = delegateObject
let moleculeModels = moleculeIds.compactMap { moleculeId in let moleculeModels: [MoleculeModelProtocol] = moleculeIds.compactMap { moleculeId in
do { do {
return try delegateObject?.moleculeDelegate?.getModuleWithName(moleculeId) guard let molecule = try delegateObject?.moleculeDelegate?.getModuleWithName(moleculeId) else {
return nil // Valid. Module might not be present yet.
}
guard molecule.id == moleculeId else {
throw MolecularError.validationError("The module name \(moleculeId) must match the molecule id \(molecule.id) it encloses!")
}
return molecule
} catch { } catch {
let coreError = MVMCoreErrorObject.createErrorObject(for: error, location: String(describing: type(of: self)))! let coreError = MVMCoreErrorObject.createErrorObject(for: error, location: String(describing: type(of: self)))!
if let error = error as? HumanReadableDecodingErrorProtocol { if let error = error as? HumanReadableDecodingErrorProtocol {