]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/MigrationTools/org/tianocore/migration/MigrationTool.java
add ModuleInfo2OutputPath Map
[mirror_edk2.git] / Tools / Source / MigrationTools / org / tianocore / migration / MigrationTool.java
index 5c74ee03f18724d6fea8a7a83b47031c06d0112b..3b3486fea6674f6cab546e735f306118750f4c0b 100644 (file)
@@ -1,7 +1,7 @@
 package org.tianocore.migration;\r
 \r
 import java.io.File;\r
-import java.util.Set;\r
+import java.util.*;\r
 \r
 public class MigrationTool {\r
        public static UI ui = null;\r
@@ -12,10 +12,13 @@ public class MigrationTool {
        public static boolean printModuleInfo = false;\r
        public static boolean doCritic = false;\r
        public static boolean defaultoutput = false;\r
+       \r
+       public static final HashMap<ModuleInfo, String> ModuleInfoMap = new HashMap<ModuleInfo, String>();\r
 \r
        private static final void mainFlow(ModuleInfo mi) throws Exception {\r
 \r
                ModuleReader.ModuleScan(mi);\r
+               \r
                //MigrationTool.ui.yesOrNo("go on replace?");\r
                SourceFileReplacer.flush(mi);   // some adding library actions are taken here,so it must be put before "MsaWriter"\r
 \r
@@ -40,7 +43,7 @@ public class MigrationTool {
                //MigrationTool.ui.yesOrNo("go on critic?");\r
 \r
                if (MigrationTool.doCritic) {\r
-                       Critic.fireAt(mi.outputpath + File.separator + "Migration_" + mi.modulename);\r
+                       Critic.fireAt(ModuleInfoMap.get(mi) + File.separator + "Migration_" + mi.modulename);\r
                }\r
 \r
                //MigrationTool.ui.yesOrNo("go on delete?");\r
@@ -57,9 +60,17 @@ public class MigrationTool {
                MigrationTool.ui.println(hash);\r
        }\r
 \r
+       private static final String assignOutPutPath(String inputpath) {\r
+               if (MigrationTool.defaultoutput) {\r
+                       return inputpath.replaceAll(Common.strseparate, "$1");\r
+               } else {\r
+                       return MigrationTool.ui.getFilepath("Please choose where to place the output module");\r
+               }\r
+       }\r
+       \r
        public static final void seekModule(String filepath) throws Exception {\r
                if (ModuleInfo.isModule(filepath)) {\r
-                       mainFlow(new ModuleInfo(filepath));\r
+                       ModuleInfoMap.put(new ModuleInfo(filepath), assignOutPutPath(filepath));\r
                }\r
        }\r
 \r
@@ -67,6 +78,13 @@ public class MigrationTool {
                MigrationTool.ui.println("Project Migration");\r
                MigrationTool.ui.println("Copyright (c) 2006, Intel Corporation");\r
                Common.toDoAll(path, MigrationTool.class.getMethod("seekModule", String.class), null, null, Common.DIR);\r
+               \r
+               Iterator<ModuleInfo> miit = ModuleInfoMap.keySet().iterator();\r
+               while (miit.hasNext()) {\r
+                       mainFlow(miit.next());\r
+               }\r
+               \r
+               ModuleInfoMap.clear();\r
        }\r
 \r
        public static void main(String[] args) throws Exception {\r