2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.be.model;
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;
27 import java.util.List;
29 public class ComponentParametersView {
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 private boolean ignoreNodeFilter = false;
53 public ComponentParametersView() {
56 public ComponentParametersView(boolean setAllToIgnore) {
63 public ComponentParametersView(List<String> filters) {
66 for (String fieldName : filters) {
67 switch (ComponentFieldsEnum.findByValue(fieldName)) {
69 this.setIgnoreProperties(false);
72 this.setIgnoreInputs(false);
75 this.setIgnoreUsers(false);
78 this.setIgnoreCategories(false);
81 this.setIgnoreUsers(false);
82 this.setIgnoreCategories(false);
83 this.setIgnoreAllVersions(false);
84 this.setIgnoreDerivedFrom(false);
87 case NON_EXCLUDED_GROUPS:
88 this.setIgnoreGroups(false);
90 case COMPONENT_INSTANCES:
91 this.setIgnoreComponentInstances(false);
92 this.setIgnoreCapabilities(false);
93 this.setIgnoreRequirements(false);
94 this.setIgnoreNodeFilter(false);
96 case COMPONENT_INSTANCES_PROPERTIES:
97 this.setIgnoreComponentInstances(false); //we need this in order to get the calculate capabilities requirements
98 this.setIgnoreComponentInstancesProperties(false);
101 this.setIgnoreComponentInstances(false);//we need this in order to get the calculate capabilities requirements
102 this.setIgnoreCapabilities(false);
105 this.setIgnoreComponentInstances(false);
106 this.setIgnoreRequirements(false);
109 this.setIgnoreAllVersions(false);
111 case ADDITIONAL_INFORMATION:
112 this.setIgnoreAdditionalInformation(false);
115 case DEPLOYMENT_ARTIFACTS:
116 case TOSCA_ARTIFACTS:
117 case SERVICE_API_ARTIFACTS:
118 this.setIgnoreArtifacts(false);
121 this.setIgnoreInterfaces(false);
124 this.setIgnoreDerivedFrom(false);
127 this.setIgnoreAttributesFrom(false);
129 case COMPONENT_INSTANCES_ATTRIBUTES:
130 this.setIgnoreComponentInstances(false);
131 this.setIgnoreComponentInstancesAttributesFrom(false);
133 case COMPONENT_INSTANCE_INPUTS:
134 this.setIgnoreComponentInstances(false);
135 this.setIgnoreComponentInstancesInputs(false);
137 case INSTANCE_CAPABILTY_PROPERTIES:
138 this.setIgnoreCapabiltyProperties(false);
140 case FORWARDING_PATHS:
141 this.setIgnoreForwardingPath(false);
144 case NON_EXCLUDED_POLICIES:
145 this.setIgnorePolicies(false);
148 this.setIgnoreNodeFilter(false);
157 ///////////////////////////////////////////////////////////////
158 // When adding new member, please update the filter method.
159 ///////////////////////////////////////////////////////////////
161 public Component filter(Component component, ComponentTypeEnum componentType) {
164 component.setCreatorUserId(null);
165 component.setCreatorFullName(null);
166 component.setLastUpdaterUserId(null);
167 component.setLastUpdaterFullName(null);
170 component.setGroups(null);
172 if (ignoreComponentInstances) {
173 component.setComponentInstances(null);
174 component.setComponentInstancesRelations(null);
176 if (ignoreComponentInstancesProperties) {
177 component.setComponentInstancesProperties(null);
179 if (ignoreProperties && componentType == ComponentTypeEnum.RESOURCE) {
180 ((Resource) component).setProperties(null);
182 if (ignoreCapabilities) {
183 component.setCapabilities(null);
185 if (ignoreRequirements) {
186 component.setRequirements(null);
188 if (ignoreCategories) {
189 component.setCategories(null);
191 if (ignoreAllVersions) {
192 component.setAllVersions(null);
194 if (ignoreAdditionalInformation && componentType == ComponentTypeEnum.RESOURCE) {
195 ((Resource) component).setAdditionalInformation(null);
197 if (ignoreArtifacts) {
198 component.setArtifacts(null);
199 component.setSpecificComponetTypeArtifacts(null);
200 component.setDeploymentArtifacts(null);
201 component.setToscaArtifacts(null);
203 if (ignoreInterfaces && componentType == ComponentTypeEnum.RESOURCE) {
204 ((Resource) component).setInterfaces(null);
206 if (ignoreDerivedFrom && componentType == ComponentTypeEnum.RESOURCE) {
207 ((Resource) component).setDerivedFrom(null);
209 if (ignoreAttributesFrom && componentType == ComponentTypeEnum.RESOURCE) {
210 ((Resource) component).setAttributes(null);
212 if (ignoreComponentInstancesAttributesFrom) {
213 component.setComponentInstancesAttributes(null);
216 component.setInputs(null);
218 if (ignoreComponentInstancesInputs) {
219 component.setComponentInstancesInputs(null);
221 if (ignoreServicePath && componentType == ComponentTypeEnum.SERVICE) {
222 ((Service) component).setForwardingPaths(null);
224 if (ignoreNodeFilter){
225 component.setNodeFilterComponents(null);
230 public void disableAll() {
233 ignorePolicies = true;
234 ignoreComponentInstances = true;
235 ignoreComponentInstancesProperties = true;
236 ignoreProperties = true;
237 ignoreCapabilities = true;
238 ignoreRequirements = true;
239 ignoreCategories = true;
240 ignoreAllVersions = true;
241 ignoreAdditionalInformation = true;
242 ignoreArtifacts = true;
243 ignoreInterfaces = true;
244 ignoreDerivedFrom = true;
245 ignoreAttributesFrom = true;
247 ignoreComponentInstancesAttributesFrom = true;
248 ignoreComponentInstancesInputs = true;
249 ignoreCapabiltyProperties = true;
250 ignoreServicePath = true;
251 ignoreNodeFilter = true;
254 public boolean isIgnoreGroups() {
258 public void setIgnoreGroups(boolean ignoreGroups) {
259 this.ignoreGroups = ignoreGroups;
261 this.ignoreCapabiltyProperties = ignoreGroups;
262 this.ignoreCapabilities = ignoreGroups;
266 public boolean isIgnoreComponentInstances() {
267 return ignoreComponentInstances;
270 public void setIgnoreComponentInstances(boolean ignoreComponentInstances) {
271 this.ignoreComponentInstances = ignoreComponentInstances;
274 public boolean isIgnoreProperties() {
275 return ignoreProperties;
278 public void setIgnoreProperties(boolean ignoreProperties) {
279 this.ignoreProperties = ignoreProperties;
282 public boolean isIgnoreCapabilities() {
283 return ignoreCapabilities;
286 public void setIgnoreCapabilities(boolean ignoreCapabilities) {
287 this.ignoreCapabilities = ignoreCapabilities;
290 public boolean isIgnoreRequirements() {
291 return ignoreRequirements;
294 public void setIgnoreRequirements(boolean ignoreRequirements) {
295 this.ignoreRequirements = ignoreRequirements;
298 public boolean isIgnoreCategories() {
299 return ignoreCategories;
302 public void setIgnoreCategories(boolean ignoreCategories) {
303 this.ignoreCategories = ignoreCategories;
306 public boolean isIgnoreAllVersions() {
307 return ignoreAllVersions;
310 public void setIgnoreAllVersions(boolean ignoreAllVersions) {
311 this.ignoreAllVersions = ignoreAllVersions;
314 public boolean isIgnoreAdditionalInformation() {
315 return ignoreAdditionalInformation;
318 private void setIgnoreAdditionalInformation(boolean ignoreAdditionalInformation) {
319 this.ignoreAdditionalInformation = ignoreAdditionalInformation;
322 public boolean isIgnoreArtifacts() {
323 return ignoreArtifacts;
326 public void setIgnoreArtifacts(boolean ignoreArtifacts) {
327 this.ignoreArtifacts = ignoreArtifacts;
330 public boolean isIgnoreComponentInstancesProperties() {
331 return ignoreComponentInstancesProperties;
334 public void setIgnoreComponentInstancesProperties(boolean ignoreComponentInstancesProperties) {
335 this.ignoreComponentInstancesProperties = ignoreComponentInstancesProperties;
338 public boolean isIgnoreComponentInstancesInputs() {
339 return ignoreComponentInstancesInputs;
342 public void setIgnoreComponentInstancesInputs(boolean ignoreComponentInstancesInputs) {
343 this.ignoreComponentInstancesInputs = ignoreComponentInstancesInputs;
346 public boolean isIgnoreInterfaces() {
347 return ignoreInterfaces;
350 public void setIgnoreInterfaces(boolean ignoreInterfaces) {
351 this.ignoreInterfaces = ignoreInterfaces;
354 public boolean isIgnoreAttributesFrom() {
355 return ignoreAttributesFrom;
358 public void setIgnoreAttributesFrom(boolean ignoreAttributesFrom) {
359 this.ignoreAttributesFrom = ignoreAttributesFrom;
362 public boolean isIgnoreComponentInstancesAttributesFrom() {
363 return ignoreComponentInstancesAttributesFrom;
366 private void setIgnoreComponentInstancesAttributesFrom(boolean ignoreComponentInstancesAttributesFrom) {
367 this.ignoreComponentInstancesAttributesFrom = ignoreComponentInstancesAttributesFrom;
370 public boolean isIgnoreDerivedFrom() {
371 return ignoreDerivedFrom;
374 private void setIgnoreDerivedFrom(boolean ignoreDerivedFrom) {
375 this.ignoreDerivedFrom = ignoreDerivedFrom;
378 public boolean isIgnoreUsers() {
382 public void setIgnoreUsers(boolean ignoreUsers) {
383 this.ignoreUsers = ignoreUsers;
386 public boolean isIgnoreInputs() {
390 public void setIgnoreInputs(boolean ignoreInputs) {
391 this.ignoreInputs = ignoreInputs;
394 public boolean isIgnoreCapabiltyProperties() {
395 return ignoreCapabiltyProperties;
398 public void setIgnoreCapabiltyProperties(boolean ignoreCapabiltyProperties) {
399 this.ignoreCapabiltyProperties = ignoreCapabiltyProperties;
402 public boolean isIgnoreForwardingPath() {
403 return ignoreServicePath;
406 public void setIgnoreForwardingPath(boolean ignoreServicePath) {
407 this.ignoreServicePath = ignoreServicePath;
410 public boolean isIgnorePolicies() {
411 return ignorePolicies;
414 public void setIgnorePolicies(boolean ignorePolicies) {
415 this.ignorePolicies = ignorePolicies;
418 public boolean isIgnoreNodeFilter() {
419 return ignoreNodeFilter;
422 public void setIgnoreNodeFilter(boolean ignoreNodeFilter) {
423 this.ignoreNodeFilter = ignoreNodeFilter;
426 public JsonParseFlagEnum detectParseFlag() {
427 JsonParseFlagEnum parseFlag;
428 if (isIgnoreComponentInstances()) {
429 parseFlag = JsonParseFlagEnum.ParseMetadata;
431 parseFlag = JsonParseFlagEnum.ParseAll;