NetNewsWire/Mac/Scriptability/ScriptingObjectContainer.swift
2025-01-22 22:17:02 -08:00

39 lines
1.6 KiB
Swift

//
// 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
}
}