]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java
Adjust Platform Definition and Module SA operations in FPD editor.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFileContents.java
index 3d34eb5b63d44cd39dd1f03bea19a6d162fc4c12..b9e772e0b3b868716eb47cd358d2621fdbb7f642 100644 (file)
@@ -23,6 +23,7 @@ import java.util.List;
 import java.util.ListIterator;\r
 import java.util.Map;\r
 import java.util.Set;\r
+import java.util.Vector;\r
 \r
 import javax.xml.namespace.QName;\r
 \r
@@ -36,6 +37,7 @@ import org.tianocore.EfiSectionType;
 import org.tianocore.FlashDefinitionFileDocument;\r
 import org.tianocore.FlashDocument;\r
 import org.tianocore.FrameworkModulesDocument;\r
+import org.tianocore.IntermediateOutputType;\r
 import org.tianocore.LibrariesDocument;\r
 import org.tianocore.ModuleSADocument;\r
 import org.tianocore.ModuleSurfaceAreaDocument;\r
@@ -172,29 +174,6 @@ public class FpdFileContents {
         return fpdFrameworkModules;\r
     }\r
     \r
-    public int getPlatformDefsSkuInfoCount(){\r
-        if (getfpdPlatformDefs().getSkuInfo() == null || getfpdPlatformDefs().getSkuInfo().getUiSkuNameList() == null) {\r
-            return 0;\r
-        }\r
-        return getfpdPlatformDefs().getSkuInfo().getUiSkuNameList().size();\r
-    }\r
-    \r
-    public void getPlatformDefsSkuInfos(String[][] saa){\r
-        if (getfpdPlatformDefs().getSkuInfo() == null || getfpdPlatformDefs().getSkuInfo().getUiSkuNameList() == null) {\r
-            return ;\r
-        }\r
-        \r
-        List<SkuInfoDocument.SkuInfo.UiSkuName> l = getfpdPlatformDefs().getSkuInfo().getUiSkuNameList();\r
-        ListIterator<SkuInfoDocument.SkuInfo.UiSkuName> li = l.listIterator();\r
-        int i = 0;\r
-        while(li.hasNext()) {\r
-            SkuInfoDocument.SkuInfo.UiSkuName sku = li.next();\r
-            saa[i][0] = sku.getSkuID()+"";\r
-            saa[i][1] = sku.getStringValue();\r
-            ++i;\r
-        }\r
-    }\r
-    \r
     public int getFrameworkModulesCount() {\r
         if (getfpdFrameworkModules().getModuleSAList() == null){\r
             return 0;\r
@@ -1169,6 +1148,13 @@ public class FpdFileContents {
         }\r
     }\r
     \r
+    public void updateBuildOptionsFfsSectionsType(int i, String type) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getfpdBuildOpts().addNewFfs();\r
+        if (type != null) {\r
+            ffs.addNewSections().setEncapsulationType(type);\r
+        }\r
+    }\r
+    \r
     public void genBuildOptionsFfsAttribute(int i, String name, String value) {\r
         BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
         BuildOptionsDocument.BuildOptions.Ffs.Attribute attrib = ffs.addNewAttribute();\r
@@ -1221,6 +1207,41 @@ public class FpdFileContents {
         sections.addNewSection().setSectionType(EfiSectionType.Enum.forString(sectionType));\r
     }\r
     \r
+    public void removeBuildOptionsFfsSectionsSection(int i, int j) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        BuildOptionsDocument.BuildOptions.Ffs.Sections sections = ffs.getSections();\r
+        if (sections == null) {\r
+            return;\r
+        }\r
+        XmlCursor cursor = sections.newCursor();\r
+        QName qSection = new QName(xmlNs, "Section");\r
+        if (cursor.toChild(qSection)) {\r
+            for (int k = 0; k < j; ++k) {\r
+                cursor.toNextSibling(qSection);\r
+            }\r
+            cursor.removeXml();\r
+        }\r
+        cursor.dispose();\r
+    }\r
+    \r
+    public void updateBuildOptionsFfsSectionsSection(int i, int j, String type){\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        BuildOptionsDocument.BuildOptions.Ffs.Sections sections = ffs.getSections();\r
+        if (sections == null) {\r
+            return;\r
+        }\r
+        XmlCursor cursor = sections.newCursor();\r
+        QName qSection = new QName(xmlNs, "Section");\r
+        if (cursor.toChild(qSection)) {\r
+            for (int k = 0; k < j; ++k) {\r
+                cursor.toNextSibling(qSection);\r
+            }\r
+            BuildOptionsDocument.BuildOptions.Ffs.Sections.Section section = (BuildOptionsDocument.BuildOptions.Ffs.Sections.Section)cursor.getObject();\r
+            section.setSectionType(EfiSectionType.Enum.forString(type));\r
+        }\r
+        cursor.dispose();\r
+    } \r
+    \r
     public void genBuildOptionsFfsSectionsSections(int i, String encapType) {\r
         BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
         if (ffs == null) {\r
@@ -1234,6 +1255,41 @@ public class FpdFileContents {
         sections.addNewSections().setEncapsulationType(encapType);\r
     }\r
     \r
+    public void removeBuildOptionsFfsSectionsSections(int i, int j) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        BuildOptionsDocument.BuildOptions.Ffs.Sections sections = ffs.getSections();\r
+        if (sections == null) {\r
+            return;\r
+        }\r
+        XmlCursor cursor = sections.newCursor();\r
+        QName qSections = new QName(xmlNs, "Sections");\r
+        if (cursor.toChild(qSections)) {\r
+            for (int k = 0; k < j; ++k) {\r
+                cursor.toNextSibling(qSections);\r
+            }\r
+            cursor.removeXml();\r
+        }\r
+        cursor.dispose();\r
+    }\r
+    \r
+    public void updateBuildOptionsFfsSectionsSections(int i, int j, String type) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        BuildOptionsDocument.BuildOptions.Ffs.Sections sections = ffs.getSections();\r
+        if (sections == null) {\r
+            return;\r
+        }\r
+        XmlCursor cursor = sections.newCursor();\r
+        QName qSections = new QName(xmlNs, "Sections");\r
+        if (cursor.toChild(qSections)) {\r
+            for (int k = 0; k < j; ++k) {\r
+                cursor.toNextSibling(qSections);\r
+            }\r
+            BuildOptionsDocument.BuildOptions.Ffs.Sections.Sections2 sections2 = (BuildOptionsDocument.BuildOptions.Ffs.Sections.Sections2)cursor.getObject();\r
+            sections2.setEncapsulationType(type);\r
+        }\r
+        cursor.dispose();\r
+    }\r
+    \r
     public void genBuildOptionsFfsSectionsSectionsSection(int i, int j, String type) {\r
         BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
         if (ffs == null) {\r
@@ -1252,6 +1308,51 @@ public class FpdFileContents {
         cursor.dispose();\r
     }\r
     \r
+    public void removeBuildOptionsFfsSectionsSectionsSection(int i, int j, int k) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        BuildOptionsDocument.BuildOptions.Ffs.Sections sections = ffs.getSections();\r
+        if (sections == null) {\r
+            return;\r
+        }\r
+        XmlCursor cursor = sections.newCursor();\r
+        QName qSections = new QName(xmlNs, "Sections");\r
+        if (cursor.toChild(qSections)) {\r
+            for (int l = 0; l < j; ++l) {\r
+                cursor.toNextSibling(qSections);\r
+            }\r
+            if (cursor.toFirstChild()) {\r
+                for (int m = 0; m < k; ++m) {\r
+                    cursor.toNextSibling();\r
+                }\r
+                cursor.removeXml();\r
+            }\r
+        }\r
+        cursor.dispose();\r
+    }\r
+    \r
+    public void updateBuildOptionsFfsSectionsSectionsSection(int i, int j, int k, String type) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        BuildOptionsDocument.BuildOptions.Ffs.Sections sections = ffs.getSections();\r
+        if (sections == null) {\r
+            return;\r
+        }\r
+        XmlCursor cursor = sections.newCursor();\r
+        QName qSections = new QName(xmlNs, "Sections");\r
+        if (cursor.toChild(qSections)) {\r
+            for (int l = 0; l < j; ++l) {\r
+                cursor.toNextSibling(qSections);\r
+            }\r
+            if (cursor.toFirstChild()) {\r
+                for (int m = 0; m < k; ++m) {\r
+                    cursor.toNextSibling();\r
+                }\r
+                BuildOptionsDocument.BuildOptions.Ffs.Sections.Sections2.Section section = (BuildOptionsDocument.BuildOptions.Ffs.Sections.Sections2.Section)cursor.getObject();\r
+                section.setSectionType(EfiSectionType.Enum.forString(type));\r
+            }\r
+        }\r
+        cursor.dispose();\r
+    }\r
+    \r
     public void getBuildOptionsFfsSectionsSectionsSection(int i, int j, ArrayList<String> al) {\r
         BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
         if (ffs == null) {\r
@@ -1272,8 +1373,11 @@ public class FpdFileContents {
             ListIterator<BuildOptionsDocument.BuildOptions.Ffs.Sections.Sections2.Section> li = sections2.getSectionList().listIterator();\r
             while(li.hasNext()) {\r
                 BuildOptionsDocument.BuildOptions.Ffs.Sections.Sections2.Section section = li.next();\r
+                if (section.isSetSectionType()) {\r
                 al.add(section.getSectionType().toString());\r
             }\r
+                \r
+            }\r
         }\r
         cursor.dispose();\r
         \r
@@ -1299,6 +1403,11 @@ public class FpdFileContents {
         }\r
     }\r
     \r
+    public void updateBuildOptionsFfsKey(int i, String key) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        ffs.setFfsKey(key);\r
+    }\r
+    \r
     /**Get ith FFS key and contents.\r
      * @param saa\r
      */\r
@@ -1365,6 +1474,8 @@ public class FpdFileContents {
         cursor.dispose();\r
     }\r
     \r
+    \r
+    \r
     public PlatformDefinitionsDocument.PlatformDefinitions getfpdPlatformDefs(){\r
         if (fpdPlatformDefs == null){\r
             fpdPlatformDefs = fpdRoot.addNewPlatformDefinitions();\r
@@ -1372,6 +1483,129 @@ public class FpdFileContents {
         return fpdPlatformDefs;\r
     }\r
     \r
+    public void getPlatformDefsSupportedArchs(Vector<Object> archs){\r
+        if (getfpdPlatformDefs().getSupportedArchitectures() == null) {\r
+            return;\r
+        }\r
+        ListIterator li = getfpdPlatformDefs().getSupportedArchitectures().listIterator();\r
+        while(li.hasNext()) {\r
+            archs.add(li.next());\r
+        }\r
+    }\r
+    \r
+    public void setPlatformDefsSupportedArchs(Vector<Object> archs) {\r
+        getfpdPlatformDefs().setSupportedArchitectures(archs);\r
+    }\r
+    \r
+    public void getPlatformDefsBuildTargets(Vector<Object> targets) {\r
+        if (getfpdPlatformDefs().getBuildTargets() == null) {\r
+            return;\r
+        }\r
+        ListIterator li = getfpdPlatformDefs().getBuildTargets().listIterator();\r
+        while(li.hasNext()) {\r
+            targets.add(li.next());\r
+        }\r
+    }\r
+    \r
+    public void setPlatformDefsBuildTargets(Vector<Object> targets) {\r
+        getfpdPlatformDefs().setBuildTargets(targets);\r
+    }\r
+    \r
+    public void genPlatformDefsSkuInfo(String id, String name) {\r
+        SkuInfoDocument.SkuInfo skuInfo = null;\r
+        if (getfpdPlatformDefs().getSkuInfo() == null) {\r
+            skuInfo = getfpdPlatformDefs().addNewSkuInfo();\r
+        }\r
+        skuInfo = getfpdPlatformDefs().getSkuInfo();\r
+        if (skuInfo.getUiSkuNameList() == null || skuInfo.getUiSkuNameList().size() == 0) {\r
+            SkuInfoDocument.SkuInfo.UiSkuName skuName = skuInfo.addNewUiSkuName();\r
+            skuName.setSkuID(new BigInteger("0"));\r
+            skuName.setStringValue("DEFAULT");\r
+        }\r
+        if (id.equals("0")) {\r
+            return;\r
+        }\r
+        SkuInfoDocument.SkuInfo.UiSkuName skuName = skuInfo.addNewUiSkuName();\r
+        skuName.setSkuID(new BigInteger(id));\r
+        skuName.setStringValue(name);\r
+    }\r
+    \r
+    public int getPlatformDefsSkuInfoCount(){\r
+        if (getfpdPlatformDefs().getSkuInfo() == null || getfpdPlatformDefs().getSkuInfo().getUiSkuNameList() == null) {\r
+            return 0;\r
+        }\r
+        return getfpdPlatformDefs().getSkuInfo().getUiSkuNameList().size();\r
+    }\r
+    \r
+    public void getPlatformDefsSkuInfos(String[][] saa){\r
+        if (getfpdPlatformDefs().getSkuInfo() == null || getfpdPlatformDefs().getSkuInfo().getUiSkuNameList() == null) {\r
+            return ;\r
+        }\r
+        \r
+        List<SkuInfoDocument.SkuInfo.UiSkuName> l = getfpdPlatformDefs().getSkuInfo().getUiSkuNameList();\r
+        ListIterator<SkuInfoDocument.SkuInfo.UiSkuName> li = l.listIterator();\r
+        int i = 0;\r
+        while(li.hasNext()) {\r
+            SkuInfoDocument.SkuInfo.UiSkuName sku = li.next();\r
+            saa[i][0] = sku.getSkuID()+"";\r
+            saa[i][1] = sku.getStringValue();\r
+            ++i;\r
+        }\r
+    }\r
+    \r
+    public void removePlatformDefsSkuInfo(int i) {\r
+        SkuInfoDocument.SkuInfo skuInfo = getfpdPlatformDefs().getSkuInfo();\r
+        if (skuInfo == null || i == 0) {\r
+            return ;\r
+        }\r
+        \r
+        XmlCursor cursor = skuInfo.newCursor();\r
+        if (cursor.toFirstChild()) {\r
+            for (int j = 0; j < i; ++j) {\r
+                cursor.toNextSibling();\r
+            }\r
+            cursor.removeXml();\r
+        }\r
+        cursor.dispose();\r
+    }\r
+    \r
+    public void updatePlatformDefsSkuInfo(int i, String id, String name) {\r
+        SkuInfoDocument.SkuInfo skuInfo = getfpdPlatformDefs().getSkuInfo();\r
+        if (skuInfo == null || i == 0) {\r
+            return ;\r
+        }\r
+        \r
+        XmlCursor cursor = skuInfo.newCursor();\r
+        if (cursor.toFirstChild()) {\r
+            for (int j = 0; j < i; ++j) {\r
+                cursor.toNextSibling();\r
+            }\r
+            SkuInfoDocument.SkuInfo.UiSkuName sku = (SkuInfoDocument.SkuInfo.UiSkuName)cursor.getObject();\r
+            sku.setSkuID(new BigInteger(id));\r
+            sku.setStringValue(name);\r
+        }\r
+        cursor.dispose();\r
+    }\r
+    \r
+    public String getPlatformDefsInterDir(){\r
+        if (getfpdPlatformDefs().getIntermediateDirectories() == null) {\r
+            return null;\r
+        }\r
+        return getfpdPlatformDefs().getIntermediateDirectories().toString();\r
+    }\r
+    \r
+    public void setPlatformDefsInterDir(String interDir){\r
+        getfpdPlatformDefs().setIntermediateDirectories(IntermediateOutputType.Enum.forString(interDir));\r
+    }\r
+    \r
+    public String getPlatformDefsOutputDir() {\r
+        return getfpdPlatformDefs().getOutputDirectory();\r
+    }\r
+    \r
+    public void setPlatformDefsOutputDir(String outputDir) {\r
+        getfpdPlatformDefs().setOutputDirectory(outputDir);\r
+    }\r
+    \r
     public FlashDocument.Flash getfpdFlash() {\r
         if (fpdFlash == null) {\r
             fpdFlash = fpdRoot.addNewFlash();\r
@@ -1656,26 +1890,6 @@ public class FpdFileContents {
         return fpdHdr;\r
     }\r
     \r
-    public void genPlatformDefsSkuInfo(String id, String name) {\r
-        SkuInfoDocument.SkuInfo skuInfo = null;\r
-        if (getfpdPlatformDefs().getSkuInfo() == null) {\r
-            skuInfo = getfpdPlatformDefs().addNewSkuInfo();\r
-        }\r
-        skuInfo = getfpdPlatformDefs().getSkuInfo();\r
-        if (skuInfo.getUiSkuNameList() == null || skuInfo.getUiSkuNameList().size() == 0) {\r
-            SkuInfoDocument.SkuInfo.UiSkuName skuName = skuInfo.addNewUiSkuName();\r
-            skuName.setSkuID(new BigInteger("0"));\r
-            skuName.setStringValue("DEFAULT");\r
-        }\r
-        if (id.equals("0")) {\r
-            return;\r
-        }\r
-        SkuInfoDocument.SkuInfo.UiSkuName skuName = skuInfo.addNewUiSkuName();\r
-        skuName.setSkuID(new BigInteger(id));\r
-        skuName.setStringValue(name);\r
-            \r
-        \r
-    }\r
     public String getFpdHdrPlatformName() {\r
         return getFpdHdr().getPlatformName();\r
     }\r