]> git.proxmox.com Git - mirror_edk2.git/commitdiff
In before, module type is judged by the sub element value in <ModuleSA>, it is not...
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 22 Jun 2006 08:17:35 +0000 (08:17 +0000)
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 22 Jun 2006 08:17:35 +0000 (08:17 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@595 6f19259b-4bc3-4df7-8a09-765794883524

Tools/Source/GenBuild/org/tianocore/build/global/SurfaceAreaQuery.java
Tools/Source/GenBuild/org/tianocore/build/pcd/action/CollectPCDAction.java
Tools/Source/GenBuild/org/tianocore/build/pcd/entity/UsageInstance.java

index 50345c8a6854b7f970e207b2975f5daf8fdceaf8..35fd77833a284ccd76ec201ddb30fc5704259da9 100644 (file)
@@ -886,6 +886,22 @@ public class SurfaceAreaQuery {
         return (ModuleSADocument.ModuleSA[]) result;\r
     }\r
 \r
+    /**\r
+     Retrieve all <ModuleSA> documents from FPD file.\r
+\r
+     @returns   ModuleSA objects list   if elements are found at the known xpath\r
+     @returns   Empty ModuleSA list     if nothing is there\r
+     **/\r
+    public static ModuleSADocument.ModuleSA[] getFpdModuleSAs() {\r
+        String[] xPath = new String[] { "/FrameworkModules/*/ModuleSA" };\r
+\r
+        XmlObject[] result = get("FrameworkPlatformDescription", xPath);\r
+        if (result != null) {\r
+            return (ModuleSADocument.ModuleSA[]) result;\r
+        }\r
+        return new ModuleSADocument.ModuleSA[0];\r
+    }\r
+\r
     /**\r
      Retrieve variables for FV images\r
 \r
index dc60cc6eb75ae1d5e29cfaf68ce43e055bacfc4c..3edadc69595c593483d6e43d749923598b9bec6b 100644 (file)
@@ -52,6 +52,7 @@ import org.tianocore.build.pcd.entity.SkuInstance;
 import org.tianocore.build.pcd.entity.Token;\r
 import org.tianocore.build.pcd.entity.UsageInstance;\r
 import org.tianocore.build.pcd.exception.EntityException;\r
+import org.tianocore.ModuleTypeDef;\r
 \r
 class StringTable {\r
     private ArrayList<String>   al; \r
@@ -1185,9 +1186,9 @@ class PcdDatabase {
 \r
 class ModuleInfo {\r
     public ModuleSADocument.ModuleSA module;\r
-    public UsageInstance.MODULE_TYPE type;\r
+    public ModuleTypeDef.Enum        type;\r
 \r
-    public ModuleInfo (ModuleSADocument.ModuleSA module, UsageInstance.MODULE_TYPE type) {\r
+    public ModuleInfo (ModuleSADocument.ModuleSA module, ModuleTypeDef.Enum type) {\r
         this.module = module;\r
         this.type   = type;\r
     }\r
@@ -1345,14 +1346,13 @@ public class CollectPCDAction {
      */\r
     private List<ModuleInfo> getComponentsFromFPD() \r
         throws EntityException {\r
-        HashMap<String, XmlObject>  map         = new HashMap<String, XmlObject>();\r
         List<ModuleInfo>            allModules  = new ArrayList<ModuleInfo>();\r
         ModuleInfo                  current     = null;\r
         int                         index       = 0;\r
         org.tianocore.Components    components  = null;\r
         FrameworkModulesDocument.FrameworkModules fModules = null;\r
-        java.util.List<ModuleSADocument.ModuleSA> modules  = null;\r
-        \r
+        ModuleSADocument.ModuleSA[]               modules  = null;\r
+        HashMap<String, XmlObject>                map      = new HashMap<String, XmlObject>();\r
 \r
         if (fpdDocInstance == null) {\r
             try {\r
@@ -1365,64 +1365,13 @@ public class CollectPCDAction {
 \r
         }\r
 \r
-        //\r
-        // Check whether FPD contians <FramworkModules>\r
-        // \r
-        fModules = fpdDocInstance.getFrameworkPlatformDescription().getFrameworkModules();\r
-        if (fModules == null) {\r
-            return null;\r
-        }\r
-\r
-        //\r
-        // BUGBUG: The following is work around code, the final component type should be get from\r
-        // GlobalData class.\r
-        // \r
-        components = fModules.getSEC();\r
-        if (components != null) {\r
-            modules = components.getModuleSAList();\r
-            for (index = 0; index < modules.size(); index ++) {\r
-                allModules.add(new ModuleInfo(modules.get(index), UsageInstance.MODULE_TYPE.SEC));\r
-            }\r
-        }\r
-\r
-        components = fModules.getPEICORE();\r
-        if (components != null) {\r
-            modules = components.getModuleSAList();\r
-            for (index = 0; index < modules.size(); index ++) {\r
-                allModules.add(new ModuleInfo(modules.get(index), UsageInstance.MODULE_TYPE.PEI_CORE));\r
-            }\r
-        }\r
-\r
-        components = fModules.getPEIM();\r
-        if (components != null) {\r
-            modules = components.getModuleSAList();\r
-            for (index = 0; index < modules.size(); index ++) {\r
-                allModules.add(new ModuleInfo(modules.get(index), UsageInstance.MODULE_TYPE.PEIM));\r
-            }\r
-        }\r
-\r
-        components = fModules.getDXECORE();\r
-        if (components != null) {\r
-            modules = components.getModuleSAList();\r
-            for (index = 0; index < modules.size(); index ++) {\r
-                allModules.add(new ModuleInfo(modules.get(index), UsageInstance.MODULE_TYPE.DXE_CORE));\r
-            }\r
-        }\r
-\r
-        components = fModules.getDXEDRIVERS();\r
-        if (components != null) {\r
-            modules = components.getModuleSAList();\r
-            for (index = 0; index < modules.size(); index ++) {\r
-                allModules.add(new ModuleInfo(modules.get(index), UsageInstance.MODULE_TYPE.DXE_DRIVERS));\r
-            }\r
-        }\r
-\r
-        components = fModules.getOTHERCOMPONENTS();\r
-        if (components != null) {\r
-            modules = components.getModuleSAList();\r
-            for (index = 0; index < modules.size(); index ++) {\r
-                allModules.add(new ModuleInfo(modules.get(index), UsageInstance.MODULE_TYPE.OTHER_COMPONENTS));\r
-            }\r
+        map.put("FrameworkPlatformDescription", fpdDocInstance);\r
+        SurfaceAreaQuery.setDoc(map); \r
+        modules = SurfaceAreaQuery.getFpdModuleSAs();\r
+        for (index = 0; index < modules.length; index ++) {\r
+            SurfaceAreaQuery.setDoc(GlobalData.getDoc(modules[index].getModuleName()));\r
+            allModules.add(new ModuleInfo(modules[index], \r
+                                          ModuleTypeDef.Enum.forString(SurfaceAreaQuery.getModuleType())));\r
         }\r
         \r
         return allModules;\r
index 2769d497f70d75e0e9831b64857fa38e3d571210..3bebc45829afbcdb91e11c76abcd6b03d3fb8e74 100644 (file)
@@ -19,7 +19,7 @@ package org.tianocore.build.pcd.entity;
 \r
 \r
 import java.util.UUID;\r
-\r
+import org.tianocore.ModuleTypeDef;\r
 import org.tianocore.build.autogen.CommonDefinition;\r
 import org.tianocore.build.pcd.action.ActionMessage;\r
 import org.tianocore.build.pcd.exception.EntityException;\r
@@ -30,11 +30,6 @@ import org.tianocore.build.pcd.exception.EntityException;
   is an usage instance for this PCD token.\r
 **/\r
 public class UsageInstance {\r
-    ///\r
-    /// The module type of usage instance.\r
-    /// \r
-    public enum MODULE_TYPE {SEC, PEI_CORE, PEIM, DXE_CORE, DXE_DRIVERS, OTHER_COMPONENTS}\r
-\r
     ///\r
     /// This parent that this usage instance belongs to.\r
     ///\r
@@ -78,7 +73,7 @@ public class UsageInstance {
     ///\r
     /// The module type for this usage instance.\r
     ///\r
-    public MODULE_TYPE      moduleType;\r
+    public ModuleTypeDef.Enum    moduleType;\r
 \r
     ///\r
     /// The value of the PCD in this usage instance. \r
@@ -122,7 +117,7 @@ public class UsageInstance {
                           UUID              moduleGUID,\r
                           String            packageName,\r
                           UUID              packageGUID,\r
-                          MODULE_TYPE       moduleType,\r
+                          ModuleTypeDef.Enum moduleType,\r
                           Token.PCD_TYPE    modulePcdType,\r
                           String            arch,\r
                           String            version,\r
@@ -185,8 +180,8 @@ public class UsageInstance {
        @return boolean\r
      */\r
     public boolean isPeiPhaseComponent() {\r
-        if ((moduleType == MODULE_TYPE.PEI_CORE) ||\r
-            (moduleType == MODULE_TYPE.PEIM)) {\r
+        if ((moduleType == ModuleTypeDef.PEI_CORE) ||\r
+            (moduleType == ModuleTypeDef.PEIM)) {\r
             return true;\r
         }\r
         return false;\r