X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=catalog-be%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fsdc%2Fbe%2Fcomponents%2Fmerge%2Fproperty%2FDataDefinitionsValuesMergingBusinessLogic.java;h=c64e2efe88cf4e76fc2bf5e5b85292f340ba0897;hb=98826572a529d01250cf4925dc3f26ac8c35478a;hp=139ac386a18c9b6adadb9eba7108677106817209;hpb=a5445100050e49e83f73424198d73cd72d672a4d;p=sdc.git diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/DataDefinitionsValuesMergingBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/DataDefinitionsValuesMergingBusinessLogic.java index 139ac386a1..c64e2efe88 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/DataDefinitionsValuesMergingBusinessLogic.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/DataDefinitionsValuesMergingBusinessLogic.java @@ -1,37 +1,65 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ package org.openecomp.sdc.be.components.merge.property; -import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; -import org.openecomp.sdc.be.model.InputDefinition; -import org.springframework.stereotype.Component; +import static org.apache.commons.collections.CollectionUtils.isEmpty; +import static org.openecomp.sdc.be.components.merge.property.PropertyInstanceMergeDataBuilder.buildDataForMerging; import java.util.Collections; import java.util.List; +import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; +import org.openecomp.sdc.be.model.InputDefinition; +import org.springframework.stereotype.Component; @Component -public class DataDefinitionsValuesMergingBusinessLogic { +public class DataDefinitionsValuesMergingBusinessLogic { - @javax.annotation.Resource private PropertyDataValueMergeBusinessLogic propertyValueMergeBL; + public DataDefinitionsValuesMergingBusinessLogic(PropertyDataValueMergeBusinessLogic propertyValueMergeBL) { + this.propertyValueMergeBL = propertyValueMergeBL; + } + /** - * Merge previous version data definition values into the new version data definition. - * A data definition value is merged if it had a value in previous version and has no value in the current version. - * in case a property get input value has no corresponding input in the current version its value will not be merged - * @param oldInstanceDataDefinition the currently persisted instance data definitions - * @param oldInputs the previous version inputs + * Merge previous version data definition values into the new version data definition. A data definition value is merged if it had a value in + * previous version and has no value in the current version. in case a property get input value has no corresponding input in the current version + * its value will not be merged + * + * @param oldInstanceDataDefinition the currently persisted instance data definitions + * @param oldInputs the previous version inputs * @param updatedInstanceDataDefinition the currently being update instance data definitions - * @param newInputs the new version inputs + * @param newInputs the new version inputs */ - public void mergeInstanceDataDefinitions(List oldInstanceDataDefinition, List oldInputs, List updatedInstanceDataDefinition, List newInputs) { - if (updatedInstanceDataDefinition == null || updatedInstanceDataDefinition.isEmpty() || oldInstanceDataDefinition == null || oldInstanceDataDefinition.isEmpty()) { + public void mergeInstanceDataDefinitions(List oldInstanceDataDefinition, List oldInputs, + List updatedInstanceDataDefinition, + List newInputs) { + if (isEmpty(updatedInstanceDataDefinition) || isEmpty(oldInstanceDataDefinition)) { return; } - List mergePropertyData = PropertyInstanceMergeDataBuilder.getInstance().buildDataForMerging(oldInstanceDataDefinition, oldInputs, updatedInstanceDataDefinition, newInputs); + List mergePropertyData = buildDataForMerging(oldInstanceDataDefinition, oldInputs, updatedInstanceDataDefinition, + newInputs); mergePropertyData.forEach(this::mergeInstanceDefinition); - } - public void mergeInstanceDataDefinitions(List oldInstanceDataDefinition, List updatedInstanceDataDefinition) { + public void mergeInstanceDataDefinitions(List oldInstanceDataDefinition, + List updatedInstanceDataDefinition) { List emptyInputsList = Collections.emptyList(); mergeInstanceDataDefinitions(oldInstanceDataDefinition, emptyInputsList, updatedInstanceDataDefinition, emptyInputsList); } @@ -39,11 +67,13 @@ public class DataDefinitionsValuesMergingBusinessLogic { private void mergeInstanceDefinition(MergePropertyData mergeData) { if (isSameType(mergeData.getOldProp(), mergeData.getNewProp())) { propertyValueMergeBL.mergePropertyValue(mergeData.getOldProp(), mergeData.getNewProp(), mergeData.getGetInputNamesToMerge()); + if (mergeData.getOldProp().isToscaFunction()) { + mergeData.getNewProp().setToscaFunction(mergeData.getOldProp().getToscaFunction()); + } } } private boolean isSameType(PropertyDataDefinition oldDataDefinition, PropertyDataDefinition updatedDataDefinition) { return oldDataDefinition.typeEquals(updatedDataDefinition); } - }