re base code
[sdc.git] / catalog-model / src / main / java / org / openecomp / sdc / be / model / ComponentParametersView.java
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 package org.openecomp.sdc.be.model;
22
23 import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
24 import org.openecomp.sdc.be.datatypes.enums.ComponentFieldsEnum;
25 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
26
27 import java.util.List;
28
29 public class ComponentParametersView {
30
31     private boolean ignoreUsers = false;
32     private boolean ignoreGroups = false;
33     private boolean ignoreComponentInstances = false;
34     private boolean ignoreComponentInstancesProperties = false;
35     private boolean ignoreProperties = false;
36     private boolean ignoreCapabilities = false;
37     private boolean ignoreRequirements = false;
38     private boolean ignoreCategories = false;
39     private boolean ignoreAllVersions = false;
40     private boolean ignoreAdditionalInformation = false;
41     private boolean ignoreArtifacts = false;
42     private boolean ignoreInterfaces = false;
43     private boolean ignoreDerivedFrom = false;
44     private boolean ignoreAttributesFrom = false;
45     private boolean ignoreComponentInstancesAttributesFrom = false;
46     private boolean ignoreInputs = false;
47     private boolean ignoreComponentInstancesInputs = false;
48     private boolean ignoreCapabiltyProperties = true;
49     private boolean ignoreServicePath = true;
50     private boolean ignorePolicies = false;
51
52     public ComponentParametersView() {
53     }
54
55     public ComponentParametersView(boolean setAllToIgnore) {
56         this();
57         if (setAllToIgnore) {
58             this.disableAll();
59         }
60     }
61
62     public ComponentParametersView(List<String> filters) {
63         this(true);
64
65         for (String fieldName : filters) {
66             switch (ComponentFieldsEnum.findByValue(fieldName)) {
67                 case PROPERTIES:
68                     this.setIgnoreProperties(false);
69                     break;
70                 case INPUTS:
71                     this.setIgnoreInputs(false);
72                     break;
73                 case USERS:
74                     this.setIgnoreUsers(false);
75                     break;
76                 case CATEGORIES:
77                     this.setIgnoreCategories(false);
78                     break;
79                 case METADATA:
80                     this.setIgnoreUsers(false);
81                     this.setIgnoreCategories(false);
82                     this.setIgnoreAllVersions(false);
83                     this.setIgnoreDerivedFrom(false);
84                     break;
85                 case GROUPS:
86                 case NON_EXCLUDED_GROUPS:
87                     this.setIgnoreGroups(false);
88                     break;
89                 case COMPONENT_INSTANCES:
90                     this.setIgnoreComponentInstances(false);
91                     this.setIgnoreCapabilities(false);
92                     this.setIgnoreRequirements(false);
93                     break;
94                 case COMPONENT_INSTANCES_PROPERTIES:
95                     this.setIgnoreComponentInstances(false); //we need this in order to get the calculate capabilities requirements
96                     this.setIgnoreComponentInstancesProperties(false);
97                     break;
98                 case CAPABILITIES:
99                     this.setIgnoreComponentInstances(false);//we need this in order to get the calculate capabilities requirements
100                     this.setIgnoreCapabilities(false);
101                     break;
102                 case REQUIREMENTS:
103                     this.setIgnoreComponentInstances(false);
104                     this.setIgnoreRequirements(false);
105                     break;
106                 case ALL_VERSIONS:
107                     this.setIgnoreAllVersions(false);
108                     break;
109                 case ADDITIONAL_INFORMATION:
110                     this.setIgnoreAdditionalInformation(false);
111                     break;
112                 case ARTIFACTS:
113                 case DEPLOYMENT_ARTIFACTS:
114                 case TOSCA_ARTIFACTS:
115                 case SERVICE_API_ARTIFACTS:
116                     this.setIgnoreArtifacts(false);
117                     break;
118                 case INTERFACES:
119                     this.setIgnoreInterfaces(false);
120                     break;
121                 case DERIVED_FROM:
122                     this.setIgnoreDerivedFrom(false);
123                     break;
124                 case ATTRIBUTES:
125                     this.setIgnoreAttributesFrom(false);
126                     break;
127                 case COMPONENT_INSTANCES_ATTRIBUTES:
128                     this.setIgnoreComponentInstances(false);
129                     this.setIgnoreComponentInstancesAttributesFrom(false);
130                     break;
131                 case COMPONENT_INSTANCE_INPUTS:
132                     this.setIgnoreComponentInstances(false);
133                     this.setIgnoreComponentInstancesInputs(false);
134                     break;
135                 case INSTANCE_CAPABILTY_PROPERTIES:
136                     this.setIgnoreCapabiltyProperties(false);
137                     break;
138                 case FORWARDING_PATHS:
139                     this.setIgnoreForwardingPath(false);
140                     break;
141                 case POLICIES:
142                 case NON_EXCLUDED_POLICIES:
143                     this.setIgnorePolicies(false);
144                     break;
145                 default:
146                     break;
147             }
148
149         }
150     }
151
152     ///////////////////////////////////////////////////////////////
153     // When adding new member, please update the filter method.
154     ///////////////////////////////////////////////////////////////
155
156     public Component filter(Component component, ComponentTypeEnum componentType) {
157
158         if (ignoreUsers) {
159             component.setCreatorUserId(null);
160             component.setCreatorFullName(null);
161             component.setLastUpdaterUserId(null);
162             component.setLastUpdaterFullName(null);
163         }
164         if (ignoreGroups) {
165             component.setGroups(null);
166         }
167         if (ignoreComponentInstances) {
168             component.setComponentInstances(null);
169             component.setComponentInstancesRelations(null);
170         }
171         if (ignoreComponentInstancesProperties) {
172             component.setComponentInstancesProperties(null);
173         }
174         if (ignoreProperties && componentType == ComponentTypeEnum.RESOURCE) {
175             ((Resource) component).setProperties(null);
176         }
177         if (ignoreCapabilities) {
178             component.setCapabilities(null);
179         }
180         if (ignoreRequirements) {
181             component.setRequirements(null);
182         }
183         if (ignoreCategories) {
184             component.setCategories(null);
185         }
186         if (ignoreAllVersions) {
187             component.setAllVersions(null);
188         }
189         if (ignoreAdditionalInformation && componentType == ComponentTypeEnum.RESOURCE) {
190             ((Resource) component).setAdditionalInformation(null);
191         }
192         if (ignoreArtifacts) {
193             component.setArtifacts(null);
194             component.setSpecificComponetTypeArtifacts(null);
195             component.setDeploymentArtifacts(null);
196             component.setToscaArtifacts(null);
197         }
198         if (ignoreInterfaces && componentType == ComponentTypeEnum.RESOURCE) {
199             ((Resource) component).setInterfaces(null);
200         }
201         if (ignoreDerivedFrom && componentType == ComponentTypeEnum.RESOURCE) {
202             ((Resource) component).setDerivedFrom(null);
203         }
204         if (ignoreAttributesFrom && componentType == ComponentTypeEnum.RESOURCE) {
205             ((Resource) component).setAttributes(null);
206         }
207         if (ignoreComponentInstancesAttributesFrom) {
208             component.setComponentInstancesAttributes(null);
209         }
210         if (ignoreInputs) {
211             component.setInputs(null);
212         }
213         if (ignoreComponentInstancesInputs) {
214             component.setComponentInstancesInputs(null);
215         }
216         if (ignoreServicePath && componentType == ComponentTypeEnum.SERVICE) {
217             ((Service) component).setForwardingPaths(null);
218         }
219         return component;
220     }
221
222     public void disableAll() {
223         ignoreUsers = true;
224         ignoreGroups = true;
225         ignorePolicies = true;
226         ignoreComponentInstances = true;
227         ignoreComponentInstancesProperties = true;
228         ignoreProperties = true;
229         ignoreCapabilities = true;
230         ignoreRequirements = true;
231         ignoreCategories = true;
232         ignoreAllVersions = true;
233         ignoreAdditionalInformation = true;
234         ignoreArtifacts = true;
235         ignoreInterfaces = true;
236         ignoreDerivedFrom = true;
237         ignoreAttributesFrom = true;
238         ignoreInputs = true;
239         ignoreComponentInstancesAttributesFrom = true;
240         ignoreComponentInstancesInputs = true;
241         ignoreCapabiltyProperties = true;
242         ignoreServicePath = true;
243     }
244
245     public boolean isIgnoreGroups() {
246         return ignoreGroups;
247     }
248
249     public void setIgnoreGroups(boolean ignoreGroups) {
250         this.ignoreGroups = ignoreGroups;
251         if (!ignoreGroups) {
252             this.ignoreCapabiltyProperties = ignoreGroups;
253             this.ignoreCapabilities = ignoreGroups;
254         }
255     }
256
257     public boolean isIgnoreComponentInstances() {
258         return ignoreComponentInstances;
259     }
260
261     public void setIgnoreComponentInstances(boolean ignoreComponentInstances) {
262         this.ignoreComponentInstances = ignoreComponentInstances;
263     }
264
265     public boolean isIgnoreProperties() {
266         return ignoreProperties;
267     }
268
269     public void setIgnoreProperties(boolean ignoreProperties) {
270         this.ignoreProperties = ignoreProperties;
271     }
272
273     public boolean isIgnoreCapabilities() {
274         return ignoreCapabilities;
275     }
276
277     public void setIgnoreCapabilities(boolean ignoreCapabilities) {
278         this.ignoreCapabilities = ignoreCapabilities;
279     }
280
281     public boolean isIgnoreRequirements() {
282         return ignoreRequirements;
283     }
284
285     public void setIgnoreRequirements(boolean ignoreRequirements) {
286         this.ignoreRequirements = ignoreRequirements;
287     }
288
289     public boolean isIgnoreCategories() {
290         return ignoreCategories;
291     }
292
293     public void setIgnoreCategories(boolean ignoreCategories) {
294         this.ignoreCategories = ignoreCategories;
295     }
296
297     public boolean isIgnoreAllVersions() {
298         return ignoreAllVersions;
299     }
300
301     public void setIgnoreAllVersions(boolean ignoreAllVersions) {
302         this.ignoreAllVersions = ignoreAllVersions;
303     }
304
305     public boolean isIgnoreAdditionalInformation() {
306         return ignoreAdditionalInformation;
307     }
308
309     private void setIgnoreAdditionalInformation(boolean ignoreAdditionalInformation) {
310         this.ignoreAdditionalInformation = ignoreAdditionalInformation;
311     }
312
313     public boolean isIgnoreArtifacts() {
314         return ignoreArtifacts;
315     }
316
317     public void setIgnoreArtifacts(boolean ignoreArtifacts) {
318         this.ignoreArtifacts = ignoreArtifacts;
319     }
320
321     public boolean isIgnoreComponentInstancesProperties() {
322         return ignoreComponentInstancesProperties;
323     }
324
325     public void setIgnoreComponentInstancesProperties(boolean ignoreComponentInstancesProperties) {
326         this.ignoreComponentInstancesProperties = ignoreComponentInstancesProperties;
327     }
328
329     public boolean isIgnoreComponentInstancesInputs() {
330         return ignoreComponentInstancesInputs;
331     }
332
333     public void setIgnoreComponentInstancesInputs(boolean ignoreComponentInstancesInputs) {
334         this.ignoreComponentInstancesInputs = ignoreComponentInstancesInputs;
335     }
336
337     public boolean isIgnoreInterfaces() {
338         return ignoreInterfaces;
339     }
340
341     public void setIgnoreInterfaces(boolean ignoreInterfaces) {
342         this.ignoreInterfaces = ignoreInterfaces;
343     }
344
345     public boolean isIgnoreAttributesFrom() {
346         return ignoreAttributesFrom;
347     }
348
349     public void setIgnoreAttributesFrom(boolean ignoreAttributesFrom) {
350         this.ignoreAttributesFrom = ignoreAttributesFrom;
351     }
352
353     public boolean isIgnoreComponentInstancesAttributesFrom() {
354         return ignoreComponentInstancesAttributesFrom;
355     }
356
357     private void setIgnoreComponentInstancesAttributesFrom(boolean ignoreComponentInstancesAttributesFrom) {
358         this.ignoreComponentInstancesAttributesFrom = ignoreComponentInstancesAttributesFrom;
359     }
360
361     public boolean isIgnoreDerivedFrom() {
362         return ignoreDerivedFrom;
363     }
364
365     private void setIgnoreDerivedFrom(boolean ignoreDerivedFrom) {
366         this.ignoreDerivedFrom = ignoreDerivedFrom;
367     }
368
369     public boolean isIgnoreUsers() {
370         return ignoreUsers;
371     }
372
373     public void setIgnoreUsers(boolean ignoreUsers) {
374         this.ignoreUsers = ignoreUsers;
375     }
376
377     public boolean isIgnoreInputs() {
378         return ignoreInputs;
379     }
380
381     public void setIgnoreInputs(boolean ignoreInputs) {
382         this.ignoreInputs = ignoreInputs;
383     }
384
385     public boolean isIgnoreCapabiltyProperties() {
386         return ignoreCapabiltyProperties;
387     }
388
389     public void setIgnoreCapabiltyProperties(boolean ignoreCapabiltyProperties) {
390         this.ignoreCapabiltyProperties = ignoreCapabiltyProperties;
391     }
392
393     public boolean isIgnoreForwardingPath() {
394         return ignoreServicePath;
395     }
396
397     public void setIgnoreForwardingPath(boolean ignoreServicePath) {
398         this.ignoreServicePath = ignoreServicePath;
399     }
400
401     public boolean isIgnorePolicies() {
402         return ignorePolicies;
403     }
404
405     public void setIgnorePolicies(boolean ignorePolicies) {
406         this.ignorePolicies = ignorePolicies;
407     }
408
409     public JsonParseFlagEnum detectParseFlag() {
410         JsonParseFlagEnum parseFlag;
411         if (isIgnoreComponentInstances()) {
412             parseFlag = JsonParseFlagEnum.ParseMetadata;
413         } else {
414             parseFlag = JsonParseFlagEnum.ParseAll;
415         }
416         return parseFlag;
417     }
418 }