Remove superflous surrounding quotes
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / externalupload / utils / ServiceUtils.java
index ba6f9c2..6ada300 100644 (file)
  * 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 org.apache.commons.beanutils.BeanUtils;
-
+import com.google.common.collect.ImmutableSet;
 import java.lang.reflect.Field;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+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 final char[] CHARS = new char[]{
-      '0', '1', '2', '3', '4', '5', '6', '7',
-      '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
-  };
-  private static final String TYPE = "type";
-  private static final String NODE = "node";
 
-  public static <T> Optional<T> createObjectUsingSetters(Object objectCandidate,
-                                                         Class<T> classToCreate)
-      throws Exception {
-    if (Objects.isNull(objectCandidate)) {
-      return Optional.empty();
-    }
+    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);
 
-    Map<String, Object> objectAsMap = getObjectAsMap(objectCandidate);
-    T result = classToCreate.newInstance();
+    private ServiceUtils() {
+    }
 
-    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()));
+        }
+        return fields;
+    }
 
-  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 boolean isComplexClass(Field field) {
+        return !isCollectionClass(field) && !isPrimitiveClass(field) && !field.getType().equals(Object.class);
     }
 
-    return fields;
-  }
+    private static boolean isCollectionClass(Field field) {
+        return collectionClasses.contains(field.getType());
+    }
 
-  private static boolean isComplexClass(Field field) {
-    return !field.getType().equals(Map.class)
-        && !field.getType().equals(String.class)
-        && !field.getType().equals(Integer.class)
-        && !field.getType().equals(Float.class)
-        && !field.getType().equals(Double.class)
-        && !field.getType().equals(Set.class)
-        && !field.getType().equals(Object.class)
-        && !field.getType().equals(List.class);
-  }
-  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;
+    }
+}