Fix 'Changing VFC version on template wipes previously assigned property values based...
[sdc.git] / common-be / src / main / java / org / openecomp / sdc / be / datatypes / tosca / ToscaDataDefinition.java
index 31ca6bb..95875d9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-
 package org.openecomp.sdc.be.datatypes.tosca;
 
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+import fj.data.Either;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 import java.util.stream.Collectors;
-
-import org.codehaus.jackson.annotate.JsonCreator;
-import org.codehaus.jackson.annotate.JsonValue;
 import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
 
-import fj.data.Either;
-
 public abstract class ToscaDataDefinition {
 
-       protected Map<String, Object> toscaPresentation;
-
-       public ToscaDataDefinition() {
-               toscaPresentation = new HashMap<String, Object>();
-       }
-
-       @JsonCreator
-       public ToscaDataDefinition(Map<String, Object> art) {
-               toscaPresentation = art;
-       }
-
-       @JsonValue
-       public Object getToscaPresentationValue(JsonPresentationFields name) {
-               if (toscaPresentation != null && toscaPresentation.containsKey(name.getPresentation())) {
-                       return toscaPresentation.get(name.getPresentation());
-               }
-               return null;
-       }
-
-       public void setToscaPresentationValue(JsonPresentationFields name, Object value) {
-               if (toscaPresentation == null && value != null) {
-                       toscaPresentation = new HashMap<String, Object>();
-               }
-               toscaPresentation.put(name.getPresentation(), value);
-
-       }
-
-       public void setOwnerIdIfEmpty(String ownerId) {
-               if (getOwnerId() == null) {
-                       setOwnerId(ownerId);
-               }
-       }
-
-       public void setOwnerId(String ownerId) {
-               setToscaPresentationValue(JsonPresentationFields.OWNER_ID, ownerId);
-       }
-
-       public String getOwnerId() {
-               return (String) getToscaPresentationValue(JsonPresentationFields.OWNER_ID);
-       }
-
-       // default merge function for merging data maps - implement where needed and use mergeDataMaps method where applicable instead of map1.putAll(map2)
-       public <T extends ToscaDataDefinition> T mergeFunction(T other, boolean allowDefaultValueOverride) {
-               other.setOwnerId(getOwnerId());
-               return other;
-       }
-
-       public static <T extends ToscaDataDefinition> Either<Map<String, T>, String> mergeDataMaps(Map<String, T> map1, Map<String, T> map2) {
-               return mergeDataMaps(map1, map2, false);
-       }
-
-       // return Either.right(item key) if an illegal merge was attempted (overriding data type is forbidden)
-       public static <T extends ToscaDataDefinition> Either<Map<String, T>, String> mergeDataMaps(Map<String, T> map1, Map<String, T> map2, boolean allowDefaultValueOverride) {
-               for (Entry<String, T> entry : map2.entrySet()) {
-                       map1.merge(entry.getKey(), entry.getValue(), (item1, item2) -> item1.mergeFunction(item2, allowDefaultValueOverride));
-                       // validate merge success
-                       if (!map1.containsKey(entry.getKey()))
-                               return Either.right(entry.getKey());
-               }
-               return Either.left(map1);
-       }
-
-       public static <T extends ToscaDataDefinition> Map<String, T> listToMapByName(List<T> dataList) {
-               return null == dataList ? new HashMap<>() : dataList.stream().collect(Collectors.toMap(p -> (String) p.getToscaPresentationValue(JsonPresentationFields.NAME), p -> p));
-       }
-
-       public boolean findUidMatch(String uid) {
-               return uid.equals(getToscaPresentationValue(JsonPresentationFields.UNIQUE_ID));
-
-       }
-       public <T extends ToscaDataDefinition>  T removeByOwnerId(Set<String> ownerIdList) {
-               return (T) this;
-       }
-       public static <T extends ToscaDataDefinition> T removeAndCollectByOwnerId(T complexStructure, Set<String> ownerIdList) {
-               return complexStructure.removeByOwnerId(ownerIdList);
-       }
-
-       public <T extends ToscaDataDefinition> T updateIfExist(T other, boolean allowDefaultValueOverride) {
-               return other;
-       }
-
-       public boolean isEmpty(){
-               return false;
-       }
+    protected Map<String, Object> toscaPresentation;
+
+    protected ToscaDataDefinition() {
+        toscaPresentation = new HashMap<>();
+    }
+
+    @JsonCreator
+    protected ToscaDataDefinition(Map<String, Object> art) {
+        toscaPresentation = art;
+    }
+
+    public static <T extends ToscaDataDefinition> Either<Map<String, T>, String> mergeDataMaps(Map<String, T> map1, Map<String, T> map2) {
+        return mergeDataMaps(map1, map2, false);
+    }
+
+    // return Either.right(item key) if an illegal merge was attempted (overriding data type is forbidden)
+    public static <T extends ToscaDataDefinition> Either<Map<String, T>, String> mergeDataMaps(Map<String, T> map1, Map<String, T> map2,
+                                                                                               boolean allowDefaultValueOverride) {
+        for (Entry<String, T> entry : map2.entrySet()) {
+            map1.merge(entry.getKey(), entry.getValue(), (item1, item2) -> item1.mergeFunction(item2, allowDefaultValueOverride));
+            // validate merge success
+            if (!map1.containsKey(entry.getKey())) {
+                return Either.right(entry.getKey());
+            }
+        }
+        return Either.left(map1);
+    }
+
+    public static <T extends ToscaDataDefinition> Map<String, T> listToMapByName(List<T> dataList) {
+        return null == dataList ? new HashMap<>()
+            : dataList.stream().collect(Collectors.toMap(p -> (String) p.getToscaPresentationValue(JsonPresentationFields.NAME), p -> p));
+    }
+
+    public static <T extends ToscaDataDefinition> T removeAndCollectByOwnerId(T complexStructure, Set<String> ownerIdList) {
+        return complexStructure.removeByOwnerId(ownerIdList);
+    }
+
+    @JsonValue
+    public Object getToscaPresentationValue(JsonPresentationFields name) {
+        if (toscaPresentation != null && toscaPresentation.containsKey(name.getPresentation())) {
+            return toscaPresentation.get(name.getPresentation());
+        }
+        return null;
+    }
+
+    public void setToscaPresentationValue(JsonPresentationFields name, Object value) {
+        if (name != null) {
+            if (toscaPresentation == null) {
+                toscaPresentation = new HashMap<>();
+            }
+            toscaPresentation.put(name.getPresentation(), value);
+        }
+    }
+
+    public void setOwnerIdIfEmpty(String ownerId) {
+        if (getOwnerId() == null) {
+            setOwnerId(ownerId);
+        }
+    }
+
+    public String getType() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.TYPE);
+    }
+
+    public void setType(String type) {
+        setToscaPresentationValue(JsonPresentationFields.TYPE, type);
+    }
+
+    public String getVersion() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.VERSION);
+    }
+
+    public String getOwnerId() {
+        return (String) getToscaPresentationValue(JsonPresentationFields.OWNER_ID);
+    }
+
+    public void setOwnerId(String ownerId) {
+        setToscaPresentationValue(JsonPresentationFields.OWNER_ID, ownerId);
+    }
+
+    // default merge function for merging data maps - implement where needed and use mergeDataMaps method where applicable instead of map1.putAll(map2)
+    public <T extends ToscaDataDefinition> T mergeFunction(T other, boolean allowDefaultValueOverride) {
+        other.setOwnerId(getOwnerId());
+        return other;
+    }
+
+    public boolean findUidMatch(String uid) {
+        return uid.equals(getToscaPresentationValue(JsonPresentationFields.UNIQUE_ID));
+    }
+
+    public <T extends ToscaDataDefinition> T removeByOwnerId(Set<String> ownerIdList) {
+        return (T) this;
+    }
+
+    public <T extends ToscaDataDefinition> T updateIfExist(T other, boolean allowDefaultValueOverride) {
+        return other;
+    }
+
+    public boolean isEmpty() {
+        return false;
+    }
 }