diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java | 103 |
1 files changed, 46 insertions, 57 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java b/catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java index e6d12c9b4c..6ada3005d5 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/externalupload/utils/ServiceUtils.java @@ -13,13 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.openecomp.sdc.externalupload.utils; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableSet; -import org.apache.commons.beanutils.BeanUtils; - import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; @@ -29,72 +26,64 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.Set; +import org.apache.commons.beanutils.BeanUtils; public class ServiceUtils { - private static ImmutableSet<Class> collectionClasses = ImmutableSet.of(Map.class, List.class, Set.class); - private static ImmutableSet<Class> primitiveTypesClasses = ImmutableSet.of(String.class, Integer.class, Double.class, Float.class); + private static ImmutableSet<Class> collectionClasses = ImmutableSet.of(Map.class, List.class, Set.class); + private static ImmutableSet<Class> primitiveTypesClasses = ImmutableSet.of(String.class, Integer.class, Double.class, Float.class); - private ServiceUtils() {} - - public static <T> Optional<T> createObjectUsingSetters(Object objectCandidate, - Class<T> classToCreate) - throws Exception { - if (Objects.isNull(objectCandidate)) { - return Optional.empty(); + private ServiceUtils() { } - Map<String, Object> objectAsMap = getObjectAsMap(objectCandidate); - T result = classToCreate.newInstance(); - - List<Field> declaredFields = getAllFields(classToCreate); - for( Field field : declaredFields){ - if(isComplexClass(field)){ - Optional<?> objectUsingSetters = - createObjectUsingSetters(objectAsMap.get(field.getName()), field.getType()); - if( objectUsingSetters.isPresent()){ - objectAsMap.remove(field.getName()); - objectAsMap.put(field.getName(), objectUsingSetters.get()); + public static <T> Optional<T> createObjectUsingSetters(Object objectCandidate, Class<T> classToCreate) throws Exception { + if (Objects.isNull(objectCandidate)) { + return Optional.empty(); } - } + Map<String, Object> objectAsMap = getObjectAsMap(objectCandidate); + T result = classToCreate.newInstance(); + List<Field> declaredFields = getAllFields(classToCreate); + for (Field field : declaredFields) { + if (isComplexClass(field)) { + Optional<?> objectUsingSetters = createObjectUsingSetters(objectAsMap.get(field.getName()), field.getType()); + if (objectUsingSetters.isPresent()) { + objectAsMap.remove(field.getName()); + objectAsMap.put(field.getName(), objectUsingSetters.get()); + } + } + } + BeanUtils.populate(result, objectAsMap); + return Optional.of(result); } - BeanUtils.populate(result, objectAsMap); - - return Optional.of(result); - } - private static <T> List<Field> getAllFields(Class<T> clazz) { - List<Field> fields = new ArrayList<>(); - for(Class<?> c = clazz; c != null; c = c.getSuperclass()) { - fields.addAll(Arrays.asList(c.getDeclaredFields())); + private static <T> List<Field> getAllFields(Class<T> clazz) { + List<Field> fields = new ArrayList<>(); + for (Class<?> c = clazz; c != null; c = c.getSuperclass()) { + fields.addAll(Arrays.asList(c.getDeclaredFields())); + } + return fields; } - return fields; - } - - private static boolean isComplexClass(Field field) { - return !isCollectionClass(field) - && !isPrimitiveClass(field) - && !field.getType().equals(Object.class); - } - - private static boolean isCollectionClass(Field field) { - return collectionClasses.contains(field.getType()); - } + private static boolean isComplexClass(Field field) { + return !isCollectionClass(field) && !isPrimitiveClass(field) && !field.getType().equals(Object.class); + } - private static boolean isPrimitiveClass(Field field) { - return primitiveTypesClasses.contains(field.getType()); - } + private static boolean isCollectionClass(Field field) { + return collectionClasses.contains(field.getType()); + } - public static Map<String, Object> getObjectAsMap(Object obj) { - return new ObjectMapper().convertValue(obj, Map.class); - } + private static boolean isPrimitiveClass(Field field) { + return primitiveTypesClasses.contains(field.getType()); + } - public static Set<String> getClassFieldNames(Class<? extends Object> classType) { - Set<String> fieldNames = new HashSet<>(); - List<Field> allFields = getAllFields(classType); - allFields.forEach(field -> fieldNames.add(field.getName())); + public static Map<String, Object> getObjectAsMap(Object obj) { + return new ObjectMapper().convertValue(obj, Map.class); + } - return fieldNames; - } -}
\ No newline at end of file + public static Set<String> getClassFieldNames(Class<? extends Object> classType) { + Set<String> fieldNames = new HashSet<>(); + List<Field> allFields = getAllFields(classType); + allFields.forEach(field -> fieldNames.add(field.getName())); + return fieldNames; + } +} |