YANG sub module linking + unsupported yang construct + defect fix

Change-Id: I224c8c14ee2111f6844278cb540c48651544f59b
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
index bf166f0..d8f7e53 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
@@ -24,6 +24,7 @@
 import java.nio.file.StandardCopyOption;
 import java.util.ArrayList;
 import java.util.LinkedList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Stack;
 
@@ -33,6 +34,7 @@
 import org.slf4j.Logger;
 import org.sonatype.plexus.build.incremental.BuildContext;
 
+import org.onosproject.yangutils.plugin.manager.YangFileInfo;
 import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
 import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
@@ -245,15 +247,15 @@
     /**
      * Copies YANG files to the current project's output directory.
      *
-     * @param yangFiles list of YANG files
+     * @param yangFileInfo list of YANG files
      * @param outputDir project's output directory
      * @param project maven project
      * @throws IOException when fails to copy files to destination resource directory
      */
-    public static void copyYangFilesToTarget(List<String> yangFiles, String outputDir, MavenProject project)
+    public static void copyYangFilesToTarget(List<YangFileInfo> yangFileInfo, String outputDir, MavenProject project)
             throws IOException {
 
-        List<File> files = getListOfFile(yangFiles);
+        List<File> files = getListOfFile(yangFileInfo);
 
         String path = outputDir + TARGET_RESOURCE_PATH;
         File targetDir = new File(path);
@@ -272,13 +274,15 @@
     /**
      * Provides a list of files from list of strings.
      *
-     * @param strings list of strings
+     * @param yangFileInfo list of yang file information
      * @return list of files
      */
-    private static List<File> getListOfFile(List<String> strings) {
+    private static List<File> getListOfFile(List<YangFileInfo> yangFileInfo) {
         List<File> files = new ArrayList<>();
-        for (String file : strings) {
-            files.add(new File(file));
+        Iterator<YangFileInfo> yangFileIterator = yangFileInfo.iterator();
+        while (yangFileIterator.hasNext()) {
+            YangFileInfo yangFile = yangFileIterator.next();
+            files.add(new File(yangFile.getYangFileName()));
         }
         return files;
     }