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 java.util.List;
24 import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
25 import org.openecomp.sdc.be.datatypes.enums.ComponentFieldsEnum;
26 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
28 public class ComponentParametersView {
30 private boolean ignoreUsers = false;
31 private boolean ignoreGroups = false;
32 private boolean ignoreComponentInstances = false;
33 private boolean ignoreComponentInstancesProperties = false;
34 private boolean ignoreProperties = false;
35 private boolean ignoreCapabilities = false;
36 private boolean ignoreRequirements = false;
37 private boolean ignoreCategories = false;
38 private boolean ignoreAllVersions = false;
39 private boolean ignoreAdditionalInformation = false;
40 private boolean ignoreArtifacts = false;
41 private boolean ignoreInterfaces = false;
42 private boolean ignoreInterfaceInstances = false;
43 private boolean ignoreComponentInstancesInterfaces = false;
44 private boolean ignoreDerivedFrom = false;
45 private boolean ignoreAttributesFrom = false;
46 private boolean ignoreComponentInstancesAttributesFrom = false;
47 private boolean ignoreInputs = false;
48 private boolean ignoreComponentInstancesInputs = false;
49 private boolean ignoreCapabiltyProperties = false;
50 private boolean ignoreServicePath = true;
51 private boolean ignorePolicies = false;
52 private boolean ignoreNodeFilterRequirements = false;
53 private boolean ignoreNodeFilter = false;
54 private boolean ignoreSubstitutionFilter = false;
55 private boolean ignoreDataType = false;
57 public ComponentParametersView() {
60 public ComponentParametersView(boolean setAllToIgnore) {
67 public ComponentParametersView(List<String> filters) {
70 for (String fieldName : filters) {
71 switch (ComponentFieldsEnum.findByValue(fieldName)) {
73 this.setIgnoreProperties(false);
76 this.setIgnoreInputs(false);
79 this.setIgnoreUsers(false);
82 this.setIgnoreCategories(false);
85 this.setIgnoreUsers(false);
86 this.setIgnoreCategories(false);
87 this.setIgnoreAllVersions(false);
88 this.setIgnoreDerivedFrom(false);
91 case NON_EXCLUDED_GROUPS:
92 this.setIgnoreGroups(false);
94 case COMPONENT_INSTANCES:
95 this.setIgnoreComponentInstances(false);
96 this.setIgnoreCapabilities(false);
97 this.setIgnoreRequirements(false);
98 this.setIgnoreNodeFilter(false);
99 this.setIgnoreSubstitutionFilter(false);
100 this.setIgnoreCapabiltyProperties(false);
102 case COMPONENT_INSTANCES_PROPERTIES:
103 this.setIgnoreComponentInstances(false); //we need this in order to get the calculate capabilities requirements
104 this.setIgnoreComponentInstancesProperties(false);
107 this.setIgnoreComponentInstances(false);//we need this in order to get the calculate capabilities requirements
108 this.setIgnoreCapabilities(false);
109 this.setIgnoreCapabiltyProperties(false);
112 this.setIgnoreComponentInstances(false);
113 this.setIgnoreRequirements(false);
116 this.setIgnoreAllVersions(false);
118 case ADDITIONAL_INFORMATION:
119 this.setIgnoreAdditionalInformation(false);
122 case DEPLOYMENT_ARTIFACTS:
123 case TOSCA_ARTIFACTS:
124 case SERVICE_API_ARTIFACTS:
125 this.setIgnoreArtifacts(false);
128 this.setIgnoreInterfaces(false);
131 this.setIgnoreDerivedFrom(false);
134 this.setIgnoreAttributesFrom(false);
136 case COMPONENT_INSTANCES_ATTRIBUTES:
137 this.setIgnoreComponentInstances(false);
138 this.setIgnoreComponentInstancesAttributesFrom(false);
140 case COMPONENT_INSTANCE_INPUTS:
141 this.setIgnoreComponentInstances(false);
142 this.setIgnoreComponentInstancesInputs(false);
144 case INSTANCE_CAPABILTY_PROPERTIES:
145 this.setIgnoreCapabiltyProperties(false);
147 case FORWARDING_PATHS:
148 this.setIgnoreForwardingPath(false);
151 case NON_EXCLUDED_POLICIES:
152 this.setIgnorePolicies(false);
155 this.setIgnoreNodeFilterRequirements(false);
156 this.setIgnoreNodeFilter(false);
158 case SUBSTITUTION_FILTER:
159 this.setIgnoreSubstitutionFilter(false);
161 case COMPONENT_INSTANCES_INTERFACES:
162 this.setIgnoreComponentInstances(false);
163 this.setIgnoreComponentInstancesInterfaces(false);
166 this.setIgnoreDataType(false);
175 ///////////////////////////////////////////////////////////////
176 // When adding new member, please update the filter method.
177 ///////////////////////////////////////////////////////////////
179 public Component filter(Component component, ComponentTypeEnum componentType) {
182 component.setCreatorUserId(null);
183 component.setCreatorFullName(null);
184 component.setLastUpdaterUserId(null);
185 component.setLastUpdaterFullName(null);
188 component.setGroups(null);
190 if (ignoreComponentInstances) {
191 component.setComponentInstances(null);
192 component.setComponentInstancesRelations(null);
194 if (ignoreComponentInstancesProperties) {
195 component.setComponentInstancesProperties(null);
197 if (ignoreProperties && componentType == ComponentTypeEnum.RESOURCE) {
198 ((Resource) component).setProperties(null);
200 if (ignoreCapabilities) {
201 component.setCapabilities(null);
203 if (ignoreRequirements) {
204 component.setRequirements(null);
206 if (ignoreCategories) {
207 component.setCategories(null);
209 if (ignoreAllVersions) {
210 component.setAllVersions(null);
212 if (ignoreAdditionalInformation && componentType == ComponentTypeEnum.RESOURCE) {
213 ((Resource) component).setAdditionalInformation(null);
215 if (ignoreArtifacts) {
216 component.setArtifacts(null);
217 component.setSpecificComponetTypeArtifacts(null);
218 component.setDeploymentArtifacts(null);
219 component.setToscaArtifacts(null);
221 if (ignoreNodeFilterRequirements){
222 component.setNodeFilterComponents(null);
224 if (ignoreInterfaces && ignoreInterfaceInstances &&
225 componentType == ComponentTypeEnum.RESOURCE) {
226 component.setInterfaces(null);
228 if (ignoreDerivedFrom && componentType == ComponentTypeEnum.RESOURCE) {
229 ((Resource) component).setDerivedFrom(null);
231 if (ignoreAttributesFrom && componentType == ComponentTypeEnum.RESOURCE) {
232 ((Resource) component).setAttributes(null);
234 if (ignoreComponentInstancesAttributesFrom) {
235 component.setComponentInstancesAttributes(null);
238 component.setInputs(null);
240 if (ignoreComponentInstancesInputs) {
241 component.setComponentInstancesInputs(null);
243 if (ignoreServicePath && componentType == ComponentTypeEnum.SERVICE) {
244 ((Service) component).setForwardingPaths(null);
246 if (ignoreNodeFilter){
247 component.setNodeFilterComponents(null);
249 if (ignoreSubstitutionFilter){
250 component.setSubstitutionFilterComponents(null);
252 if (ignoreDataType) {
253 component.setDataTypes(null);
258 public boolean isIgnoreNodeFilterRequirements() {
259 return ignoreNodeFilterRequirements;
262 public void setIgnoreNodeFilterRequirements(boolean ignoreNodeFilter) {
263 this.ignoreNodeFilterRequirements = ignoreNodeFilter;
266 public void disableAll() {
269 ignorePolicies = true;
270 ignoreComponentInstances = true;
271 ignoreComponentInstancesProperties = true;
272 ignoreProperties = true;
273 ignoreCapabilities = true;
274 ignoreRequirements = true;
275 ignoreCategories = true;
276 ignoreAllVersions = true;
277 ignoreAdditionalInformation = true;
278 ignoreArtifacts = true;
279 ignoreInterfaces = true;
280 ignoreInterfaceInstances = true;
281 ignoreDerivedFrom = true;
282 ignoreAttributesFrom = true;
284 ignoreComponentInstancesAttributesFrom = true;
285 ignoreComponentInstancesInputs = true;
286 ignoreCapabiltyProperties = true;
287 ignoreServicePath = true;
288 ignoreNodeFilterRequirements = true;
289 ignoreNodeFilter = true;
290 ignoreSubstitutionFilter = true;
291 ignoreDataType = true;
294 public boolean isIgnoreGroups() {
298 public void setIgnoreGroups(boolean ignoreGroups) {
299 this.ignoreGroups = ignoreGroups;
301 this.ignoreCapabiltyProperties = ignoreGroups;
302 this.ignoreCapabilities = ignoreGroups;
306 public boolean isIgnoreComponentInstances() {
307 return ignoreComponentInstances;
310 public void setIgnoreComponentInstances(boolean ignoreComponentInstances) {
311 this.ignoreComponentInstances = ignoreComponentInstances;
314 public boolean isIgnoreProperties() {
315 return ignoreProperties;
318 public void setIgnoreProperties(boolean ignoreProperties) {
319 this.ignoreProperties = ignoreProperties;
322 public boolean isIgnoreCapabilities() {
323 return ignoreCapabilities;
326 public void setIgnoreCapabilities(boolean ignoreCapabilities) {
327 this.ignoreCapabilities = ignoreCapabilities;
330 public boolean isIgnoreRequirements() {
331 return ignoreRequirements;
334 public void setIgnoreRequirements(boolean ignoreRequirements) {
335 this.ignoreRequirements = ignoreRequirements;
338 public boolean isIgnoreCategories() {
339 return ignoreCategories;
342 public void setIgnoreCategories(boolean ignoreCategories) {
343 this.ignoreCategories = ignoreCategories;
346 public boolean isIgnoreAllVersions() {
347 return ignoreAllVersions;
350 public void setIgnoreAllVersions(boolean ignoreAllVersions) {
351 this.ignoreAllVersions = ignoreAllVersions;
354 public boolean isIgnoreAdditionalInformation() {
355 return ignoreAdditionalInformation;
358 private void setIgnoreAdditionalInformation(boolean ignoreAdditionalInformation) {
359 this.ignoreAdditionalInformation = ignoreAdditionalInformation;
362 public boolean isIgnoreArtifacts() {
363 return ignoreArtifacts;
366 public void setIgnoreArtifacts(boolean ignoreArtifacts) {
367 this.ignoreArtifacts = ignoreArtifacts;
370 public boolean isIgnoreComponentInstancesProperties() {
371 return ignoreComponentInstancesProperties;
374 public void setIgnoreComponentInstancesProperties(boolean ignoreComponentInstancesProperties) {
375 this.ignoreComponentInstancesProperties = ignoreComponentInstancesProperties;
378 public boolean isIgnoreComponentInstancesInputs() {
379 return ignoreComponentInstancesInputs;
382 public void setIgnoreComponentInstancesInputs(boolean ignoreComponentInstancesInputs) {
383 this.ignoreComponentInstancesInputs = ignoreComponentInstancesInputs;
386 public boolean isIgnoreInterfaces() {
387 return ignoreInterfaces;
390 public void setIgnoreInterfaces(boolean ignoreInterfaces) {
391 this.ignoreInterfaces = ignoreInterfaces;
394 public boolean isIgnoreComponentInstancesInterfaces() {
395 return ignoreComponentInstancesInterfaces;
398 public void setIgnoreComponentInstancesInterfaces(boolean ignoreComponentInstancesInterfaces) {
399 this.ignoreComponentInstancesInterfaces = ignoreComponentInstancesInterfaces;
402 public boolean isIgnoreAttributesFrom() {
403 return ignoreAttributesFrom;
406 public void setIgnoreAttributesFrom(boolean ignoreAttributesFrom) {
407 this.ignoreAttributesFrom = ignoreAttributesFrom;
410 public boolean isIgnoreComponentInstancesAttributesFrom() {
411 return ignoreComponentInstancesAttributesFrom;
414 private void setIgnoreComponentInstancesAttributesFrom(boolean ignoreComponentInstancesAttributesFrom) {
415 this.ignoreComponentInstancesAttributesFrom = ignoreComponentInstancesAttributesFrom;
418 public boolean isIgnoreDerivedFrom() {
419 return ignoreDerivedFrom;
422 private void setIgnoreDerivedFrom(boolean ignoreDerivedFrom) {
423 this.ignoreDerivedFrom = ignoreDerivedFrom;
426 public boolean isIgnoreUsers() {
430 public void setIgnoreUsers(boolean ignoreUsers) {
431 this.ignoreUsers = ignoreUsers;
434 public boolean isIgnoreInputs() {
438 public void setIgnoreInputs(boolean ignoreInputs) {
439 this.ignoreInputs = ignoreInputs;
442 public boolean isIgnoreCapabiltyProperties() {
443 return ignoreCapabiltyProperties;
446 public void setIgnoreCapabiltyProperties(boolean ignoreCapabiltyProperties) {
447 this.ignoreCapabiltyProperties = ignoreCapabiltyProperties;
450 public boolean isIgnoreForwardingPath() {
451 return ignoreServicePath;
454 public void setIgnoreForwardingPath(boolean ignoreServicePath) {
455 this.ignoreServicePath = ignoreServicePath;
458 public boolean isIgnorePolicies() {
459 return ignorePolicies;
462 public void setIgnorePolicies(boolean ignorePolicies) {
463 this.ignorePolicies = ignorePolicies;
466 public boolean isIgnoreNodeFilter() {
467 return ignoreNodeFilter;
470 public void setIgnoreNodeFilter(boolean ignoreNodeFilter) {
471 this.ignoreNodeFilter = ignoreNodeFilter;
474 public boolean isIgnoreSubstitutionFilter() {
475 return ignoreSubstitutionFilter;
478 public void setIgnoreSubstitutionFilter(boolean ignoreSubstitutionFilter) {
479 this.ignoreSubstitutionFilter = ignoreSubstitutionFilter;
482 public boolean isIgnoreDataType() {
483 return ignoreDataType;
486 public void setIgnoreDataType(boolean ignoreDataType) {
487 this.ignoreDataType = ignoreDataType;
490 public JsonParseFlagEnum detectParseFlag() {
491 JsonParseFlagEnum parseFlag;
492 if (isIgnoreComponentInstances()) {
493 parseFlag = JsonParseFlagEnum.ParseMetadata;
495 parseFlag = JsonParseFlagEnum.ParseAll;