diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterUtil.java')
-rw-r--r-- | openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterUtil.java | 55 |
1 files changed, 43 insertions, 12 deletions
diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterUtil.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterUtil.java index 4120c6994c..20ac6413e7 100644 --- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterUtil.java +++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/main/java/org/openecomp/core/impl/ToscaConverterUtil.java @@ -1,24 +1,33 @@ package org.openecomp.core.impl; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; -import org.codehaus.jackson.map.ObjectMapper; import org.openecomp.core.converter.errors.CreateToscaObjectErrorBuilder; -import org.openecomp.core.utilities.json.JsonUtil; import org.openecomp.sdc.common.errors.CoreException; -import org.openecomp.sdc.common.errors.ErrorCategory; -import org.openecomp.sdc.common.errors.ErrorCode; import java.lang.reflect.Field; +import java.util.HashSet; import java.util.Map; import java.util.Objects; import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; public class ToscaConverterUtil { - private static final String set = "set"; + private static final String SET = "set"; + private static final String DEFAULT = "default"; + private static final String DEFAULT_CAPITAL = "Default"; + private static Set<String> defaultValueKeys; + + static { + defaultValueKeys = + Stream.of(DEFAULT, DEFAULT_CAPITAL).collect(Collectors.toSet()); + } public static <T> Optional<T> createObjectFromClass(String objectId, - Object objectCandidate, - Class<T> classToCreate) { + Object objectCandidate, + Class<T> classToCreate) { try { return createObjectUsingSetters(objectCandidate, classToCreate); } catch (Exception e) { @@ -30,7 +39,8 @@ public class ToscaConverterUtil { private static <T> Optional<T> createObjectUsingSetters(Object objectCandidate, Class<T> classToCreate) throws Exception { - if(!(objectCandidate instanceof Map)){ + if (Objects.isNull(objectCandidate) + || !(objectCandidate instanceof Map)) { return Optional.empty(); } @@ -38,18 +48,17 @@ public class ToscaConverterUtil { Field[] classFields = classToCreate.getDeclaredFields(); T result = classToCreate.newInstance(); - for(Field field : classFields){ + for (Field field : classFields) { Object fieldValueToAssign = objectAsMap.get(field.getName()); - String methodName = set + StringUtils.capitalize(field.getName()); + String methodName = SET + StringUtils.capitalize(field.getName()); - if(shouldSetterMethodNeedsToGetInvoked(classToCreate, field, fieldValueToAssign, methodName)){ + if(shouldSetterMethodNeedsToGetInvoked(classToCreate, field, fieldValueToAssign, methodName)) { classToCreate.getMethod(methodName, field.getType()).invoke(result, fieldValueToAssign); } } return Optional.of(result); } - private static <T> boolean shouldSetterMethodNeedsToGetInvoked(Class<T> classToCreate, Field field, Object fieldValueToAssign, @@ -62,4 +71,26 @@ public class ToscaConverterUtil { return false; } } + + public static Optional<Object> getDefaultValue(Object entryValue, + Object objectToAssignDefaultValue) { + if (!(entryValue instanceof Map) + || Objects.isNull(objectToAssignDefaultValue)) { + return Optional.empty(); + } + + return Optional.ofNullable(getDefaultParameterValue((Map<String, Object>) entryValue)); + } + + private static Object getDefaultParameterValue(Map<String, Object> entryValue) { + Object defaultValue = null; + Set<String> keys = new HashSet<>(entryValue.keySet()); + keys.retainAll(defaultValueKeys); + + if (CollectionUtils.isNotEmpty(keys)) { + defaultValue = entryValue.get(keys.iterator().next()); + } + + return defaultValue; + } } |