+ 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