97177949ee34385747b999cffb18182f4e4dece1
[sdc.git] / catalog-ui / src / app / utils / common-utils.ts
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 import * as _ from "lodash";
22 import {Module, AttributeModel, ResourceInstance, PropertyModel, InputFEModel} from "../models";
23 import {ComponentInstanceFactory} from "./component-instance-factory";
24 import {InputBEModel, PropertyBEModel, RelationshipModel} from "app/models";
25 import { PolicyInstance } from "app/models/graph/zones/policy-instance";
26
27 export class CommonUtils {
28
29     static initProperties(propertiesObj:Array<PropertyModel>, uniqueId?:string):Array<PropertyModel> {
30
31         let properties = new Array<PropertyModel>();
32         if (propertiesObj) {
33             _.forEach(propertiesObj, (property:PropertyModel):void => {
34                 if (uniqueId) {
35                     property.readonly = property.parentUniqueId != uniqueId;
36                 }
37                 properties.push(new PropertyModel(property));
38             });
39         }
40         return properties;
41     };
42
43     static initAttributes(attributesObj:Array<AttributeModel>, uniqueId?:string):Array<AttributeModel> {
44
45         let attributes = new Array<AttributeModel>();
46         if (attributesObj) {
47             _.forEach(attributesObj, (attribute:AttributeModel):void => {
48                 if (uniqueId) {
49                     attribute.readonly = attribute.parentUniqueId != uniqueId;
50                 }
51                 attributes.push(new AttributeModel(attribute));
52             });
53         }
54         return attributes;
55     };
56
57     static initComponentInstances(componentInstanceObj:Array<ResourceInstance>):Array<ResourceInstance> {
58
59         let componentInstances = new Array<ResourceInstance>();
60         if (componentInstanceObj) {
61             _.forEach(componentInstanceObj, (instance:ResourceInstance):void => {
62                 componentInstances.push(ComponentInstanceFactory.createComponentInstance(instance));
63             });
64         }
65         return componentInstances;
66     };
67
68     static initModules(moduleArrayObj:Array<Module>):Array<Module> {
69
70         let modules = new Array<Module>();
71
72         if (moduleArrayObj) {
73             _.forEach(moduleArrayObj, (module:Module):void => {
74                 if (module.type === "org.openecomp.groups.VfModule") {
75                     modules.push(new Module(module));
76                 }
77             });
78         }
79         return modules;
80     };
81
82     static initInputs(inputsObj: Array<InputBEModel>): Array<InputBEModel> {
83
84         let inputs = new Array<InputBEModel>();
85
86         if(inputsObj) {
87             _.forEach(inputsObj, (input: InputBEModel):void => {
88                 inputs.push(new InputBEModel(input));
89             })
90         }
91
92         return inputs;
93     }
94
95     static initBeProperties(propertiesObj: Array<PropertyBEModel>): Array<PropertyBEModel> {
96
97         let properties = new Array<PropertyBEModel>();
98
99         if (propertiesObj) {
100             _.forEach(propertiesObj, (property: PropertyBEModel): void => {
101                 properties.push(new PropertyBEModel(property));
102             })
103         }
104
105         return properties;
106     }
107
108     static initComponentInstanceRelations = (componentInstanceRelationsObj:Array<RelationshipModel>):Array<RelationshipModel> => {
109         if (componentInstanceRelationsObj) {
110              let componentInstancesRelations: Array<RelationshipModel> = [];
111             _.forEach(componentInstanceRelationsObj, (instanceRelation:RelationshipModel):void => {
112                 componentInstancesRelations.push(new RelationshipModel(instanceRelation));
113             });
114             return componentInstancesRelations;
115         }
116     };
117
118     static initPolicies = (policiesObj: Array<PolicyInstance>):Array<PolicyInstance> => {
119         let policies = new Array<PolicyInstance>();
120
121         if (policiesObj) {
122             _.forEach(policiesObj, (policy: PolicyInstance): void => {
123                 policies.push(new PolicyInstance(policy));
124             })
125         }
126
127         return policies;
128     }
129 }
130