/*- * ============LICENSE_START======================================================= * SDC * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * 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. * ============LICENSE_END========================================================= */ /** * Created by obarda on 2/4/2016. */ /// module Sdc.Models.ComponentsInstances { 'use strict'; export class ComponentInstance{ public componentUid: string; public componentName:string; public posX: number; public posY: number; public componentVersion:string; public description: string; public icon: string; public name: string; public normalizedName:string; public originType: string; public deploymentArtifacts: Models.ArtifactGroupModel; public propertyValueCounter: number; public uniqueId: string; public creationTime: number; public modificationTime: number; public capabilities: Models.CapabilitiesGroup; public requirements: Models.RequirementsGroup; //custom properties public certified: boolean; public iconSprite:string; public inputs: Array; public properties: Array; constructor(componentInstance?: ComponentInstance) { if(componentInstance) { this.componentUid = componentInstance.componentUid; this.componentName = componentInstance.componentName; this.componentVersion = componentInstance.componentVersion; this.description = componentInstance.description; this.icon = componentInstance.icon; this.name = componentInstance.name; this.normalizedName = componentInstance.normalizedName; this.originType = componentInstance.originType; this.deploymentArtifacts = new Models.ArtifactGroupModel(componentInstance.deploymentArtifacts); this.uniqueId = componentInstance.uniqueId; this.creationTime = componentInstance.creationTime; this.modificationTime = componentInstance.modificationTime; this.propertyValueCounter = componentInstance.propertyValueCounter; this.capabilities = new Models.CapabilitiesGroup(componentInstance.capabilities); this.requirements = new Models.RequirementsGroup(componentInstance.requirements); this.certified = componentInstance.certified; this.updatePosition(componentInstance.posX, componentInstance.posY); } } public isUcpe = ():boolean =>{ if(this.originType === 'VF' && this.capabilities && this.capabilities['tosca.capabilities.Container'] && this.name.toLowerCase().indexOf('ucpe') > -1){ return true; } return false; }; public isVl = ():boolean =>{ return this.originType === 'VL'; }; public setInstanceRC = ():void=>{ _.forEach(this.requirements, (requirementValue:Array, requirementKey)=> { _.forEach(requirementValue, (requirement)=> { if (!requirement.ownerName){ requirement['ownerId'] = this.uniqueId; requirement['ownerName'] = this.name; } }); }); _.forEach(this.capabilities, (capabilityValue:Array, capabilityKey)=> { _.forEach(capabilityValue, (capability)=> { if (!capability.ownerName){ capability['ownerId'] = this.uniqueId; capability['ownerName'] = this.name; } }); }); }; public updatePosition (posX:number, posY:number) { this.posX = posX; this.posY = posY; } public toJSON = ():any => { var serverInstance = angular.copy(this); serverInstance.certified = undefined; serverInstance.iconSprite = undefined; serverInstance.inputs = undefined; serverInstance.properties = undefined; serverInstance.requirements = undefined; serverInstance.capabilities = undefined; return serverInstance; }; } }