Catalog alignment
[sdc.git] / catalog-ui / src / app / utils / component-instance-factory.ts
index 25916cc..03abd96 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
  * Created by obarda on 3/7/2016.
  */
 'use strict';
-import {ComponentInstance, ServiceInstance, ResourceInstance, Component, ServiceProxyInstance} from "../models";
-import {ComponentType} from "app/utils";
-import {LeftPaletteComponent} from "../models/components/displayComponent";
+import { ComponentType } from 'app/utils';
+import { Component, ComponentInstance, ResourceInstance, ServiceInstance, ServiceProxyInstance } from '../models';
+import { LeftPaletteComponent } from '../models/components/displayComponent';
 
 export class ComponentInstanceFactory {
 
-    static createComponentInstance(componentInstance:ComponentInstance):ComponentInstance {
-        let newComponentInstance:ComponentInstance;
+    static createComponentInstance(componentInstance: ComponentInstance): ComponentInstance {
+        let newComponentInstance: ComponentInstance;
         switch (componentInstance.originType) {
             case ComponentType.SERVICE:
                 newComponentInstance = new ServiceInstance(componentInstance);
@@ -41,10 +41,10 @@ export class ComponentInstanceFactory {
                 break;
         }
         return newComponentInstance;
-    };
+    }
 
-    public createEmptyComponentInstance = (componentInstanceType?:string):ComponentInstance => {
-        let newComponentInstance:ComponentInstance;
+    static createEmptyComponentInstance = (componentInstanceType?: string): ComponentInstance => {
+        let newComponentInstance: ComponentInstance;
         switch (componentInstanceType) {
             case ComponentType.SERVICE:
                 newComponentInstance = new ServiceInstance();
@@ -57,25 +57,32 @@ export class ComponentInstanceFactory {
                 break;
         }
         return newComponentInstance;
-    };
+    }
 
-    public createComponentInstanceFromComponent = (component:LeftPaletteComponent):ComponentInstance => {
-        let newComponentInstance:ComponentInstance = this.createEmptyComponentInstance(component.componentType);
+    static createComponentInstanceFromComponent = (component: LeftPaletteComponent): ComponentInstance => {
+        const newComponentInstance: ComponentInstance = ComponentInstanceFactory.createEmptyComponentInstance(component.componentType);
         newComponentInstance.uniqueId = component.uniqueId + (new Date()).getTime();
         newComponentInstance.posX = 0;
         newComponentInstance.posY = 0;
         newComponentInstance.name = component.name;
         newComponentInstance.componentVersion = component.version;
-        newComponentInstance.originType = component.getComponentSubType();
-        if(component.getComponentSubType() === ComponentType.SERVICE){
-            newComponentInstance.originType = ComponentType.SERVICE_PROXY
-        }
-        //new component instance -> req. & cap. are added on successful instance creation
+        newComponentInstance.originType = getOriginType(component);
         newComponentInstance.requirements = component.requirements;
         newComponentInstance.capabilities = component.capabilities;
         newComponentInstance.icon = component.icon;
         newComponentInstance.componentUid = component.uniqueId;
         return newComponentInstance;
-    };
 
+        function getOriginType(component: LeftPaletteComponent): string  {
+            if (component.componentSubType) {
+                return component.componentSubType;
+            } else {
+                if (component.componentType === ComponentType.SERVICE) {
+                    return ComponentType.SERVICE_PROXY;
+                } else {
+                    return component.resourceType;
+                }
+            }
+        }
+    }
 }