]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/GenBuild/org/tianocore/build/global/SurfaceAreaQuery.java
- Move global declarations from AutoGen.c to AutoGen.h
[mirror_edk2.git] / Tools / Java / Source / GenBuild / org / tianocore / build / global / SurfaceAreaQuery.java
index 36eda95c3f4791cdb8b695da2d4432db13e475bd..933b5d4e0d46c9dda9c04955ad2585ea19f9f3b6 100644 (file)
@@ -23,11 +23,12 @@ import java.util.Stack;
 import java.util.regex.Matcher;\r
 import java.util.regex.Pattern;\r
 \r
-import org.tianocore.ExternsDocument.Externs.Extern;\r
 import org.apache.xmlbeans.XmlObject;\r
 import org.apache.xmlbeans.XmlString;\r
 import org.tianocore.*;\r
+import org.tianocore.ExternsDocument.Externs.Extern;\r
 import org.tianocore.FilenameDocument.Filename;\r
+import org.tianocore.ModuleDefinitionsDocument.ModuleDefinitions;\r
 import org.tianocore.MsaHeaderDocument.MsaHeader;\r
 import org.tianocore.ProtocolsDocument.Protocols.Protocol;\r
 import org.tianocore.ProtocolsDocument.Protocols.ProtocolNotify;\r
@@ -37,8 +38,8 @@ import org.tianocore.build.id.ModuleIdentification;
 import org.tianocore.build.id.PackageIdentification;\r
 import org.tianocore.build.id.PlatformIdentification;\r
 import org.tianocore.build.toolchain.ToolChainInfo;\r
-import org.tianocore.common.exception.EdkException;\r
 import org.tianocore.common.definitions.EdkDefinitions;\r
+import org.tianocore.common.exception.EdkException;\r
 import org.w3c.dom.Node;\r
 \r
 /**\r
@@ -543,6 +544,24 @@ public class SurfaceAreaQuery {
         return null;\r
     }\r
 \r
+    /**\r
+     * Retrieve <ModuleDefinitions>/<BinaryModule>\r
+     *\r
+     * @returns The module type name if elements are found at the known xpath\r
+     * @returns null if nothing is there\r
+     */\r
+    public boolean getBinaryModule() {\r
+        String[] xPath = new String[] { "/" };\r
+\r
+        Object[] returns = get("ModuleDefinitions", xPath);\r
+        if (returns != null && returns.length > 0) {\r
+            ModuleDefinitionsDocument.ModuleDefinitions def = (ModuleDefinitionsDocument.ModuleDefinitions)returns[0];\r
+            return def.getBinaryModule();\r
+        }\r
+\r
+        return false;\r
+    }\r
+\r
     /**\r
      * Retrieve PackageDependencies/Package\r
      *\r
@@ -1492,6 +1511,22 @@ public class SurfaceAreaQuery {
         return a.getDomNode();\r
     }\r
 \r
+    public Node[] getFpdUserExtensions() {\r
+        String[] xPath = new String[] { "/UserExtensions[@UserID='TianoCore' and not(@Identifier='1') and not(@Identifier='0')]" };\r
+\r
+        Object[] queryResult = get("PlatformSurfaceArea", xPath);\r
+        if (queryResult == null || queryResult.length == 0) {\r
+            return new Node[0];\r
+        }\r
+\r
+        Node[] nodeList = new Node[queryResult.length];\r
+        for (int i = 0; i < queryResult.length; ++i) {\r
+            UserExtensionsDocument.UserExtensions a =  (UserExtensionsDocument.UserExtensions)queryResult[i];\r
+            nodeList[i] = a.getDomNode();\r
+        }\r
+\r
+        return nodeList;\r
+    }\r
     /**\r
      * Retrieve FV image option information\r
      *\r