]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/GenBuild/org/tianocore/build/global/SurfaceAreaQuery.java
Fix an issue for user extensions.
[mirror_edk2.git] / Tools / Source / GenBuild / org / tianocore / build / global / SurfaceAreaQuery.java
index 5f86217378e1fa021c0c4d09e7cd4b5834bad05b..0b16e30df3bbb2953c34c499728dcc12447792a2 100644 (file)
@@ -23,21 +23,48 @@ import java.util.Stack;
 import java.util.regex.Matcher;\r
 import java.util.regex.Pattern;\r
 \r
-import org.apache.xmlbeans.XmlNormalizedString;\r
+import org.apache.xmlbeans.XmlCursor;\r
 import org.apache.xmlbeans.XmlObject;\r
 import org.apache.xmlbeans.XmlString;\r
-import org.tianocore.*;\r
+import org.tianocore.BuildOptionsDocument;\r
+import org.tianocore.CNameType;\r
+import org.tianocore.ExternsDocument;\r
+import org.tianocore.FileNameConvention;\r
+import org.tianocore.FvImagesDocument;\r
+import org.tianocore.GuidDeclarationsDocument;\r
+import org.tianocore.GuidsDocument;\r
+import org.tianocore.LibrariesDocument;\r
+import org.tianocore.LibraryClassDeclarationsDocument;\r
+import org.tianocore.LibraryClassDocument;\r
+import org.tianocore.ModuleDefinitionsDocument;\r
+import org.tianocore.ModuleSADocument;\r
+import org.tianocore.ModuleSaBuildOptionsDocument;\r
+import org.tianocore.ModuleTypeDef;\r
+import org.tianocore.MsaFilesDocument;\r
+import org.tianocore.MsaHeaderDocument;\r
+import org.tianocore.OptionDocument;\r
+import org.tianocore.PPIsDocument;\r
+import org.tianocore.PackageDependenciesDocument;\r
+import org.tianocore.PackageHeadersDocument;\r
+import org.tianocore.PcdCodedDocument;\r
+import org.tianocore.PlatformDefinitionsDocument;\r
+import org.tianocore.PlatformHeaderDocument;\r
+import org.tianocore.PpiDeclarationsDocument;\r
+import org.tianocore.ProtocolDeclarationsDocument;\r
+import org.tianocore.Sentence;\r
+import org.tianocore.SpdHeaderDocument;\r
+import org.tianocore.UserExtensionsDocument;\r
 import org.tianocore.FilenameDocument.Filename;\r
 import org.tianocore.MsaHeaderDocument.MsaHeader;\r
 import org.tianocore.ProtocolsDocument.Protocols.Protocol;\r
 import org.tianocore.ProtocolsDocument.Protocols.ProtocolNotify;\r
-import org.tianocore.SupportedArchitectures.Enum;\r
 import org.tianocore.build.id.FpdModuleIdentification;\r
 import org.tianocore.build.id.ModuleIdentification;\r
 import org.tianocore.build.id.PackageIdentification;\r
 import org.tianocore.build.id.PlatformIdentification;\r
 import org.tianocore.build.toolchain.ToolChainInfo;\r
 import org.tianocore.logger.EdkLog;\r
+import org.w3c.dom.Node;\r
 \r
 /**\r
  * SurfaceAreaQuery class is used to query Surface Area information from msa,\r
@@ -251,6 +278,7 @@ public class SurfaceAreaQuery {
         Filename[] sourceFileNames = (Filename[]) returns;\r
         List<String[]> outputList = new ArrayList<String[]>();\r
         for (int i = 0; i < sourceFileNames.length; i++) {\r
+            @SuppressWarnings("unchecked")\r
             List<String> archList = sourceFileNames[i].getSupArchList();\r
             if (arch == null || arch.equalsIgnoreCase("") || archList == null || archList.contains(arch)) {\r
                 outputList.add(new String[] {sourceFileNames[i].getToolCode(),sourceFileNames[i].getStringValue()});\r
@@ -416,6 +444,7 @@ public class SurfaceAreaQuery {
             }\r
 \r
             archList = new ArrayList<String>();\r
+            @SuppressWarnings("unchecked")\r
             List<String> archEnumList = option.getSupArchList();            \r
             if (archEnumList == null) {\r
                 archList.add(null);\r
@@ -542,6 +571,7 @@ public class SurfaceAreaQuery {
         PackageIdentification[] packageIdList = new PackageIdentification[returns.length];\r
         for (int i = 0; i < returns.length; i++) {\r
             PackageDependenciesDocument.PackageDependencies.Package item = (PackageDependenciesDocument.PackageDependencies.Package) returns[i];\r
+            @SuppressWarnings("unchecked")\r
             List<String> archList = item.getSupArchList();\r
             if (arch == null || archList == null || archList.contains(arch)) {\r
                 packageGuid = item.getPackageGuid();\r
@@ -677,6 +707,7 @@ public class SurfaceAreaQuery {
         List<String> protocolList = new ArrayList<String>();\r
         \r
         for (int i = 0; i < returns.length; i++) {\r
+            @SuppressWarnings("unchecked")\r
             List<String> archList = returnlList[i].getSupArchList();\r
             if (archList == null || archList.contains(arch)){\r
                 protocolList.add(returnlList[i].getProtocolCName());\r
@@ -715,6 +746,7 @@ public class SurfaceAreaQuery {
         List<String> protocolNotifyList = new ArrayList<String>();\r
         \r
         for (int i = 0; i < returns.length; i++) {\r
+            @SuppressWarnings("unchecked")\r
             List<String> archList = ((ProtocolNotify) returns[i]).getSupArchList();\r
             if (archList == null || archList.contains(arch)){\r
                 protocolNotifyList.add(((ProtocolNotify) returns[i]).getProtocolNotifyCName());\r
@@ -836,6 +868,7 @@ public class SurfaceAreaQuery {
         \r
         List<String> ppiNotifyList = new ArrayList<String>();\r
         for (int i = 0; i < returns.length; i++) {\r
+            @SuppressWarnings("unchecked")\r
             List<String> archList = ((PPIsDocument.PPIs.PpiNotify) returns[i]).getSupArchList();\r
             if (archList == null || archList.contains(arch)){\r
                 ppiNotifyList.add(((PPIsDocument.PPIs.PpiNotify) returns[i]).getPpiNotifyCName()); \r
@@ -916,6 +949,7 @@ public class SurfaceAreaQuery {
 \r
         List<String> ppiList = new ArrayList<String>();\r
         for (int i = 0; i < returns.length; i++) {\r
+            @SuppressWarnings("unchecked")\r
             List<String> archList = ((PPIsDocument.PPIs.Ppi) returns[i]).getSupArchList();\r
             if (archList == null || archList.contains(arch)){\r
                 ppiList.add(((PPIsDocument.PPIs.Ppi) returns[i]).getPpiCName());    \r
@@ -995,6 +1029,7 @@ public class SurfaceAreaQuery {
 \r
         List<String> guidList = new ArrayList<String>();\r
         for (int i = 0; i < returns.length; i++) {\r
+            @SuppressWarnings("unchecked")\r
             List<String> archList = ((GuidsDocument.Guids.GuidCNames) returns[i]).getSupArchList();\r
             if (archList == null || archList.contains(arch)){\r
                 guidList.add(((GuidsDocument.Guids.GuidCNames) returns[i]).getGuidCName());    \r
@@ -1343,14 +1378,16 @@ public class SurfaceAreaQuery {
         return result;\r
     }\r
     \r
-    public static XmlObject getFpdUserExtension() {\r
-        String[] xPath = new String[] { "" };\r
+    public static Node getFpdUserExtension() {\r
+        String[] xPath = new String[] { "/UserExtensions" };\r
 \r
         Object[] queryResult = get("PlatformSurfaceArea", xPath);\r
-        if (queryResult == null) {\r
+        if (queryResult == null || queryResult.length == 0) {\r
             return null;\r
         }\r
-        return null;\r
+        UserExtensionsDocument.UserExtensions a =  (UserExtensionsDocument.UserExtensions)queryResult[0];\r
+        \r
+        return a.getDomNode();\r
     }\r
 \r
     /**\r