X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=common-be%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fsdc%2Fbe%2Fdatatypes%2Ftosca%2FToscaDataDefinition.java;h=95875d9bb7354e14db303f0f0f45eadcdb1b9055;hb=98826572a529d01250cf4925dc3f26ac8c35478a;hp=4ca44423af843f6ffc04dffb001dfc2c7c567257;hpb=b8d71b90706577bd748371f90160c1862a8ce96a;p=sdc.git diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/tosca/ToscaDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/tosca/ToscaDataDefinition.java index 4ca44423af..95875d9bb7 100644 --- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/tosca/ToscaDataDefinition.java +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/tosca/ToscaDataDefinition.java @@ -17,35 +17,58 @@ * 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 org.openecomp.sdc.be.datatypes.elements.SchemaDefinition; -import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; - 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.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; public abstract class ToscaDataDefinition { protected Map toscaPresentation; - public ToscaDataDefinition() { + protected ToscaDataDefinition() { toscaPresentation = new HashMap<>(); } @JsonCreator - public ToscaDataDefinition(Map art) { + protected ToscaDataDefinition(Map art) { toscaPresentation = art; } + public static Either, String> mergeDataMaps(Map map1, Map map2) { + return mergeDataMaps(map1, map2, false); + } + + // return Either.right(item key) if an illegal merge was attempted (overriding data type is forbidden) + public static Either, String> mergeDataMaps(Map map1, Map map2, + boolean allowDefaultValueOverride) { + for (Entry 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 Map listToMapByName(List dataList) { + return null == dataList ? new HashMap<>() + : dataList.stream().collect(Collectors.toMap(p -> (String) p.getToscaPresentationValue(JsonPresentationFields.NAME), p -> p)); + } + + public static T removeAndCollectByOwnerId(T complexStructure, Set ownerIdList) { + return complexStructure.removeByOwnerId(ownerIdList); + } + @JsonValue public Object getToscaPresentationValue(JsonPresentationFields name) { if (toscaPresentation != null && toscaPresentation.containsKey(name.getPresentation())) { @@ -55,13 +78,12 @@ public abstract class ToscaDataDefinition { } public void setToscaPresentationValue(JsonPresentationFields name, Object value) { - if(name !=null) { + if (name != null) { if (toscaPresentation == null) { toscaPresentation = new HashMap<>(); } toscaPresentation.put(name.getPresentation(), value); } - } public void setOwnerIdIfEmpty(String ownerId) { @@ -74,62 +96,36 @@ public abstract class ToscaDataDefinition { return (String) getToscaPresentationValue(JsonPresentationFields.TYPE); } - public String getVersion() { - return (String) getToscaPresentationValue(JsonPresentationFields.VERSION); - } - public void setType(String type) { setToscaPresentationValue(JsonPresentationFields.TYPE, type); } - public void setOwnerId(String ownerId) { - setToscaPresentationValue(JsonPresentationFields.OWNER_ID, ownerId); + 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 mergeFunction(T other, boolean allowDefaultValueOverride) { other.setOwnerId(getOwnerId()); return other; } - public static Either, String> mergeDataMaps(Map map1, Map map2) { - return mergeDataMaps(map1, map2, false); - } - - // return Either.right(item key) if an illegal merge was attempted (overriding data type is forbidden) - public static Either, String> mergeDataMaps(Map map1, Map map2, boolean allowDefaultValueOverride) { - for (Entry 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 Map listToMapByName(List 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 removeByOwnerId(Set ownerIdList) { return (T) this; } - public static T removeAndCollectByOwnerId(T complexStructure, Set ownerIdList) { - return complexStructure.removeByOwnerId(ownerIdList); - } - public T updateIfExist(T other, boolean allowDefaultValueOverride) { return other; } @@ -137,6 +133,4 @@ public abstract class ToscaDataDefinition { public boolean isEmpty() { return false; } - - public void setSchema(final SchemaDefinition schemaDef){}; }