]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java
Fix bug of missing Pcd information in FPD ModuleSA.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFileContents.java
index 8805bad9041aeae561b10c8667b339581c0dca70..4783a74a25185aa5eafa337059f49f3b4e669b48 100644 (file)
@@ -287,29 +287,56 @@ public class FpdFileContents {
     //\r
     // key for ModuleSA : "ModuleGuid ModuleVer PackageGuid PackageVer"\r
     //\r
-    public int getPcdDataCount(String key){\r
-        ModuleSADocument.ModuleSA msa = getModuleSA(key);\r
+    public int getPcdDataCount(int i){\r
+        if (getfpdFrameworkModules().getModuleSAList() == null || getfpdFrameworkModules().getModuleSAList().size() == 0) {\r
+            return 0;\r
+        }\r
+        \r
+        XmlCursor cursor = getfpdFrameworkModules().newCursor();\r
+        ModuleSADocument.ModuleSA msa = null;\r
+        if (cursor.toFirstChild()) {\r
+            for (int j = 0; j < i; ++j) {\r
+                cursor.toNextSibling();\r
+            }\r
+            msa = (ModuleSADocument.ModuleSA)cursor.getObject();\r
+        }\r
+        cursor.dispose();\r
+        \r
         if (msa == null || msa.getPcdBuildDefinition() == null || msa.getPcdBuildDefinition().getPcdDataList() == null){\r
             return 0;\r
         }\r
         return msa.getPcdBuildDefinition().getPcdDataList().size();\r
+        \r
     }\r
     \r
-    public void getPcdData(String key, String[][] saa) {\r
-        ModuleSADocument.ModuleSA msa = getModuleSA(key);\r
+    public void getPcdData(int i, String[][] saa) {\r
+        if (getfpdFrameworkModules().getModuleSAList() == null || getfpdFrameworkModules().getModuleSAList().size() == 0) {\r
+            return;\r
+        }\r
+        \r
+        XmlCursor cursor = getfpdFrameworkModules().newCursor();\r
+        ModuleSADocument.ModuleSA msa = null;\r
+        if (cursor.toFirstChild()) {\r
+            for (int j = 0; j < i; ++j) {\r
+                cursor.toNextSibling();\r
+            }\r
+            msa = (ModuleSADocument.ModuleSA)cursor.getObject();\r
+        }\r
+        cursor.dispose();\r
+        \r
         if (msa == null || msa.getPcdBuildDefinition() == null || msa.getPcdBuildDefinition().getPcdDataList() == null){\r
             return;\r
         }\r
         ListIterator<PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData>li = msa.getPcdBuildDefinition().getPcdDataList().listIterator();\r
-        for (int i = 0; i < saa.length; ++i) {\r
+        for (int k = 0; k < saa.length; ++k) {\r
             PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData pcdData = li.next();\r
-            saa[i][0] = pcdData.getCName();\r
-            saa[i][1] = pcdData.getTokenSpaceGuidCName();\r
-            saa[i][2] = pcdData.getItemType()+"";\r
-            saa[i][3] = pcdData.getToken().toString();\r
-            saa[i][4] = pcdData.getMaxDatumSize()+"";\r
-            saa[i][5] = pcdData.getDatumType()+"";\r
-            saa[i][6] = pcdData.getValue();\r
+            saa[k][0] = pcdData.getCName();\r
+            saa[k][1] = pcdData.getTokenSpaceGuidCName();\r
+            saa[k][2] = pcdData.getItemType()+"";\r
+            saa[k][3] = pcdData.getToken().toString();\r
+            saa[k][4] = pcdData.getMaxDatumSize()+"";\r
+            saa[k][5] = pcdData.getDatumType()+"";\r
+            saa[k][6] = pcdData.getValue();\r
             \r
         }\r
     }\r