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
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
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
instance.setPackageVersion(pv);\r
\r
}\r
+ \r
+ public String getFvBinding(String moduleKey){\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+ if (msa == null || msa.getModuleSaBuildOptions() == null) {\r
+ return null;\r
+ }\r
+ return msa.getModuleSaBuildOptions().getFvBinding();\r
+ }\r
+ \r
+ public void setFvBinding(String moduleKey, String fvBinding){\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+ if (msa == null ) {\r
+ return;\r
+ }\r
+ if(msa.getModuleSaBuildOptions() == null){\r
+ msa.addNewModuleSaBuildOptions().setFvBinding(fvBinding);\r
+ return;\r
+ }\r
+ msa.getModuleSaBuildOptions().setFvBinding(fvBinding);\r
+ }\r
+ \r
+ public String getFfsFileNameGuid(String moduleKey){\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+ if (msa == null || msa.getModuleSaBuildOptions() == null) {\r
+ return null;\r
+ }\r
+ return msa.getModuleSaBuildOptions().getFfsFileNameGuid();\r
+ }\r
+ \r
+ public void setFfsFileNameGuid(String moduleKey, String fileGuid){\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+ if (msa == null ) {\r
+ return;\r
+ }\r
+ if(msa.getModuleSaBuildOptions() == null){\r
+ msa.addNewModuleSaBuildOptions().setFfsFileNameGuid(fileGuid);\r
+ return;\r
+ }\r
+ msa.getModuleSaBuildOptions().setFfsFileNameGuid(fileGuid);\r
+ }\r
+ \r
+ public String getFfsFormatKey(String moduleKey){\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+ if (msa == null || msa.getModuleSaBuildOptions() == null) {\r
+ return null;\r
+ }\r
+ return msa.getModuleSaBuildOptions().getFfsFormatKey();\r
+ }\r
+ \r
+ public void setFfsFormatKey(String moduleKey, String ffsKey){\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+ if (msa == null ) {\r
+ return;\r
+ }\r
+ if(msa.getModuleSaBuildOptions() == null){\r
+ msa.addNewModuleSaBuildOptions().setFfsFormatKey(ffsKey);\r
+ return;\r
+ }\r
+ msa.getModuleSaBuildOptions().setFvBinding(ffsKey);\r
+ }\r
+ \r
+ public void getModuleSAOptions(String moduleKey, String[][] saa) {\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+ if (msa.getModuleSaBuildOptions() == null || msa.getModuleSaBuildOptions().getOptions() == null\r
+ || msa.getModuleSaBuildOptions().getOptions().getOptionList() == null) {\r
+ return ;\r
+ }\r
+ \r
+ List<OptionDocument.Option> lOpt = msa.getModuleSaBuildOptions().getOptions().getOptionList();\r
+ ListIterator li = lOpt.listIterator();\r
+ int i = 0;\r
+ while(li.hasNext()) {\r
+ OptionDocument.Option opt = (OptionDocument.Option)li.next();\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
+ saa[i][2] = listToString(opt.getSupArchList());\r
+\r
+ }\r
+ saa[i][3] = opt.getToolCode();\r
+ saa[i][4] = opt.getTagName();\r
+ saa[i][5] = opt.getStringValue();\r
+ \r
+ ++i;\r
+ }\r
+ }\r
+ \r
+ public int getModuleSAOptionsCount(String moduleKey){\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+ if (msa.getModuleSaBuildOptions() == null || msa.getModuleSaBuildOptions().getOptions() == null\r
+ || msa.getModuleSaBuildOptions().getOptions().getOptionList() == null) {\r
+ return 0;\r
+ }\r
+ return msa.getModuleSaBuildOptions().getOptions().getOptionList().size();\r
+ }\r
+ \r
+ public void genModuleSAOptionsOpt(String moduleKey, Vector<Object> buildTargets, String toolChain, String tagName, String toolCmd, Vector<Object> archList, String contents) {\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+ if (msa.getModuleSaBuildOptions() == null) {\r
+ msa.addNewModuleSaBuildOptions();\r
+ }\r
+ if (msa.getModuleSaBuildOptions().getOptions() == null){\r
+ msa.getModuleSaBuildOptions().addNewOptions();\r
+ }\r
+ OptionDocument.Option opt = msa.getModuleSaBuildOptions().getOptions().addNewOption();\r
+ setBuildOptionsOpt(buildTargets, toolChain, tagName, toolCmd, archList, contents, opt);\r
+ }\r
+ \r
+ public void removeModuleSAOptionsOpt(String moduleKey, int i) {\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+ if (msa.getModuleSaBuildOptions() == null || msa.getModuleSaBuildOptions().getOptions() == null) {\r
+ return ;\r
+ }\r
+ OptionsDocument.Options opts = msa.getModuleSaBuildOptions().getOptions();\r
+ XmlCursor cursor = opts.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 updateModuleSAOptionsOpt(String moduleKey, int i, Vector<Object> buildTargets, String toolChain, String tagName, String toolCmd, Vector<Object> archList, String contents) {\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+ if (msa.getModuleSaBuildOptions() == null || msa.getModuleSaBuildOptions().getOptions() == null) {\r
+ return ;\r
+ }\r
+ OptionsDocument.Options opts = msa.getModuleSaBuildOptions().getOptions();\r
+ XmlCursor cursor = opts.newCursor();\r
+ if (cursor.toFirstChild()) {\r
+ for (int j = 0; j < i; ++j){\r
+ cursor.toNextSibling();\r
+ }\r
+ OptionDocument.Option opt = (OptionDocument.Option)cursor.getObject();\r
+ setBuildOptionsOpt(buildTargets, toolChain, tagName, toolCmd, archList, contents, opt);\r
+ }\r
+ cursor.dispose();\r
+ }\r
+ \r
/**add pcd information of module mi to a ModuleSA. \r
* @param mi\r
* @param moduleSa if null, generate a new ModuleSA.\r
++i;\r
}\r
}\r
- public void genBuildOptionsOpt(String buildTargets, String toolChain, String tagName, String toolCmd, String archList, String contents) {\r
+ public void genBuildOptionsOpt(Vector<Object> buildTargets, String toolChain, String tagName, String toolCmd, Vector<Object> archList, String contents) {\r
OptionsDocument.Options opts = getfpdBuildOpts().getOptions();\r
if (opts == null) {\r
opts = getfpdBuildOpts().addNewOptions();\r
setBuildOptionsOpt(buildTargets, toolChain, tagName, toolCmd, archList, contents, opt);\r
}\r
\r
- private void setBuildOptionsOpt(String buildTargets, String toolChain, String tagName, String toolCmd, String archList, String contents, OptionDocument.Option opt){\r
+ private void setBuildOptionsOpt(Vector<Object> buildTargets, String toolChain, String tagName, String toolCmd, Vector<Object> archList, String contents, OptionDocument.Option opt){\r
opt.setStringValue(contents);\r
-// opt.setBuildTargets(buildTargets);\r
+ \r
+ opt.setBuildTargets(buildTargets);\r
opt.setToolChainFamily(toolChain);\r
opt.setTagName(tagName);\r
opt.setToolCode(toolCmd);\r
- String[] s = archList.split(" ");\r
- ArrayList<String> al = new ArrayList<String>();\r
- for (int i = 0; i < s.length; ++i) {\r
- al.add(s[i]);\r
- }\r
- opt.setSupArchList(al);\r
+ \r
+ opt.setSupArchList(archList);\r
}\r
\r
public void removeBuildOptionsOpt(int i){\r
cursor.dispose();\r
}\r
\r
- public void updateBuildOptionsOpt(int i, String buildTargets, String toolChain, String tagName, String toolCmd, String archList, String contents) {\r
+ public void updateBuildOptionsOpt(int i, Vector<Object> buildTargets, String toolChain, String tagName, String toolCmd, Vector<Object> archList, String contents) {\r
XmlObject o = getfpdBuildOpts().getOptions();\r
if (o == null) {\r
return;\r
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
}\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
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
\r
FvImagesDocument.FvImages.FvImage.FvImageOptions.NameValue nv = fio.addNewNameValue();\r
String k = (String)i.next();\r
- if (k.equals("EFI_ALIGNMENT_CAP")) {\r
- nv.setName(k);\r
- nv.setValue("TRUE");\r
- setFvImageOptionsAlign((String)options.get(k), fio);\r
- continue;\r
- }\r
+ \r
nv.setName(k);\r
nv.setValue((String)options.get(k));\r
\r
\r
}\r
\r
- private void setFvImageOptionsAlign(String alignValue, FvImagesDocument.FvImages.FvImage.FvImageOptions fio) {\r
- int numForm = -1;\r
- if (alignValue.endsWith("K")) {\r
- alignValue = alignValue.substring(0, alignValue.length()-1);\r
- numForm = new Integer(alignValue).intValue() * 1024;\r
- }\r
- else {\r
- numForm = new Integer(alignValue).intValue();\r
- }\r
- \r
- FvImagesDocument.FvImages.FvImage.FvImageOptions.NameValue nv = null;\r
- if (numForm / (64*1024) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_64K");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_64K");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (32*1024) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_32K");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_32K");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (16*1024) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_16K");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_16K");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (8*1024) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_8K");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_8K");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (4*1024) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_4K");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_4K");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (2*1024) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_2K");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_2K");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (1*1024) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_1K");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_1K");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (512) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_512");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_512");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (256) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_256");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_256");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (128) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_128");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_128");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (64) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_64");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_64");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (32) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_32");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_32");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (16) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_16");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_16");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (8) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_8");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_8");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (4) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_4");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_4");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- if (numForm / (2) >= 1) {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_2");\r
- nv.setValue("TRUE");\r
- }\r
- else {\r
- nv = fio.addNewNameValue();\r
- nv.setName("EFI_ALIGNMENT_2");\r
- nv.setValue("FALSE");\r
- }\r
- \r
- }\r
\r
public void removeFvImagesFvImage(int i) {\r
\r
return getfpdFlash().getFvImages().getFvImageList().size();\r
}\r
\r
- public void getFvImagesFvImages(String[][] saa, ArrayList<LinkedHashMap<String, String>> options) {\r
+ /**Only Get Fv image setting - name and type.\r
+ * @param saa\r
+ */\r
+ public void getFvImagesFvImages(String[][] saa) {\r
\r
if (getfpdFlash().getFvImages() == null) {\r
return;\r
\r
saa[i][1] = fi.getType()+"";\r
\r
- //\r
- // get FvImageOptions into Map[i]\r
- //\r
- FvImagesDocument.FvImages.FvImage.FvImageOptions fo = fi.getFvImageOptions();\r
- if (fo == null) {\r
- ++i;\r
- continue;\r
+ ++i;\r
+ }\r
+ }\r
+ \r
+ /**Get FvImage Options for FvImage i\r
+ * @param i the ith FvImage\r
+ */\r
+ public void getFvImagesFvImageOptions(int i, Map<String, String> m) {\r
+ XmlObject o = getfpdFlash().getFvImages();\r
+ if (o == null) {\r
+ return;\r
+ }\r
+ XmlCursor cursor = o.newCursor();\r
+ QName qFvImage = new QName(xmlNs, "FvImage");\r
+ if (cursor.toChild(qFvImage)) {\r
+ for (int j = 0; j < i; ++j) {\r
+ cursor.toNextSibling(qFvImage);\r
}\r
- List<FvImagesDocument.FvImages.FvImage.FvImageOptions.NameValue> lnv = fo.getNameValueList();\r
- if (lnv == null || lnv.isEmpty()) {\r
- ++i;\r
- continue;\r
+ FvImagesDocument.FvImages.FvImage fi = (FvImagesDocument.FvImages.FvImage)cursor.getObject();\r
+ if (fi.getFvImageOptions() == null || fi.getFvImageOptions().getNameValueList() == null){\r
+ return;\r
}\r
- ListIterator lnvi = lnv.listIterator();\r
- while (lnvi.hasNext()) {\r
- FvImagesDocument.FvImages.FvImage.FvImageOptions.NameValue nv = (FvImagesDocument.FvImages.FvImage.FvImageOptions.NameValue)lnvi.next();\r
- Map<String, String> m = options.get(i);\r
+ ListIterator<FvImagesDocument.FvImages.FvImage.FvImageOptions.NameValue> li = fi.getFvImageOptions().getNameValueList().listIterator();\r
+ while(li.hasNext()){\r
+ FvImagesDocument.FvImages.FvImage.FvImageOptions.NameValue nv = li.next();\r
m.put(nv.getName(), nv.getValue());\r
}\r
- \r
- ++i;\r
}\r
}\r
\r
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
\r
}\r
\r
- private String listToString(List<String> l) {\r
+ private String listToString(List l) {\r
if (l == null) {\r
return null;\r
}\r