]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java
Provide UI for generating Apriori file of PEI or DXE phase. The module order informat...
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFileContents.java
index 82a3ded696cd50b1471073e2fc5f6cca528b5b1d..fdf5fb55e77f2dff6f78ae3638588040ad104541 100644 (file)
@@ -1800,15 +1800,15 @@ public class FpdFileContents {
         return fpdBuildOpts;\r
     }\r
     \r
-    public void genBuildOptionsUserExtensions(String fvName, String outputFileName, Vector<String[]> includeModules) {\r
+    public void genBuildOptionsUserExtensions(String fvName, String userId, String id, String outputFileName, Vector<String[]> includeModules) {\r
         QName elementFvName = new QName (xmlNs, "FvName");\r
         QName elementIncludeModules = new QName(xmlNs, "IncludeModules");\r
         QName elementInfFileName = new QName(xmlNs, "InfFileName");\r
         QName elementModule = new QName(xmlNs, "Module");\r
         \r
         UserExtensionsDocument.UserExtensions userExts = getfpdBuildOpts().addNewUserExtensions();\r
-        userExts.setUserID("IMAGES");\r
-        userExts.setIdentifier(new BigInteger("1"));\r
+        userExts.setUserID(userId);\r
+        userExts.setIdentifier(new BigInteger(id));\r
         XmlCursor cursor = userExts.newCursor();\r
         cursor.toEndToken();\r
         \r
@@ -1817,7 +1817,7 @@ public class FpdFileContents {
         cursor.toNextToken();\r
         \r
         cursor.beginElement(elementInfFileName);\r
-        cursor.insertChars(fvName + ".inf");\r
+        cursor.insertChars(outputFileName);\r
         cursor.toNextToken();\r
         \r
         cursor.beginElement(elementIncludeModules);\r
@@ -1839,15 +1839,19 @@ public class FpdFileContents {
         cursor.dispose();\r
     }\r
     \r
-    public int getUserExtsIncModCount (String fvName) {\r
+    public int getUserExtsIncModCount (String fvName, String userId, int id) {\r
         if (getfpdBuildOpts().getUserExtensionsList() == null) {\r
             return -1;\r
         }\r
+\r
         ListIterator<UserExtensionsDocument.UserExtensions> li = getfpdBuildOpts().getUserExtensionsList().listIterator();\r
         QName elementIncludeModules = new QName(xmlNs, "IncludeModules");\r
         while (li.hasNext()) {\r
             UserExtensionsDocument.UserExtensions ues = li.next();\r
-            if (!ues.getUserID().equals("IMAGES")) {\r
+            if (!ues.getUserID().equals(userId)) {\r
+                continue;\r
+            }\r
+            if (ues.getIdentifier() == null || ues.getIdentifier().intValue() != id) {\r
                 continue;\r
             }\r
             XmlCursor cursor = ues.newCursor();\r
@@ -1869,14 +1873,15 @@ public class FpdFileContents {
         return -1;\r
     }\r
     \r
-    public void getUserExtsIncMods(String fvName, String[][] saa) {\r
+    public void getUserExtsIncMods(String fvName, String userId, int id, String[][] saa) {\r
         if (getfpdBuildOpts().getUserExtensionsList() == null) {\r
             return;\r
         }\r
-        \r
+\r
         XmlCursor cursor = getfpdBuildOpts().newCursor();\r
         QName elementUserExts = new QName (xmlNs, "UserExtensions");\r
         QName attribUserId = new QName ("UserID");\r
+        QName attribId = new QName ("Identifier");\r
         QName elementFvName = new QName (xmlNs, "FvName");\r
         QName elementIncludeModules = new QName(xmlNs, "IncludeModules");\r
         QName attribModuleGuid = new QName("ModuleGuid");\r
@@ -1888,7 +1893,7 @@ public class FpdFileContents {
         if (cursor.toChild(elementUserExts)) {\r
             do {\r
                 cursor.push();\r
-                if (cursor.getAttributeText(attribUserId).equals("IMAGES")) {\r
+                if (cursor.getAttributeText(attribUserId).equals(userId) && cursor.getAttributeText(attribId).equals(id+"")) {\r
                     cursor.toChild(elementFvName);\r
                     String elementName = cursor.getTextValue();\r
                     if (elementName.equals(fvName)) {\r
@@ -1935,15 +1940,18 @@ public class FpdFileContents {
         \r
     }\r
     \r
-    public void removeBuildOptionsUserExtensions (String fvName) {\r
+    public void removeBuildOptionsUserExtensions (String fvName, String userId, int id) {\r
         if (getfpdBuildOpts().getUserExtensionsList() == null) {\r
             return;\r
         }\r
-        \r
+\r
         ListIterator<UserExtensionsDocument.UserExtensions> li = getfpdBuildOpts().getUserExtensionsList().listIterator();\r
         while (li.hasNext()) {\r
             UserExtensionsDocument.UserExtensions ues = li.next();\r
-            if (!ues.getUserID().equals("IMAGES")) {\r
+            if (!ues.getUserID().equals(userId)) {\r
+                continue;\r
+            }\r
+            if (ues.getIdentifier()== null || ues.getIdentifier().intValue() != id) {\r
                 continue;\r
             }\r
             XmlCursor cursor = ues.newCursor();\r
@@ -1974,13 +1982,13 @@ public class FpdFileContents {
         return false;\r
     }\r
     \r
-    public boolean moduleInBuildOptionsUserExtensions (String fvName, String moduleGuid, String moduleVersion, String packageGuid, String packageVersion, String arch) {\r
+    public boolean moduleInBuildOptionsUserExtensions (String fvName, String userId, int id, String moduleGuid, String moduleVersion, String packageGuid, String packageVersion, String arch) {\r
         boolean inList = false;\r
-        if (getUserExtsIncModCount(fvName) > 0) {\r
-            \r
+        if (getUserExtsIncModCount(fvName, userId, id) > 0) {\r
             XmlCursor cursor = getfpdBuildOpts().newCursor();\r
             QName elementUserExts = new QName (xmlNs, "UserExtensions");\r
             QName attribUserId = new QName ("UserID");\r
+            QName attribId = new QName ("Identifier");\r
             QName elementFvName = new QName (xmlNs, "FvName");\r
             QName elementIncludeModules = new QName(xmlNs, "IncludeModules");\r
             QName attribModuleGuid = new QName("ModuleGuid");\r
@@ -1992,7 +2000,7 @@ public class FpdFileContents {
             if (cursor.toChild(elementUserExts)) {\r
                 do {\r
                     cursor.push();\r
-                    if (cursor.getAttributeText(attribUserId).equals("IMAGES")) {\r
+                    if (cursor.getAttributeText(attribUserId).equals(userId) && cursor.getAttributeText(attribId).equals(id+"")) {\r
                         cursor.toChild(elementFvName);\r
                         String elementName = cursor.getTextValue();\r
                         if (elementName.equals(fvName)) {\r
@@ -2035,21 +2043,21 @@ public class FpdFileContents {
         return inList;\r
     }\r
     \r
-    public void removeModuleInBuildOptionsUserExtensions (String fvName, String moduleGuid, String moduleVersion, String packageGuid, String packageVersion, String arch) {\r
+    public void removeModuleInBuildOptionsUserExtensions (String fvName, String userId, int id, String moduleGuid, String moduleVersion, String packageGuid, String packageVersion, String arch) {\r
         //\r
         // if there is only one module before remove operation, the whole user extension should be removed.\r
         //\r
-        int moduleAmount = getUserExtsIncModCount(fvName);\r
+        int moduleAmount = getUserExtsIncModCount(fvName, userId, id);\r
         if (moduleAmount == 1) {\r
-            removeBuildOptionsUserExtensions(fvName);\r
+            removeBuildOptionsUserExtensions(fvName, userId, id);\r
             return;\r
         }\r
         \r
         if (moduleAmount > 1) {\r
-            \r
             XmlCursor cursor = getfpdBuildOpts().newCursor();\r
             QName elementUserExts = new QName (xmlNs, "UserExtensions");\r
             QName attribUserId = new QName ("UserID");\r
+            QName attribId = new QName ("Identifier");\r
             QName elementFvName = new QName (xmlNs, "FvName");\r
             QName elementIncludeModules = new QName(xmlNs, "IncludeModules");\r
             QName attribModuleGuid = new QName("ModuleGuid");\r
@@ -2061,7 +2069,7 @@ public class FpdFileContents {
             if (cursor.toChild(elementUserExts)) {\r
                 do {\r
                     cursor.push();\r
-                    if (cursor.getAttributeText(attribUserId).equals("IMAGES")) {\r
+                    if (cursor.getAttributeText(attribUserId).equals(userId) && cursor.getAttributeText(attribId).equals(id+"")) {\r
                         cursor.toChild(elementFvName);\r
                         String elementName = cursor.getTextValue();\r
                         if (elementName.equals(fvName)) {\r
@@ -2102,16 +2110,20 @@ public class FpdFileContents {
         }\r
     }\r
     \r
-    public void addModuleIntoBuildOptionsUserExtensions (String fvName, String moduleGuid, String moduleVersion, String packageGuid, String packageVersion, String arch) {\r
-        if (moduleInBuildOptionsUserExtensions (fvName, moduleGuid, moduleVersion, packageGuid, packageVersion, arch)) {\r
+    public void addModuleIntoBuildOptionsUserExtensions (String fvName, String userId, int id, String moduleGuid, String moduleVersion, String packageGuid, String packageVersion, String arch) {\r
+        if (moduleInBuildOptionsUserExtensions (fvName, userId, id, moduleGuid, moduleVersion, packageGuid, packageVersion, arch)) {\r
             return;\r
         }\r
+\r
         ListIterator<UserExtensionsDocument.UserExtensions> li = getfpdBuildOpts().getUserExtensionsList().listIterator();\r
         QName elementIncludeModules = new QName(xmlNs, "IncludeModules");\r
         QName elementModule = new QName(xmlNs, "Module");\r
         while (li.hasNext()) {\r
             UserExtensionsDocument.UserExtensions ues = li.next();\r
-            if (!ues.getUserID().equals("IMAGES")) {\r
+            if (!ues.getUserID().equals(userId)) {\r
+                continue;\r
+            }\r
+            if (ues.getIdentifier() == null || ues.getIdentifier().intValue() != id) {\r
                 continue;\r
             }\r
             XmlCursor cursor = ues.newCursor();\r