]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/GlobalData.java
1. only show ModuleName, version, PackageName, version, supported Arch, path in table...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / global / GlobalData.java
index bdb278c5708bbfce716922bea0b9c13bf5228779..4a325c21ffbf6111fd234e789ce88be91c4a8aa8 100644 (file)
@@ -32,8 +32,10 @@ import java.util.HashMap;
 import java.util.HashSet;\r
 import java.util.Iterator;\r
 import java.util.List;\r
+import java.util.ListIterator;\r
 import java.util.Map;\r
 import java.util.Set;\r
+import java.util.Vector;\r
 import java.util.logging.Logger;\r
 \r
 /**\r
@@ -59,7 +61,7 @@ public class GlobalData {
     ///\r
     /// Be used to ensure Global data will be initialized only once.\r
     ///\r
-    private static boolean globalFlag = false;\r
+//    private static boolean globalFlag = false;\r
     \r
     ///\r
     /// Framework Database information: package list and platform list\r
@@ -96,45 +98,6 @@ public class GlobalData {
     ///\r
     private static Set<FpdModuleIdentification> builtModules = new HashSet<FpdModuleIdentification>();\r
     \r
-    ///\r
-    /// PCD memory database stored all PCD information which collected from FPD,MSA and SPD.\r
-    ///\r
-//    private static final MemoryDatabaseManager pcdDbManager = new MemoryDatabaseManager();\r
-\r
-    ///\r
-    /// build target + tool chain family/tag name + arch + command types + command options\r
-    ///\r
-    private static Map<String, Object> toolChainOptions;\r
-    private static Map<String, Object> toolChainFamilyOptions;\r
-    private static Map<String, String> toolChainDefinitions;\r
-    ///\r
-    ///\r
-    ///\r
-    private static Set<String> targets;\r
-    ///\r
-    ///\r
-    ///\r
-    private static Set<String> toolChainFamilies;\r
-    ///\r
-    ///\r
-    ///\r
-    private static Set<String> toolChains;\r
-    ///\r
-    /// keep track which toolchain family a toolchain tag belongs to\r
-    ///\r
-    private static Map<String, Set<String>> toolChainFamilyMap;\r
-    private static Map<String, Set<String>> toolChainCommandMap;\r
-    \r
-    ///\r
-    /// list of Arch: EBC, ARM, IA32, X64, IPF, PPC\r
-    ///\r
-    private static Set<String> archs;\r
-\r
-    ///\r
-    /// list of Command Type: CC, LIB, LINK, ASL, ASM, ASMLINK, PP\r
-    ///\r
-    private static Set<String> commandTypes;\r
-    \r
     /**\r
       Parse framework database (DB) and all SPD files listed in DB to initialize\r
       the environment for next build. This method will only be executed only once\r
@@ -146,13 +109,6 @@ public class GlobalData {
             Framework Dababase or SPD or MSA file is not valid\r
     **/\r
     public synchronized static void initInfo(String workspaceDatabaseFile, String workspaceDir) throws Exception {\r
-        //\r
-        // ensure this method will be revoked only once\r
-        //\r
-        if (globalFlag) {\r
-            return;\r
-        }\r
-        globalFlag = true;\r
         \r
         //\r
         // Backup workspace directory. It will be used by other method\r
@@ -177,7 +133,9 @@ public class GlobalData {
                 DbPathAndFilename dbPath = (DbPathAndFilename)iter.next();\r
                 String fileName = dbPath.getStringValue();\r
                 Spd spd = new Spd(new File(workspaceDir + File.separatorChar + fileName));\r
-                packageList.add(spd.getPackageId());\r
+                if (!packageList.contains(spd.getPackageId())) {\r
+                    packageList.add(spd.getPackageId());\r
+                }\r
                 spdTable.put(spd.getPackageId(), spd);\r
             }\r
 \r
@@ -342,9 +300,7 @@ public class GlobalData {
     }\r
     \r
     public synchronized static Map<String, XmlObject> getNativeMsa(File msaFile) throws Exception {\r
-        if (! msaFile.exists()) {\r
-            throw new Exception("Surface Area file [" + msaFile.getPath() + "] can't found.");\r
-        }\r
+        \r
         try {\r
             ModuleSurfaceAreaDocument doc = (ModuleSurfaceAreaDocument)XmlObject.Factory.parse(msaFile);\r
             //\r
@@ -472,134 +428,24 @@ public class GlobalData {
         return result;\r
     }\r
 \r
-    ////// Tool Chain Related, try to refine and put some logic process to ToolChainFactory\r
-    public static void setBuildToolChainFamilyOptions(Map<String, Object> map) {\r
-        toolChainFamilyOptions = map;\r
-    }\r
-\r
-    public static Map<String, Object> getToolChainFamilyOptions() {\r
-        return toolChainFamilyOptions;\r
-    }\r
-\r
-    public static void setBuildToolChainOptions(Map<String, Object> map) {\r
-        toolChainOptions = map;\r
-    }\r
-\r
-    public static Map<String, Object> getToolChainOptions() {\r
-        return toolChainOptions;\r
-    }\r
-\r
-    public static void setTargets(Set<String> targetSet) {\r
-        GlobalData.log.info("TargetSet: " + targetSet);\r
-        targets = targetSet;\r
-    }\r
-\r
-    public static String[] getTargets() {\r
-        return (String[])targets.toArray(new String[targets.size()]);\r
-    }\r
-\r
-    public static void setToolChains(Set<String> toolChainSet) {\r
-        toolChains = toolChainSet;\r
-    }\r
-\r
-    public static String[] getToolChains() {\r
-        String[] toolChainList = new String[toolChains.size()];\r
-        return (String[])toolChains.toArray(toolChainList);\r
-    }\r
-\r
-    public static void setToolChainFamilies(Set<String> toolChainFamilySet) {\r
-        toolChainFamilies = toolChainFamilySet;\r
-    }\r
-\r
-    public static void setToolChainFamiliyMap(Map<String, Set<String>> map) {\r
-        /*\r
-        Set<String> keys = map.keySet();\r
-        Iterator it = keys.iterator();\r
-        while (it.hasNext()) {\r
-            String toolchain = (String)it.next();\r
-            Set<String> familyMap = (Set<String>)map.get(toolchain);\r
-            Iterator fit = familyMap.iterator();\r
-            System.out.print(toolchain + ": ");\r
-            while (fit.hasNext()) {\r
-                System.out.print((String)fit.next() + " ");\r
-            }\r
-            System.out.println("");\r
+    \r
+    public static Vector<String> getModuleSupArchs(ModuleIdentification mi) throws Exception{\r
+        Vector<String> vArchs = null;\r
+        ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = (ModuleSurfaceAreaDocument.ModuleSurfaceArea)getModuleXmlObject(mi);\r
+        if (msa.getModuleDefinitions() == null || msa.getModuleDefinitions().getSupportedArchitectures() == null) {\r
+            return vArchs;\r
         }\r
-        */\r
-        toolChainFamilyMap = map;\r
-    }\r
-\r
-    public static String[] getToolChainFamilies() {\r
-        String[] toolChainFamilyList = new String[toolChainFamilies.size()];\r
-        return (String[])toolChainFamilies.toArray(toolChainFamilyList);\r
-    }\r
-\r
-    public static String[] getToolChainFamilies(String toolChain) {\r
-        Set<String> familySet = (Set<String>)toolChainFamilyMap.get(toolChain);\r
-        String[] toolChainFamilyList = new String[familySet.size()];\r
-        return (String[])familySet.toArray(toolChainFamilyList);\r
-    }\r
-\r
-    public static Set<String> getToolChainFamilySet(String toolChain) {\r
-        return (Set<String>)toolChainFamilyMap.get(toolChain);\r
-    }\r
-\r
-    public static void setArchs(Set<String> archSet) {\r
-        archs = archSet;\r
-    }\r
-\r
-    public static String[] getArchs() {\r
-        String[] archList = new String[archs.size()];\r
-        return (String[])archs.toArray(archList);\r
-    }\r
-    /*\r
-\r
-     */\r
-    public static void SetCommandTypes(Set<String> commandTypeSet) {\r
-        commandTypes = commandTypeSet;\r
-    }\r
-    /*\r
-\r
-     */\r
-    public static void SetCommandTypes(Map<String, Set<String>> commandTypeMap) {\r
-        toolChainCommandMap = commandTypeMap;\r
-    }\r
-    /*\r
-\r
-     */\r
-    public static String[] getCommandTypes() {\r
-        String[] commandList = new String[commandTypes.size()];\r
-        return (String[])commandTypes.toArray(commandList);\r
-    }\r
-    /*\r
-\r
-     */\r
-    public static String[] getCommandTypes(String toolChain) {\r
-        Set<String> commands = (Set<String>)toolChainCommandMap.get(toolChain);\r
-        if (commands == null) {\r
-            return new String[0];\r
+        ListIterator li = msa.getModuleDefinitions().getSupportedArchitectures().listIterator();\r
+        while (li.hasNext()) {\r
+            if (vArchs == null) {\r
+                vArchs = new Vector<String>();\r
+            }\r
+            vArchs.add((String)li.next());\r
         }\r
-\r
-        String[] commandList = new String[commands.size()];\r
-        return (String[])commands.toArray(commandList);\r
-    }\r
-    /*\r
-\r
-     */\r
-    public static String getCommandSetting(String commandDescString) {\r
-        return (String)toolChainDefinitions.get(commandDescString);\r
-    }\r
-    /*\r
-\r
-     */\r
-    public static void setToolChainDefinitions(Map<String, String> def) {\r
-        toolChainDefinitions = def;\r
-    }\r
-\r
-    public static Map<String, String> getToolChainDefinitions() {\r
-        return toolChainDefinitions;\r
+        \r
+        return vArchs;\r
     }\r
-\r
+    \r
 }\r
 \r
 final class KeyComparator implements Comparator<String> {\r