]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java
Should not checking exist fd file, otherwise new fd file can not override old fd...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFileContents.java
index d97f2a7cba0d101f4dca1c78367ee0fa0732434a..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
@@ -32,9 +33,11 @@ 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
+import org.tianocore.IntermediateOutputType;\r
 import org.tianocore.LibrariesDocument;\r
 import org.tianocore.ModuleSADocument;\r
 import org.tianocore.ModuleSurfaceAreaDocument;\r
@@ -171,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
@@ -1144,16 +1124,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 +1140,342 @@ 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 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
+        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 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
+            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 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
+            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 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
+            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
+                if (section.isSetSectionType()) {\r
+                al.add(section.getSectionType().toString());\r
+            }\r
+                \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
+    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
+    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
+    \r
+    \r
     public PlatformDefinitionsDocument.PlatformDefinitions getfpdPlatformDefs(){\r
         if (fpdPlatformDefs == null){\r
             fpdPlatformDefs = fpdRoot.addNewPlatformDefinitions();\r
@@ -1170,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
@@ -1454,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