removed code duplication in translator, and addressed review comments

Change-Id: I27767a81c4bf279c80d2b98192f75f8f507b4457
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java
index e2d27ac..70869b2 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java
@@ -18,7 +18,6 @@
 
 import org.onosproject.yangutils.datamodel.YangDataTypes;
 import org.onosproject.yangutils.datamodel.YangType;
-import org.onosproject.yangutils.translator.tojava.AttributeInfo;
 import org.onosproject.yangutils.utils.UtilConstants;
 
 /**
@@ -33,41 +32,14 @@
     }
 
     /**
-     * Returns YANG type.
+     * Returns java type.
      *
      * @param yangType YANG type
-     * @return YANG type
+     * @return java type
      */
-    public static YangType<?> getJavaDataType(YangType<?> yangType) {
-        yangType.setDataTypeName(yangType.getDataTypeName().replace("\"", ""));
-        if (yangType.getDataType() != null) {
-            yangType.setDataTypeName(parseYangDataType(yangType.getDataType()));
-        }
-        return yangType;
-    }
+    public static String getJavaDataType(YangType<?> yangType) {
+        YangDataTypes type = yangType.getDataType();
 
-    /**
-     * Returns list string as attribute name when attribute is a list.
-     *
-     * @param attr attribute info.
-     * @return list attribute
-     */
-    @SuppressWarnings("rawtypes")
-    public static YangType<?> getListString(AttributeInfo attr) {
-        String listString = JavaCodeSnippetGen.getListAttribute(attr.getAttributeType().getDataTypeName());
-        YangType<?> type = new YangType();
-        type.setDataTypeName(listString);
-        attr.setAttributeType(type);
-        return type;
-    }
-
-    /**
-     * Parses YANG data type and returns corresponding java data type.
-     *
-     * @param type YANG data type
-     * @return java data type
-     */
-    private static String parseYangDataType(YangDataTypes type) {
         if (type.equals(YangDataTypes.INT8)) {
             return UtilConstants.BYTE;
         } else if (type.equals(YangDataTypes.INT16)) {
@@ -111,4 +83,161 @@
         }
         return null;
     }
+
+    /**
+     * Returns java import class.
+     *
+     * @param yangType YANG type
+     * @param isListAttr if the attribute need to be a list
+     * @return java import class
+     */
+    public static String getJavaImportClass(YangType<?> yangType, boolean isListAttr) {
+        YangDataTypes type = yangType.getDataType();
+
+        if (isListAttr) {
+            if (type.equals(YangDataTypes.INT8)) {
+                return UtilConstants.BYTE_WRAPPER;
+            } else if (type.equals(YangDataTypes.INT16)) {
+                return UtilConstants.SHORT_WRAPPER;
+            } else if (type.equals(YangDataTypes.INT32)) {
+                return UtilConstants.INTEGER_WRAPPER;
+            } else if (type.equals(YangDataTypes.INT64)) {
+                return UtilConstants.LONG_WRAPPER;
+            } else if (type.equals(YangDataTypes.UINT8)) {
+                return UtilConstants.SHORT_WRAPPER;
+            } else if (type.equals(YangDataTypes.UINT16)) {
+                return UtilConstants.INTEGER_WRAPPER;
+            } else if (type.equals(YangDataTypes.UINT32)) {
+                return UtilConstants.LONG_WRAPPER;
+            } else if (type.equals(YangDataTypes.UINT64)) {
+                //TODO: BIGINTEGER.
+            } else if (type.equals(YangDataTypes.DECIMAL64)) {
+                //TODO: DECIMAL64.
+            } else if (type.equals(YangDataTypes.STRING)) {
+                return UtilConstants.STRING;
+            } else if (type.equals(YangDataTypes.BOOLEAN)) {
+                return UtilConstants.BOOLEAN_WRAPPER;
+            } else if (type.equals(YangDataTypes.ENUMERATION)) {
+                //TODO: ENUMERATION.
+            } else if (type.equals(YangDataTypes.BITS)) {
+                //TODO:BITS
+            } else if (type.equals(YangDataTypes.BINARY)) {
+                //TODO:BINARY
+            } else if (type.equals(YangDataTypes.LEAFREF)) {
+                //TODO:LEAFREF
+            } else if (type.equals(YangDataTypes.IDENTITYREF)) {
+                //TODO:IDENTITYREF
+            } else if (type.equals(YangDataTypes.EMPTY)) {
+                //TODO:EMPTY
+            } else if (type.equals(YangDataTypes.UNION)) {
+                //TODO:UNION
+            } else if (type.equals(YangDataTypes.INSTANCE_IDENTIFIER)) {
+                //TODO:INSTANCE_IDENTIFIER
+            } else if (type.equals(YangDataTypes.DERIVED)) {
+                //TODO:DERIVED
+            }
+        } else {
+            if (type.equals(YangDataTypes.UINT64)) {
+                //TODO: BIGINTEGER.
+            } else if (type.equals(YangDataTypes.DECIMAL64)) {
+                //TODO: DECIMAL64.
+            } else if (type.equals(YangDataTypes.STRING)) {
+                return UtilConstants.STRING;
+            } else if (type.equals(YangDataTypes.ENUMERATION)) {
+                //TODO: ENUMERATION.
+            } else if (type.equals(YangDataTypes.BITS)) {
+                //TODO:BITS
+            } else if (type.equals(YangDataTypes.BINARY)) {
+                //TODO:BINARY
+            } else if (type.equals(YangDataTypes.LEAFREF)) {
+                //TODO:LEAFREF
+            } else if (type.equals(YangDataTypes.IDENTITYREF)) {
+                //TODO:IDENTITYREF
+            } else if (type.equals(YangDataTypes.EMPTY)) {
+                //TODO:EMPTY
+            } else if (type.equals(YangDataTypes.UNION)) {
+                //TODO:UNION
+            } else if (type.equals(YangDataTypes.INSTANCE_IDENTIFIER)) {
+                //TODO:INSTANCE_IDENTIFIER
+            } else if (type.equals(YangDataTypes.DERIVED)) {
+                //TODO:DERIVED
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Returns java import package.
+     *
+     * @param yangType YANG type
+     * @param isListAttr if the attribute is of list type
+     * @return java import package
+     */
+    public static String getJavaImportPackage(YangType<?> yangType, boolean isListAttr) {
+        YangDataTypes type = yangType.getDataType();
+
+        if (isListAttr) {
+            if (type.equals(YangDataTypes.INT8)
+                    || type.equals(YangDataTypes.INT16)
+                    || type.equals(YangDataTypes.INT32)
+                    || type.equals(YangDataTypes.INT64)
+                    || type.equals(YangDataTypes.UINT8)
+                    || type.equals(YangDataTypes.UINT16)
+                    || type.equals(YangDataTypes.UINT32)
+                    || type.equals(YangDataTypes.STRING)
+                    || type.equals(YangDataTypes.BOOLEAN)) {
+                return UtilConstants.JAVA_LANG;
+            } else if (type.equals(YangDataTypes.UINT64)) {
+                //TODO: BIGINTEGER.
+            } else if (type.equals(YangDataTypes.DECIMAL64)) {
+                //TODO: DECIMAL64.
+            } else if (type.equals(YangDataTypes.ENUMERATION)) {
+                //TODO: ENUMERATION.
+            } else if (type.equals(YangDataTypes.BITS)) {
+                //TODO:BITS
+            } else if (type.equals(YangDataTypes.BINARY)) {
+                //TODO:BINARY
+            } else if (type.equals(YangDataTypes.LEAFREF)) {
+                //TODO:LEAFREF
+            } else if (type.equals(YangDataTypes.IDENTITYREF)) {
+                //TODO:IDENTITYREF
+            } else if (type.equals(YangDataTypes.EMPTY)) {
+                //TODO:EMPTY
+            } else if (type.equals(YangDataTypes.UNION)) {
+                //TODO:UNION
+            } else if (type.equals(YangDataTypes.INSTANCE_IDENTIFIER)) {
+                //TODO:INSTANCE_IDENTIFIER
+            } else if (type.equals(YangDataTypes.DERIVED)) {
+                //TODO:DERIVED
+            }
+        } else {
+
+            if (type.equals(YangDataTypes.UINT64)) {
+                //TODO: BIGINTEGER.
+            } else if (type.equals(YangDataTypes.DECIMAL64)) {
+                //TODO: DECIMAL64.
+            } else if (type.equals(YangDataTypes.STRING)) {
+                return UtilConstants.JAVA_LANG;
+            } else if (type.equals(YangDataTypes.ENUMERATION)) {
+                //TODO: ENUMERATION.
+            } else if (type.equals(YangDataTypes.BITS)) {
+                //TODO:BITS
+            } else if (type.equals(YangDataTypes.BINARY)) {
+                //TODO:BINARY
+            } else if (type.equals(YangDataTypes.LEAFREF)) {
+                //TODO:LEAFREF
+            } else if (type.equals(YangDataTypes.IDENTITYREF)) {
+                //TODO:IDENTITYREF
+            } else if (type.equals(YangDataTypes.EMPTY)) {
+                //TODO:EMPTY
+            } else if (type.equals(YangDataTypes.UNION)) {
+                //TODO:UNION
+            } else if (type.equals(YangDataTypes.INSTANCE_IDENTIFIER)) {
+                //TODO:INSTANCE_IDENTIFIER
+            } else if (type.equals(YangDataTypes.DERIVED)) {
+                //TODO:DERIVED
+            }
+        }
+        return null;
+    }
 }