// // ScriptingObjectContainer.swift // Account // // Created by Olof Hellman on 1/9/18. // Copyright © 2018 Olof Hellman. All rights reserved. // import AppKit import Account protocol ScriptingObjectContainer: ScriptingObject { var scriptingClassDescription: NSScriptClassDescription { get } func deleteElement(_ element: ScriptingObject) } extension ScriptingObjectContainer { func makeFormNameScriptObjectSpecifier(forObject object: NamedScriptingObject) -> NSScriptObjectSpecifier? { let containerClassDescription = self.scriptingClassDescription let containerScriptObjectSpecifier = self.objectSpecifier let scriptingKey = object.scriptingKey let name = object.name let specifier = NSNameSpecifier(containerClassDescription: containerClassDescription, containerSpecifier: containerScriptObjectSpecifier, key: scriptingKey, name: name) return specifier } func makeFormUniqueIDScriptObjectSpecifier(forObject object: UniqueIdScriptingObject) -> NSScriptObjectSpecifier? { let containerClassDescription = self.scriptingClassDescription let containerScriptObjectSpecifier = self.objectSpecifier let scriptingKey = object.scriptingKey let uniqueId = object.scriptingUniqueId let specifier = NSUniqueIDSpecifier(containerClassDescription: containerClassDescription, containerSpecifier: containerScriptObjectSpecifier, key: scriptingKey, uniqueID: uniqueId) return specifier } }