From 3f4ccd93ab14a1e0b28b87b4d80c99455bf5b6a5 Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Thu, 5 Nov 2015 15:05:54 -0800 Subject: [PATCH] [Creation] Add creation capability ...allowing domain objects to be instantiated in-memory without persisting them. nasa/openmctweb#215 --- .../src/capabilities/CreationCapability.js | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 platform/core/src/capabilities/CreationCapability.js diff --git a/platform/core/src/capabilities/CreationCapability.js b/platform/core/src/capabilities/CreationCapability.js new file mode 100644 index 0000000000..1b19bc106b --- /dev/null +++ b/platform/core/src/capabilities/CreationCapability.js @@ -0,0 +1,42 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +/*global define,Promise*/ + +define( + ['../objects/DomainObjectImpl', 'uuid'], + function (DomainObjectImpl, uuid) { + 'use strict'; + + function CreationCapability(capabilityService, domainObject) { + this.capabilityService = capabilityService; + this.domainObject = domainObject; + } + + CreationCapability.prototype.create = function (model) { + var id = uuid(), + capabilities = this.capabilityService.getCapabilities(model); + return new DomainObjectImpl(id, model, capabilities); + }; + + return CreationCapability; + } +);