[ONOS-4149],[ONOS-3909] YANG list translator impl and bug fixes.

Change-Id: Ia1a94142a3a114815766f661ed850bf9cacde66f
diff --git a/src/main/java/org/onosproject/yangutils/translator/tojava/JavaImportData.java b/src/main/java/org/onosproject/yangutils/translator/tojava/JavaImportData.java
index 2fffe62..682a101 100644
--- a/src/main/java/org/onosproject/yangutils/translator/tojava/JavaImportData.java
+++ b/src/main/java/org/onosproject/yangutils/translator/tojava/JavaImportData.java
@@ -15,11 +15,26 @@
  */
 package org.onosproject.yangutils.translator.tojava;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
 import org.onosproject.yangutils.datamodel.YangNode;
 
+import static org.onosproject.yangutils.utils.UtilConstants.COLLECTION_IMPORTS;
+import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_IMPORT_CLASS;
+import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_IMPORT_PKG;
+import static org.onosproject.yangutils.utils.UtilConstants.IMPORT;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_LANG;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_OBJECTS_IMPORT_CLASS;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_OBJECTS_IMPORT_PKG;
+import static org.onosproject.yangutils.utils.UtilConstants.LIST;
+import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
+import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
+
 /**
  * Generated Java file can contain imports.
  */
@@ -49,6 +64,7 @@
      * @return true if any of the attribute needs to be maintained as a list.
      */
     public boolean getIfListImported() {
+
         return isListToImport;
     }
 
@@ -58,6 +74,7 @@
      * @param isList status to mention list is bing imported.
      */
     public void setIfListImported(boolean isList) {
+
         isListToImport = isList;
     }
 
@@ -67,6 +84,7 @@
      * @return the set containing the imported class/interface info
      */
     public SortedSet<JavaQualifiedTypeInfo> getImportSet() {
+
         return importSet;
     }
 
@@ -76,6 +94,7 @@
      * @param importSet the set containing the imported class/interface info
      */
     private void setImportSet(SortedSet<JavaQualifiedTypeInfo> importSet) {
+
         this.importSet = importSet;
     }
 
@@ -95,6 +114,7 @@
      * @return status of new addition of class/interface to the import set
      */
     public boolean addImportInfo(YangNode curNode, JavaQualifiedTypeInfo newImportInfo) {
+
         if (!(curNode instanceof HasJavaImportData)) {
             throw new RuntimeException("missing import info in data model node");
         }
@@ -108,4 +128,62 @@
         ((HasJavaImportData) curNode).getJavaImportData().getImportSet().add(newImportInfo);
         return true;
     }
+
+    /**
+     * Returns import for class.
+     *
+     * @param attr java attribute info
+     * @return imports for class
+     */
+    public List<String> getImports(JavaAttributeInfo attr) {
+
+        String importString;
+        List<String> imports = new ArrayList<>();
+
+        for (JavaQualifiedTypeInfo importInfo : getImportSet()) {
+            importString = IMPORT;
+            if (importInfo.getPkgInfo() != EMPTY_STRING && importInfo.getClassInfo() != null
+                    && importInfo.getPkgInfo() != JAVA_LANG) {
+                importString = importString + importInfo.getPkgInfo() + PERIOD + importInfo.getClassInfo() + SEMI_COLAN
+                        + NEW_LINE;
+
+                imports.add(importString);
+            }
+        }
+
+        if (attr.isListAttr()) {
+            imports.add(setImportForList());
+        }
+
+        java.util.Collections.sort(imports);
+        return imports;
+    }
+
+    /**
+     * Gets import for hash and equals method.
+     *
+     * @return import for hash and equals method
+     */
+    public String getImportForHashAndEquals() {
+
+        return IMPORT + JAVA_UTIL_OBJECTS_IMPORT_PKG + PERIOD + JAVA_UTIL_OBJECTS_IMPORT_CLASS;
+    }
+
+    /**
+     * Gets import for to string method.
+     *
+     * @return import for to string method
+     */
+    public String getImportForToString() {
+
+        return IMPORT + GOOGLE_MORE_OBJECT_IMPORT_PKG + PERIOD + GOOGLE_MORE_OBJECT_IMPORT_CLASS;
+    }
+
+    /**
+     * Sets import for to list.
+     */
+    private static String setImportForList() {
+
+        return IMPORT + COLLECTION_IMPORTS + PERIOD + LIST + SEMI_COLAN + NEW_LINE;
+    }
 }