From 16a9fce0e104a38371a9e5a567ec611ae3fc7f33 Mon Sep 17 00:00:00 2001 From: ys9693 Date: Sun, 19 Jan 2020 13:50:02 +0200 Subject: Catalog alignment Issue-ID: SDC-2724 Signed-off-by: ys9693 Change-Id: I52b4aacb58cbd432ca0e1ff7ff1f7dd52099c6fe --- .../componentsInstances/fullComponentInstance.ts | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 catalog-ui/src/app/models/componentsInstances/fullComponentInstance.ts (limited to 'catalog-ui/src/app/models/componentsInstances/fullComponentInstance.ts') diff --git a/catalog-ui/src/app/models/componentsInstances/fullComponentInstance.ts b/catalog-ui/src/app/models/componentsInstances/fullComponentInstance.ts new file mode 100644 index 0000000000..ce5aa1dae9 --- /dev/null +++ b/catalog-ui/src/app/models/componentsInstances/fullComponentInstance.ts @@ -0,0 +1,110 @@ +import { ComponentInstance, Component, ArtifactGroupModel, Service, Resource, IMainCategory, ArtifactModel, AttributeModel } from "app/models"; +import { ComponentType } from '../../utils/constants'; +import * as _ from 'lodash'; + + +export class FullComponentInstance extends ComponentInstance { + public contactId: string; + public componentType: string; + public interfaces:any; + public tags:Array; + public version:string; + public allVersions:any; + public highestVersion:boolean; + public categories:Array; + public creationDate:number; + public creatorFullName:string; + public vendorName:string; + public vendorRelease:string; + public systemName:string; + public uuid:string; + public lifecycleState: string; + public archived: boolean; + + public isServiceInstance: boolean; + public isResourceInstance: boolean; + public directives: string[]; + + DIRECTIVES_TYPES = { + SELECTABLE: 'selectable' + }; + + //service + public serviceApiArtifacts:ArtifactGroupModel; + public serviceType:string; + public serviceRole:string; + + //resource + public csarUUID:string; + public isCsarComponent: boolean; + public csarVersion:string; + public csarPackageType:string; + public packageId:string; + public resourceType:string; + public resourceVendorModelNumber:string; + + public attributes: Array; + + constructor(componentInstance:ComponentInstance, originComponent:Component) { + super(componentInstance); + + this.componentType = originComponent.componentType; + this.interfaces = originComponent.interfaces; + this.tags = []; + this.tags = _.clone(originComponent.tags); + this.version = originComponent.version; + this.allVersions = originComponent.allVersions; + this.highestVersion = originComponent.highestVersion; + this.categories = originComponent.categories; + this.creationDate = originComponent.creationDate; + this.creatorFullName = originComponent.creatorFullName; + this.vendorName = originComponent.vendorName; + this.vendorRelease = originComponent.vendorRelease; + this.contactId = originComponent.contactId; + this.description = originComponent.description; + this.systemName = originComponent.systemName; + this.uuid = originComponent.uuid; + this.lifecycleState = originComponent.lifecycleState; + this.archived = originComponent.archived; + this.attributes = originComponent.attributes; + this.directives = componentInstance.directives; + + + if(originComponent.componentType === ComponentType.SERVICE || originComponent.componentType === ComponentType.SERVICE_PROXY){ + this.isServiceInstance = true; + this.serviceApiArtifacts = (originComponent).serviceApiArtifacts; + this.serviceType = (originComponent).serviceType; + this.serviceRole = (originComponent).serviceRole; + } + if(originComponent.componentType === ComponentType.RESOURCE) { + this.isResourceInstance = true; + this.csarUUID = (originComponent).csarUUID; + this.isCsarComponent = !!this.csarUUID; + this.resourceType = (originComponent).resourceType; + this.resourceVendorModelNumber = (originComponent).resourceVendorModelNumber; + } + } + + public isResource = ():boolean => { + return this.isResourceInstance; + } + + public isService = ():boolean => { + return this.isServiceInstance; + } + public isDependent = () : boolean => { + return this.directives && this.directives.indexOf(this.DIRECTIVES_TYPES.SELECTABLE) !== -1; + } + + public markAsDependent = () : void => { + this.directives.push(this.DIRECTIVES_TYPES.SELECTABLE); + } + + public unmarkAsDependent = () : void => { + const index = this.directives.indexOf(this.DIRECTIVES_TYPES.SELECTABLE); + if(index >= 0) { + this.directives.splice(index, 1); + } + } + +} \ No newline at end of file -- cgit 1.2.3-korg