diff options
Diffstat (limited to 'catalog-ui/src/app/models/componentsInstances')
4 files changed, 155 insertions, 0 deletions
diff --git a/catalog-ui/src/app/models/componentsInstances/componentInstance.ts b/catalog-ui/src/app/models/componentsInstances/componentInstance.ts new file mode 100644 index 0000000000..22c6232548 --- /dev/null +++ b/catalog-ui/src/app/models/componentsInstances/componentInstance.ts @@ -0,0 +1,113 @@ +/** + * Created by obarda on 2/4/2016. + */ +'use strict'; +import {ArtifactGroupModel, CapabilitiesGroup,RequirementsGroup, PropertyModel, InputModel, Module} from "../../models"; +import {ResourceType} from "../../utils/constants"; + +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:ArtifactGroupModel; + public artifacts:ArtifactGroupModel; + public propertyValueCounter:number; + public uniqueId:string; + public creationTime:number; + public modificationTime:number; + public capabilities:CapabilitiesGroup; + public requirements:RequirementsGroup; + public customizationUUID:string; + //custom properties + public certified:boolean; + public iconSprite:string; + public inputs:Array<InputModel>; + public properties:Array<PropertyModel>; + public groupInstances:Array<Module>; + + 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 ArtifactGroupModel(componentInstance.deploymentArtifacts); + this.artifacts = new ArtifactGroupModel(componentInstance.artifacts); + this.uniqueId = componentInstance.uniqueId; + this.creationTime = componentInstance.creationTime; + this.modificationTime = componentInstance.modificationTime; + this.propertyValueCounter = componentInstance.propertyValueCounter; + this.capabilities = new CapabilitiesGroup(componentInstance.capabilities); + this.requirements = new RequirementsGroup(componentInstance.requirements); + this.certified = componentInstance.certified; + this.customizationUUID = componentInstance.customizationUUID; + this.updatePosition(componentInstance.posX, componentInstance.posY); + this.groupInstances = componentInstance.groupInstances; + } + } + + 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 isComplex = () : boolean => { + return this.originType === ResourceType.VF; + } + + public setInstanceRC = ():void=> { + _.forEach(this.requirements, (requirementValue:Array<any>, requirementKey)=> { + _.forEach(requirementValue, (requirement)=> { + if (!requirement.ownerName) { + requirement['ownerId'] = this.uniqueId; + requirement['ownerName'] = this.name; + } + }); + }); + _.forEach(this.capabilities, (capabilityValue:Array<any>, 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 => { + let temp = angular.copy(this); + temp.certified = undefined; + temp.iconSprite = undefined; + temp.inputs = undefined; + temp.groupInstances = undefined; + temp.properties = undefined; + temp.requirements = undefined; + temp.capabilities = undefined; + return temp; + }; +} diff --git a/catalog-ui/src/app/models/componentsInstances/productInstance.ts b/catalog-ui/src/app/models/componentsInstances/productInstance.ts new file mode 100644 index 0000000000..7b73f83988 --- /dev/null +++ b/catalog-ui/src/app/models/componentsInstances/productInstance.ts @@ -0,0 +1,13 @@ +/** + * Created by obarda on 2/4/2016. + */ +'use strict'; +import {ComponentInstance} from "./componentInstance"; + +export class ProductInstance extends ComponentInstance { + + constructor(componentInstance?:ProductInstance) { + super(componentInstance); + this.iconSprite = "sprite-product-icons"; + } +} diff --git a/catalog-ui/src/app/models/componentsInstances/resourceInstance.ts b/catalog-ui/src/app/models/componentsInstances/resourceInstance.ts new file mode 100644 index 0000000000..be4bde9af9 --- /dev/null +++ b/catalog-ui/src/app/models/componentsInstances/resourceInstance.ts @@ -0,0 +1,15 @@ +/** + * Created by obarda on 2/4/2016. + */ +'use strict'; +import {ComponentInstance} from "./componentInstance"; + +export class ResourceInstance extends ComponentInstance { + + constructor(componentInstance?:ResourceInstance) { + super(componentInstance); + + this.iconSprite = "sprite-resource-icons"; + } +} + diff --git a/catalog-ui/src/app/models/componentsInstances/serviceInstance.ts b/catalog-ui/src/app/models/componentsInstances/serviceInstance.ts new file mode 100644 index 0000000000..060519b83d --- /dev/null +++ b/catalog-ui/src/app/models/componentsInstances/serviceInstance.ts @@ -0,0 +1,14 @@ +/** + * Created by obarda on 2/4/2016. + */ +'use strict'; +import {ComponentInstance} from "./componentInstance"; + +export class ServiceInstance extends ComponentInstance { + + constructor(componentInstance?:ServiceInstance) { + super(componentInstance); + this.iconSprite = "sprite-services-icons"; + } +} + |