]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@714 6f19259b...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFileContents.java
index d97f2a7cba0d101f4dca1c78367ee0fa0732434a..3d34eb5b63d44cd39dd1f03bea19a6d162fc4c12 100644 (file)
@@ -32,6 +32,7 @@ import org.apache.xmlbeans.XmlOptions;
 import org.tianocore.AntTaskDocument;\r
 import org.tianocore.BuildOptionsDocument;\r
 import org.tianocore.DynamicPcdBuildDefinitionsDocument;\r
+import org.tianocore.EfiSectionType;\r
 import org.tianocore.FlashDefinitionFileDocument;\r
 import org.tianocore.FlashDocument;\r
 import org.tianocore.FrameworkModulesDocument;\r
@@ -1144,16 +1145,13 @@ public class FpdFileContents {
         int i = 0;\r
         while(li.hasNext()) {\r
             OptionDocument.Option opt = (OptionDocument.Option)li.next();\r
-//            saa[i][0] = opt.getBuildTargets();\r
+            if (opt.getBuildTargets() != null) {\r
+                saa[i][0] = listToString(opt.getBuildTargets());\r
+            }\r
             saa[i][1] = opt.getToolChainFamily();\r
             if (opt.getSupArchList() != null){\r
-                Object[] archs = opt.getSupArchList().toArray();\r
-                saa[i][2] = " ";\r
-                for (int j = 0; j < archs.length; ++j){\r
-                    saa[i][2] += archs[j];\r
-                    saa[i][2] += " ";\r
-                }\r
-                saa[i][2] = saa[i][2].trim();\r
+                saa[i][2] = listToString(opt.getSupArchList());\r
+\r
             }\r
             saa[i][3] = opt.getToolCode();\r
             saa[i][4] = opt.getTagName();\r
@@ -1163,6 +1161,210 @@ public class FpdFileContents {
         }\r
     }\r
     \r
+    public void genBuildOptionsFfs(String ffsKey, String type) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getfpdBuildOpts().addNewFfs();\r
+        ffs.setFfsKey(ffsKey);\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
+        attrib.setName(name);\r
+        attrib.setValue(value);\r
+    }\r
+    \r
+    /**update jth attribute of ith ffs.\r
+     * @param i\r
+     * @param j\r
+     */\r
+    public void updateBuildOptionsFfsAttribute(int i, int j, String name, String value){\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        XmlCursor cursor = ffs.newCursor();\r
+        QName qAttrib = new QName(xmlNs, "Attribute");\r
+        if (cursor.toChild(qAttrib)) {\r
+            for (int k = 0; k < j; ++k) {\r
+                cursor.toNextSibling(qAttrib);\r
+            }\r
+            BuildOptionsDocument.BuildOptions.Ffs.Attribute attrib = (BuildOptionsDocument.BuildOptions.Ffs.Attribute)cursor.getObject();\r
+            attrib.setName(name);\r
+            attrib.setValue(value);\r
+        }\r
+        cursor.dispose();\r
+    }\r
+    \r
+    public void removeBuildOptionsFfsAttribute(int i, int j){\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        XmlCursor cursor = ffs.newCursor();\r
+        QName qAttrib = new QName(xmlNs, "Attribute");\r
+        if (cursor.toChild(qAttrib)) {\r
+            for (int k = 0; k < j; ++k) {\r
+                cursor.toNextSibling(qAttrib);\r
+            }\r
+            cursor.removeXml();\r
+        }\r
+        cursor.dispose();\r
+    }\r
+    \r
+    public void genBuildOptionsFfsSectionsSection(int i, String sectionType) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        if (ffs == null) {\r
+            return;\r
+        }\r
+        BuildOptionsDocument.BuildOptions.Ffs.Sections sections = ffs.getSections();\r
+        \r
+        if (sections == null){\r
+            sections = ffs.addNewSections();\r
+        }\r
+        sections.addNewSection().setSectionType(EfiSectionType.Enum.forString(sectionType));\r
+    }\r
+    \r
+    public void genBuildOptionsFfsSectionsSections(int i, String encapType) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        if (ffs == null) {\r
+            return;\r
+        }\r
+        BuildOptionsDocument.BuildOptions.Ffs.Sections sections = ffs.getSections();\r
+        \r
+        if (sections == null){\r
+            sections = ffs.addNewSections();\r
+        }\r
+        sections.addNewSections().setEncapsulationType(encapType);\r
+    }\r
+    \r
+    public void genBuildOptionsFfsSectionsSectionsSection(int i, int j, String type) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        if (ffs == null) {\r
+            return;\r
+        }\r
+        BuildOptionsDocument.BuildOptions.Ffs.Sections sections = ffs.getSections();\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.addNewSection().setSectionType(EfiSectionType.Enum.forString(type));\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
+            return;\r
+        }\r
+        BuildOptionsDocument.BuildOptions.Ffs.Sections sections = ffs.getSections();\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
+            if (sections2.getSectionList() == null){\r
+                cursor.dispose();\r
+                return;\r
+            }\r
+            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
+                al.add(section.getSectionType().toString());\r
+            }\r
+        }\r
+        cursor.dispose();\r
+        \r
+    }\r
+    \r
+    public int getBuildOptionsFfsCount(){\r
+        if (getfpdBuildOpts().getFfsList() == null) {\r
+            return 0;\r
+        }\r
+        return getfpdBuildOpts().getFfsList().size();\r
+    }\r
+    \r
+    public void getBuildOptionsFfsKey(String[][] saa) {\r
+        if (getfpdBuildOpts().getFfsList() == null) {\r
+            return;\r
+        }\r
+        ListIterator<BuildOptionsDocument.BuildOptions.Ffs> li = getfpdBuildOpts().getFfsList().listIterator();\r
+        int i = 0;\r
+        while(li.hasNext()){\r
+            BuildOptionsDocument.BuildOptions.Ffs ffs = li.next();\r
+            saa[i][0] = ffs.getFfsKey();\r
+            ++i;\r
+        }\r
+    }\r
+    \r
+    /**Get ith FFS key and contents.\r
+     * @param saa\r
+     */\r
+    public void getBuildOptionsFfs(int i, String[] sa, LinkedHashMap<String, String> ffsAttribMap, ArrayList<String> firstLevelSections, ArrayList<String> firstLevelSection) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+     \r
+        if (ffs != null) {\r
+         \r
+            sa[0] = ffs.getFfsKey();\r
+            if (ffs.getSections() != null) {\r
+                if(ffs.getSections().getEncapsulationType() != null){\r
+                    sa[1] = ffs.getSections().getEncapsulationType();\r
+                }\r
+                if (ffs.getSections().getSectionList() != null){\r
+                    ListIterator<BuildOptionsDocument.BuildOptions.Ffs.Sections.Section> li = ffs.getSections().getSectionList().listIterator();\r
+                    while (li.hasNext()) {\r
+                        firstLevelSection.add(li.next().getSectionType().toString());\r
+                    }\r
+                }\r
+                if (ffs.getSections().getSectionsList() != null) {\r
+                    ListIterator<BuildOptionsDocument.BuildOptions.Ffs.Sections.Sections2> li = ffs.getSections().getSectionsList().listIterator();\r
+                    while(li.hasNext()) {\r
+                        firstLevelSections.add(li.next().getEncapsulationType());\r
+                    }\r
+                }\r
+            }\r
+            if (ffs.getAttributeList() != null) {\r
+                ListIterator<BuildOptionsDocument.BuildOptions.Ffs.Attribute> li = ffs.getAttributeList().listIterator();\r
+                while(li.hasNext()) {\r
+                    BuildOptionsDocument.BuildOptions.Ffs.Attribute attrib = li.next();\r
+                    ffsAttribMap.put(attrib.getName(), attrib.getValue());\r
+                }\r
+                \r
+            }\r
+        }\r
+\r
+        \r
+    }\r
+    \r
+    private BuildOptionsDocument.BuildOptions.Ffs getFfs(int i) {\r
+        XmlObject o = getfpdBuildOpts();\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = null;\r
+        \r
+        XmlCursor cursor = o.newCursor();\r
+        QName qFfs = new QName(xmlNs, "Ffs");\r
+        if (cursor.toChild(qFfs)) {\r
+            for (int j = 0; j < i; ++j) {\r
+                cursor.toNextSibling(qFfs);\r
+            }\r
+            ffs = (BuildOptionsDocument.BuildOptions.Ffs)cursor.getObject();\r
+        }\r
+        cursor.dispose();\r
+        return ffs;\r
+    }\r
+    \r
+    public void removeBuildOptionsFfs(int i) {\r
+        BuildOptionsDocument.BuildOptions.Ffs ffs = getFfs(i);\r
+        if (ffs == null){\r
+            return;\r
+        }\r
+        \r
+        XmlCursor cursor = ffs.newCursor();\r
+        cursor.removeXml();\r
+        cursor.dispose();\r
+    }\r
+    \r
     public PlatformDefinitionsDocument.PlatformDefinitions getfpdPlatformDefs(){\r
         if (fpdPlatformDefs == null){\r
             fpdPlatformDefs = fpdRoot.addNewPlatformDefinitions();\r