+++ /dev/null
-/** @file\r
- Java class SpdFileContents is used to parse spd xml file.\r
- \r
-Copyright (c) 2006, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-**/\r
-package org.tianocore.frameworkwizard.packaging.ui;\r
-\r
-import java.io.File;\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.ListIterator;\r
-import java.util.Vector;\r
-\r
-\r
-import org.apache.xmlbeans.XmlObject;\r
-import org.apache.xmlbeans.XmlOptions;\r
-import org.apache.xmlbeans.XmlCursor;\r
-\r
-import org.tianocore.GuidDeclarationsDocument;\r
-\r
-import org.tianocore.LibraryClassDeclarationsDocument;\r
-\r
-import org.tianocore.ModuleTypeDef;\r
-import org.tianocore.MsaFilesDocument;\r
-import org.tianocore.PackageDefinitionsDocument;\r
-import org.tianocore.PackageHeadersDocument;\r
-import org.tianocore.PackageSurfaceAreaDocument;\r
-import org.tianocore.PcdDataTypes;\r
-import org.tianocore.PcdDeclarationsDocument;\r
-import org.tianocore.PpiDeclarationsDocument;\r
-import org.tianocore.ProtocolDeclarationsDocument;\r
-import org.tianocore.SpdHeaderDocument;\r
-import org.tianocore.GuidDeclarationsDocument.GuidDeclarations;\r
-\r
-/**\r
- This class processes spd file contents such as add remove xml elements.\r
- \r
- @since PackageEditor 1.0\r
-**/\r
-\r
-public class SpdFileContents {\r
-\r
- private File file = null;\r
-\r
- private PackageSurfaceAreaDocument psad = null;\r
-\r
- private PackageSurfaceAreaDocument.PackageSurfaceArea psaRoot = null;\r
-\r
- private SpdHeaderDocument.SpdHeader spdHdr = null;\r
- \r
- private PackageDefinitionsDocument.PackageDefinitions spdPkgDefs = null;\r
- \r
- private LibraryClassDeclarationsDocument.LibraryClassDeclarations spdLibClassDeclarations = null;\r
-\r
- private MsaFilesDocument.MsaFiles spdMsaFiles = null;\r
-\r
- private PackageHeadersDocument.PackageHeaders spdModHdrs = null;\r
-\r
- private GuidDeclarationsDocument.GuidDeclarations spdGuidDeclarations = null;\r
-\r
- private ProtocolDeclarationsDocument.ProtocolDeclarations spdProtocolDeclarations = null;\r
-\r
- private PpiDeclarationsDocument.PpiDeclarations spdPpiDeclarations = null;\r
-\r
- private PcdDeclarationsDocument.PcdDeclarations spdPcdDefinitions = null;\r
-\r
- /**\r
- Constructor to create a new spd file\r
- **/\r
- public SpdFileContents() {\r
-\r
- psad = PackageSurfaceAreaDocument.Factory.newInstance();\r
- psaRoot = psad.addNewPackageSurfaceArea();\r
-\r
- }\r
-\r
- /**\r
- Constructor for existing document object\r
- @param psa\r
- **/\r
- public SpdFileContents(PackageSurfaceAreaDocument.PackageSurfaceArea psa) {\r
- psaRoot = psa;\r
- spdHdr = psaRoot.getSpdHeader();\r
- spdPkgDefs = psaRoot.getPackageDefinitions();\r
- }\r
- /**\r
- Constructor based on an existing spd file\r
- \r
- @param f Existing spd file\r
- **/\r
- public SpdFileContents(File f) {\r
- try {\r
- psad = PackageSurfaceAreaDocument.Factory.parse(f);\r
- psaRoot = psad.getPackageSurfaceArea();\r
- file = f;\r
- } catch (Exception e) {\r
- System.out.println(e.toString());\r
- }\r
- }\r
-\r
- /**\r
- Remove existing pcd definitions elements using XmlCursor\r
- **/\r
- public void removeSpdPcdDefinition() {\r
- XmlObject o = psaRoot.getPcdDeclarations();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- cursor.removeXml();\r
- spdPcdDefinitions = null;\r
- cursor.dispose();\r
- }\r
- \r
- public void removeSpdPcdDefinition(int i){\r
- XmlObject o = psaRoot.getPcdDeclarations();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- cursor.removeXml();\r
- if (getSpdPcdDefinitionCount() == 0) {\r
- cursor.toParent();\r
- cursor.removeXml();\r
- }\r
- } \r
- cursor.dispose();\r
- }\r
-\r
- /**\r
- Remove existing ppi declarations using XmlCursor\r
- **/\r
- public void removeSpdPpiDeclaration() {\r
- XmlObject o = psaRoot.getPpiDeclarations();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- cursor.removeXml();\r
- spdPpiDeclarations = null;\r
- cursor.dispose();\r
- }\r
-\r
- public void removeSpdPpiDeclaration(int i){\r
- XmlObject o = psaRoot.getPpiDeclarations();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- cursor.removeXml();\r
- if (getSpdPpiDeclarationCount() == 0){\r
- cursor.toParent();\r
- cursor.removeXml();\r
- }\r
- } \r
- cursor.dispose();\r
- }\r
- /**\r
- Remove existing protocols declarations using XmlCursor\r
- **/\r
- public void removeSpdProtocolDeclaration() {\r
- XmlObject o = psaRoot.getProtocolDeclarations();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- cursor.removeXml();\r
- spdProtocolDeclarations = null;\r
- cursor.dispose();\r
- }\r
- \r
- public void removeSpdProtocolDeclaration(int i) {\r
- XmlObject o = psaRoot.getProtocolDeclarations();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- cursor.removeXml();\r
- if (getSpdProtocolDeclarationCount() == 0) {\r
- cursor.toParent();\r
- cursor.removeXml();\r
- }\r
- }\r
- cursor.dispose();\r
- }\r
- /**\r
- Remove existing GUID declarations using XmlCursor\r
- **/\r
- public void removeSpdGuidDeclaration() {\r
- XmlObject o = psaRoot.getGuidDeclarations();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- cursor.removeXml();\r
- spdGuidDeclarations = null; \r
- cursor.dispose();\r
- }\r
- \r
- public void removeSpdGuidDeclaration(int i) {\r
- XmlObject o = psaRoot.getGuidDeclarations();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- cursor.removeXml();\r
- if (getSpdGuidDeclarationCount() == 0) {\r
- cursor.toParent();\r
- cursor.removeXml();\r
- }\r
- } \r
- cursor.dispose();\r
- }\r
-\r
- /**\r
- Remove existing spd package include files using XmlCursor\r
- **/\r
- public void removeSpdPkgHeader() {\r
- XmlObject o = psaRoot.getPackageHeaders();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- cursor.removeXml();\r
- spdModHdrs = null;\r
- cursor.dispose();\r
- }\r
- \r
- public void removeSpdPkgHeader(int i){\r
- XmlObject o = psaRoot.getPackageHeaders();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- cursor.removeXml();\r
- if (getSpdPackageHeaderCount() == 0) {\r
- cursor.toParent();\r
- cursor.removeXml();\r
- }\r
- } \r
- cursor.dispose();\r
- }\r
-\r
- /**\r
- Remove existing msa files using XmlCursor\r
- **/\r
- public void removeSpdMsaFile() {\r
- XmlObject o = psaRoot.getMsaFiles();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- cursor.removeXml();\r
- spdMsaFiles = null;\r
- cursor.dispose();\r
- }\r
- \r
- public void removeSpdMsaFile(int i){\r
- XmlObject o = psaRoot.getMsaFiles();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- cursor.removeXml();\r
- if (getSpdMsaFileCount() == 0) {\r
- cursor.toParent();\r
- cursor.removeXml();\r
- }\r
- }\r
- cursor.dispose();\r
- }\r
-\r
- /**\r
- Remove existing library class declarations using XmlCursor\r
- **/\r
- public void removeSpdLibClass() {\r
- XmlObject o = psaRoot.getLibraryClassDeclarations();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- cursor.removeXml();\r
- spdLibClassDeclarations = null;\r
- cursor.dispose();\r
- }\r
- \r
- public void removeSpdLibClass(int i) {\r
- XmlObject o = psaRoot.getLibraryClassDeclarations();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- cursor.removeXml();\r
- if (getSpdLibClassDeclarationCount() == 0) {\r
- cursor.toParent();\r
- cursor.removeXml();\r
- }\r
- }\r
- cursor.dispose();\r
- }\r
- \r
- public void updateSpdLibClass(int i, String lib, String hdr, String hlp, String clsUsage, String instanceVer, String hdrAttribArch, String hdrAttribModType) {\r
- XmlObject o = psaRoot.getLibraryClassDeclarations();\r
- if (o == null)\r
- return;\r
- \r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass lc = (LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass)cursor.getObject();\r
- lc.setName(lib);\r
- lc.setIncludeHeader(hdr);\r
- lc.setHelpText(hlp);\r
- if (clsUsage != null) {\r
- lc.setRecommendedInstanceGuid(clsUsage);\r
- if (instanceVer != null){\r
- lc.setRecommendedInstanceVersion(instanceVer);\r
- } else {\r
- if (lc.isSetRecommendedInstanceVersion()) {\r
- lc.unsetRecommendedInstanceVersion();\r
- }\r
- }\r
- } else {\r
- if (lc.isSetRecommendedInstanceGuid()) {\r
- lc.unsetRecommendedInstanceGuid();\r
- }\r
- if (lc.isSetRecommendedInstanceVersion()) {\r
- lc.unsetRecommendedInstanceVersion();\r
- }\r
- }\r
-\r
- if (stringToList(hdrAttribArch) != null){\r
- lc.setSupArchList(stringToList(hdrAttribArch));\r
- } else {\r
- if (lc.isSetSupArchList()) {\r
- lc.unsetSupArchList();\r
- }\r
- }\r
- if (stringToList(hdrAttribModType) != null){\r
- lc.setSupModuleList(stringToList(hdrAttribModType));\r
- } else {\r
- if (lc.isSetSupModuleList()) {\r
- lc.unsetSupModuleList();\r
- }\r
- }\r
- }\r
- \r
- cursor.dispose();\r
- }\r
- \r
- public void updateSpdMsaFile(int i, String msaFile, String mName, String v, String g){\r
- XmlObject o = psaRoot.getMsaFiles();\r
- if (o == null)\r
- return;\r
- \r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- cursor.setTextValue(msaFile);\r
-\r
- }\r
- \r
- cursor.dispose();\r
- }\r
-\r
- public void updateSpdGuidDecl(int i, String name, String cName, String guid, String hlp, String archList, \r
- String modTypeList, String guidTypeList){\r
- XmlObject o = psaRoot.getGuidDeclarations();\r
- if (o == null){\r
- return;\r
- }\r
- \r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- GuidDeclarationsDocument.GuidDeclarations.Entry e = (GuidDeclarationsDocument.GuidDeclarations.Entry)cursor.getObject();\r
- e.setName(name);\r
- e.setCName(cName);\r
- e.setGuidValue(guid);\r
- e.setHelpText(hlp);\r
- if (stringToList(guidTypeList) != null) {\r
- e.setGuidTypeList(stringToList(guidTypeList));\r
- }\r
- else{\r
- if (e.isSetGuidTypeList()) {\r
- e.unsetGuidTypeList();\r
- }\r
- }\r
- if (stringToList(archList) != null){\r
- e.setSupArchList(stringToList(archList));\r
- }\r
- else{\r
- if (e.isSetSupArchList()) {\r
- e.unsetSupArchList();\r
- }\r
- }\r
- if (stringToList(modTypeList) != null) {\r
- e.setSupModuleList(stringToList(modTypeList));\r
- }\r
- else{\r
- if (e.isSetSupModuleList()) {\r
- e.unsetSupModuleList();\r
- }\r
- }\r
- \r
- }\r
- cursor.dispose();\r
- }\r
- \r
- public void updateSpdPpiDecl(int i, String name, String cName, String guid, String hlp, String archList, \r
- String modTypeList, String guidTypeList){\r
- XmlObject o = psaRoot.getPpiDeclarations();\r
- if (o == null){\r
- return;\r
- }\r
- \r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- PpiDeclarationsDocument.PpiDeclarations.Entry e = (PpiDeclarationsDocument.PpiDeclarations.Entry)cursor.getObject();\r
- e.setName(name);\r
- e.setCName(cName);\r
- e.setGuidValue(guid);\r
- e.setHelpText(hlp);\r
- if (stringToList(guidTypeList) != null) {\r
- e.setGuidTypeList(stringToList(guidTypeList));\r
- }\r
- else{\r
- if (e.isSetGuidTypeList()) {\r
- e.unsetGuidTypeList();\r
- }\r
- }\r
- if (stringToList(archList) != null){\r
- e.setSupArchList(stringToList(archList));\r
- }\r
- else{\r
- if (e.isSetSupArchList()) {\r
- e.unsetSupArchList();\r
- }\r
- }\r
- if (stringToList(modTypeList) != null) {\r
- e.setSupModuleList(stringToList(modTypeList));\r
- }\r
- else{\r
- if (e.isSetSupModuleList()) {\r
- e.unsetSupModuleList();\r
- }\r
- }\r
- }\r
- cursor.dispose();\r
- }\r
- \r
- public void updateSpdProtocolDecl(int i, String name, String cName, String guid, String hlp, String archList, \r
- String modTypeList, String guidTypeList){\r
- XmlObject o = psaRoot.getProtocolDeclarations();\r
- if (o == null){\r
- return;\r
- }\r
- \r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- ProtocolDeclarationsDocument.ProtocolDeclarations.Entry e = (ProtocolDeclarationsDocument.ProtocolDeclarations.Entry)cursor.getObject();\r
- e.setName(name);\r
- e.setCName(cName);\r
- e.setGuidValue(guid);\r
- e.setHelpText(hlp);\r
- if (stringToList(guidTypeList) != null) {\r
- e.setGuidTypeList(stringToList(guidTypeList));\r
- }\r
- else{\r
- if (e.isSetGuidTypeList()) {\r
- e.unsetGuidTypeList();\r
- }\r
- }\r
- if (stringToList(archList) != null){\r
- e.setSupArchList(stringToList(archList));\r
- }\r
- else{\r
- if (e.isSetSupArchList()) {\r
- e.unsetSupArchList();\r
- }\r
- }\r
- if (stringToList(modTypeList) != null) {\r
- e.setSupModuleList(stringToList(modTypeList));\r
- }\r
- else{\r
- if (e.isSetSupModuleList()) {\r
- e.unsetSupModuleList();\r
- }\r
- }\r
- }\r
- cursor.dispose();\r
- }\r
- \r
- public void updateSpdPkgHdr(int i, String pkgName, String hdrName){\r
- XmlObject o = psaRoot.getPackageHeaders();\r
- if (o == null){\r
- return;\r
- }\r
- \r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- \r
- PackageHeadersDocument.PackageHeaders.IncludePkgHeader iph = (PackageHeadersDocument.PackageHeaders.IncludePkgHeader)cursor.getObject();\r
- iph.setModuleType(ModuleTypeDef.Enum.forString(pkgName));\r
- iph.setStringValue(hdrName);\r
- }\r
- cursor.dispose();\r
- }\r
- \r
- public void updateSpdPcdDefinition(int i, String cName, String token, String dataType, String pcdItemTypes, \r
- String spaceGuid, String defaultString, String help, String archList, String modTypeList){\r
- XmlObject o = psaRoot.getPcdDeclarations();\r
- if (o == null)\r
- return;\r
- XmlCursor cursor = o.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- PcdDeclarationsDocument.PcdDeclarations.PcdEntry e = (PcdDeclarationsDocument.PcdDeclarations.PcdEntry)cursor.getObject();\r
- e.setCName(cName);\r
- e.setToken(token);\r
- e.setDatumType(PcdDataTypes.Enum.forString(dataType));\r
- if (pcdItemTypes != null && pcdItemTypes.length() > 0) {\r
- String usage[] = pcdItemTypes.split("( )+");\r
- List<String> l = new ArrayList<String>();\r
- for (int k = 0; k < usage.length; ++k) {\r
- l.add(usage[k]); \r
- }\r
- e.setValidUsage(l);\r
- }\r
- \r
- e.setTokenSpaceGuidCName(spaceGuid);\r
- e.setDefaultValue(defaultString);\r
- e.setHelpText(help);\r
- if (stringToList(archList) != null){\r
- e.setSupArchList(stringToList(archList));\r
- }\r
- else{\r
- if (e.isSetSupArchList()) {\r
- e.unsetSupArchList();\r
- }\r
- }\r
- if (stringToList(modTypeList) != null) {\r
- e.setSupModuleList(stringToList(modTypeList));\r
- }\r
- else{\r
- if (e.isSetSupModuleList()) {\r
- e.unsetSupModuleList();\r
- }\r
- }\r
- \r
- } \r
- cursor.dispose();\r
- }\r
- /**\r
- Get spd file header contents into String array\r
- \r
- @param s Caller allocated String array\r
- **/\r
- public void getSpdHdrDetails(String[] s) {\r
- if (getSpdHdr() == null) {\r
- spdHdr = psaRoot.addNewSpdHeader();\r
- }\r
- s[0] = getSpdHdrPkgName();\r
- s[1] = getSpdHdr().getGuidValue();\r
- s[2] = getSpdHdrVer();\r
-// s[3] = getSpdHdr().getAbstract();\r
- s[4] = getSpdHdr().getDescription();\r
- s[5] = getSpdHdr().getCopyright();\r
- s[6] = getSpdHdrLicense();\r
- \r
- }\r
-\r
- /**\r
- Get the number of library class declarations from the size of List\r
- \r
- @return int\r
- **/\r
- public int getSpdLibClassDeclarationCount() {\r
- if (psaRoot.getLibraryClassDeclarations() == null\r
- || psaRoot.getLibraryClassDeclarations().getLibraryClassList() == null) {\r
- return 0;\r
- }\r
- return psaRoot.getLibraryClassDeclarations().getLibraryClassList().size();\r
- }\r
-\r
- /**\r
- Get available library class declaration into String array\r
- @param libClass Caller allocated two-dimentional String array\r
- **/\r
- public void getSpdLibClassDeclarations(String[][] libClass) {\r
- if (psaRoot.getLibraryClassDeclarations() == null){\r
- return;\r
- }\r
- \r
- List<LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass> l = psaRoot.getLibraryClassDeclarations().getLibraryClassList();\r
- int i = 0;\r
- ListIterator li = l.listIterator();\r
- while (li.hasNext()) {\r
- LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass lc = (LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass) li.next();\r
- if (lc != null) {\r
- libClass[i][0] = lc.getName();\r
- libClass[i][1] = lc.getIncludeHeader();\r
- libClass[i][2] = lc.getHelpText();\r
-// LAH added logic so you cannot set the version unless the GUID is defined.\r
-\r
-// if (lc.getRecommendedInstanceGuid() != null) {\r
- libClass[i][3] = lc.getRecommendedInstanceGuid();\r
-// if (lc.getRecommendedInstanceVersion() != null) {\r
- libClass[i][4] = lc.getRecommendedInstanceVersion();\r
-// }\r
-// }\r
-\r
- if (lc.getSupArchList() != null) {\r
- libClass[i][5] = listToString(lc.getSupArchList());\r
- }\r
- if (lc.getSupModuleList() != null) {\r
- libClass[i][6] = listToString(lc.getSupModuleList());\r
- }\r
- \r
- }\r
- \r
- i++;\r
- }\r
-\r
- }\r
- \r
- /**\r
- Get the number of Msa files from the size of List\r
- \r
- @return int\r
- **/\r
- public int getSpdMsaFileCount() {\r
- if (psaRoot.getMsaFiles() == null || psaRoot.getMsaFiles().getFilenameList() == null) {\r
- return 0;\r
- }\r
- return psaRoot.getMsaFiles().getFilenameList().size();\r
- }\r
- \r
- /**\r
- Get available Msa file into String array\r
- \r
- @param msaFile Caller allocated two-dimentional String array\r
- **/\r
- public void getSpdMsaFiles(String[][] msaFile) {\r
- if (psaRoot.getMsaFiles() == null) {\r
- return;\r
- }\r
- List<String> l = psaRoot.getMsaFiles().getFilenameList();\r
- int i = 0;\r
- ListIterator li = l.listIterator();\r
- while (li.hasNext()) {\r
- msaFile[i][0] = (String)li.next();\r
-\r
- i++;\r
- }\r
- }\r
-\r
- /**\r
- Get the number of include header files in PackageHeaders from the size of List\r
- \r
- @return int\r
- **/\r
- public int getSpdPackageHeaderCount() {\r
- if (psaRoot.getPackageHeaders() == null || psaRoot.getPackageHeaders().getIncludePkgHeaderList() == null) {\r
- return 0;\r
- }\r
- return psaRoot.getPackageHeaders().getIncludePkgHeaderList().size();\r
- }\r
-\r
- /**\r
- Get available package header contents into String array\r
- \r
- @param pkgHeader Caller allocated two-dimentional String array\r
- **/\r
- public void getSpdPackageHeaders(String[][] pkgHeader) {\r
- if (psaRoot.getPackageHeaders() == null) {\r
- return;\r
- }\r
- \r
- List<PackageHeadersDocument.PackageHeaders.IncludePkgHeader> l = psaRoot.getPackageHeaders().getIncludePkgHeaderList();\r
- int i = 0;\r
- ListIterator li = l.listIterator();\r
- while (li.hasNext()) {\r
- PackageHeadersDocument.PackageHeaders.IncludePkgHeader ih = (PackageHeadersDocument.PackageHeaders.IncludePkgHeader) li.next();\r
- if (ih.getModuleType() != null) {\r
- pkgHeader[i][0] = ih.getModuleType().toString();\r
- }\r
-\r
- pkgHeader[i][1] = ih.getStringValue();\r
- i++;\r
- }\r
- }\r
-\r
- public void getSpdGuidDeclWithType (Vector<String> vGuidCName, String type) {\r
- if (psaRoot.getGuidDeclarations() == null) {\r
- return;\r
- }\r
- List<GuidDeclarationsDocument.GuidDeclarations.Entry> l = psaRoot.getGuidDeclarations().getEntryList();\r
- for (int i = 0; i < l.size(); ++i) {\r
- if (l.get(i).getGuidTypeList() == null || l.get(i).getGuidTypeList().contains(type)) {\r
- vGuidCName.add(l.get(i).getCName());\r
- }\r
- }\r
- }\r
- /**\r
- Get the number of GUID declarations from the size of List\r
- \r
- @return int\r
- **/\r
- public int getSpdGuidDeclarationCount() {\r
- if (psaRoot.getGuidDeclarations() == null || psaRoot.getGuidDeclarations().getEntryList() == null) {\r
- return 0;\r
- }\r
- return psaRoot.getGuidDeclarations().getEntryList().size();\r
- }\r
-\r
- /**\r
- Get available Guid declaration contents into String array\r
- \r
- @param guid Caller allocated two-dimentional String array\r
- **/\r
- public void getSpdGuidDeclarations(String[][] guid) {\r
- if (psaRoot.getGuidDeclarations() == null) {\r
- return;\r
- }\r
- \r
- List<GuidDeclarationsDocument.GuidDeclarations.Entry> l = psaRoot.getGuidDeclarations().getEntryList();\r
- int i = 0;\r
- ListIterator li = l.listIterator();\r
- while (li.hasNext()) {\r
- GuidDeclarationsDocument.GuidDeclarations.Entry e = (GuidDeclarationsDocument.GuidDeclarations.Entry) li\r
- .next();\r
- guid[i][0] = e.getName();\r
- guid[i][1] = e.getCName();\r
- if (e.getGuidValue() != null) {\r
- guid[i][2] = e.getGuidValue();\r
- }\r
- guid[i][3] = e.getHelpText();\r
- guid[i][4] = listToString(e.getSupArchList());\r
- guid[i][5] = listToString(e.getSupModuleList());\r
- guid[i][6] = listToString(e.getGuidTypeList());\r
- i++;\r
- }\r
- }\r
-\r
- /**\r
- Get the number of protocol declarations from the size of List\r
- \r
- @return int\r
- **/\r
- public int getSpdProtocolDeclarationCount() {\r
- if (psaRoot.getProtocolDeclarations() == null || psaRoot.getProtocolDeclarations().getEntryList() == null) {\r
- return 0;\r
- }\r
- return psaRoot.getProtocolDeclarations().getEntryList().size();\r
- }\r
-\r
- /**\r
- Get available protocol declaration contents into String array\r
- \r
- @param protocol Caller allocated two-dimentional String array\r
- **/\r
- public void getSpdProtocolDeclarations(String[][] protocol) {\r
- if (psaRoot.getProtocolDeclarations() == null) {\r
- return;\r
- }\r
- \r
- List<ProtocolDeclarationsDocument.ProtocolDeclarations.Entry> l = psaRoot.getProtocolDeclarations()\r
- .getEntryList();\r
- int i = 0;\r
- ListIterator li = l.listIterator();\r
- while (li.hasNext()) {\r
- ProtocolDeclarationsDocument.ProtocolDeclarations.Entry e = (ProtocolDeclarationsDocument.ProtocolDeclarations.Entry) li\r
- .next();\r
- protocol[i][0] = e.getName();\r
- protocol[i][1] = e.getCName();\r
- if (e.getGuidValue() != null) {\r
- protocol[i][2] = e.getGuidValue();\r
- }\r
- protocol[i][3] = e.getHelpText();\r
- protocol[i][4] = listToString(e.getSupArchList());\r
- protocol[i][5] = listToString(e.getSupModuleList());\r
- protocol[i][6] = listToString(e.getGuidTypeList());\r
- i++;\r
- }\r
- }\r
-\r
- /**\r
- Get the number of Ppi declarations from the size of List\r
- \r
- @return int\r
- **/\r
- public int getSpdPpiDeclarationCount() {\r
- if (psaRoot.getPpiDeclarations() == null || psaRoot.getPpiDeclarations().getEntryList() == null) {\r
- return 0;\r
- }\r
- return psaRoot.getPpiDeclarations().getEntryList().size();\r
- }\r
-\r
- /**\r
- Get available Ppi declaration contents into String array\r
- \r
- @param ppi Caller allocated two-dimentional String array\r
- **/\r
- public void getSpdPpiDeclarations(String[][] ppi) {\r
- if (psaRoot.getPpiDeclarations() == null) {\r
- return;\r
- }\r
- \r
- List<PpiDeclarationsDocument.PpiDeclarations.Entry> l = psaRoot.getPpiDeclarations().getEntryList();\r
- int i = 0;\r
- ListIterator li = l.listIterator();\r
- while (li.hasNext()) {\r
- PpiDeclarationsDocument.PpiDeclarations.Entry e = (PpiDeclarationsDocument.PpiDeclarations.Entry) li.next();\r
- ppi[i][0] = e.getName();\r
- ppi[i][1] = e.getCName();\r
- if (e.getGuidValue() != null) {\r
- ppi[i][2] = e.getGuidValue();\r
- }\r
- ppi[i][3] = e.getHelpText();\r
- ppi[i][4] = listToString(e.getSupArchList());\r
- ppi[i][5] = listToString(e.getSupModuleList());\r
- ppi[i][6] = listToString(e.getGuidTypeList());\r
- i++;\r
- }\r
- }\r
-\r
- /**\r
- Get the number of Pcd definitions from the size of List\r
- \r
- @return int\r
- **/\r
- public int getSpdPcdDefinitionCount() {\r
- if (psaRoot.getPcdDeclarations() == null || psaRoot.getPcdDeclarations().getPcdEntryList() == null) {\r
- return 0;\r
- }\r
- return psaRoot.getPcdDeclarations().getPcdEntryList().size();\r
- }\r
-\r
- /**\r
- Get available Pcd definition contents into String array\r
- \r
- @param pcd Caller allocated two-dimentional String array\r
- **/\r
- public void getSpdPcdDefinitions(String[][] pcd, String pcdUsage[][]) {\r
- if (psaRoot.getPcdDeclarations() == null) {\r
- return;\r
- }\r
- \r
- List<PcdDeclarationsDocument.PcdDeclarations.PcdEntry> l = psaRoot.getPcdDeclarations().getPcdEntryList();\r
- int i = 0;\r
- while (i < l.size()) {\r
- PcdDeclarationsDocument.PcdDeclarations.PcdEntry e = (PcdDeclarationsDocument.PcdDeclarations.PcdEntry)l.get(i);\r
- pcd[i][0] = e.getCName();\r
- pcd[i][1] = e.getToken() + ""; \r
- pcd[i][2] = e.getTokenSpaceGuidCName();\r
- if (e.getDatumType() != null) {\r
- pcd[i][3] = e.getDatumType().toString();\r
- }\r
- pcd[i][4] = e.getDefaultValue()+"";\r
- pcd[i][5] = e.getHelpText();\r
- String archList = listToString(e.getSupArchList());\r
- if (archList != null) {\r
- pcd[i][6] = archList;\r
- }\r
- String modTypeList = listToString(e.getSupModuleList());\r
- if (modTypeList != null) {\r
- pcd[i][7] = modTypeList;\r
- }\r
- \r
- int j = 0;\r
- while (j < e.getValidUsage().size() && j < 5) {\r
- pcdUsage[i][j] = (String)e.getValidUsage().get(j);\r
- ++j;\r
- }\r
- i++;\r
- }\r
- }\r
-\r
- /**\r
- Save the processed xml contents to file\r
- \r
- @param spdFile The file to save xml contents\r
- @throws IOException Exceptions during file operation\r
- **/\r
- public void saveAs(File spdFile) throws IOException {\r
-\r
- XmlOptions options = new XmlOptions();\r
-\r
- options.setCharacterEncoding("UTF-8");\r
- options.setSavePrettyPrint();\r
- options.setSavePrettyPrintIndent(2);\r
- try {\r
- psad.save(spdFile, options);\r
- } catch (IOException e) {\r
- e.printStackTrace();\r
- }\r
-\r
- }\r
-\r
- /**\r
- Generate SpdHeader contents using parameters passed in.\r
- \r
- @param pkgName PackageName \r
- @param pkgGuid Guid\r
- @param pkgVer Version\r
- @param pkgAbs Abstract\r
- @param pkgDes Description\r
- @param pkgCpRight Copyright\r
- @param pkgLicense License\r
- @param pkgCreateDate Created\r
- @param pkgUpdateDate Updated\r
- @param pkgURL URL\r
- @param pkgType PackageType\r
- @param pkgRdOnly ReadOnly\r
- @param pkgRePkg RePackage\r
- @param pkgSpec Reserved\r
- @param pkgOutDir Reserved\r
- **/\r
- public void genSpdHeader(String pkgName, String pkgGuid, String pkgVer, String pkgAbs, String pkgDes,\r
- String pkgCpRight, String pkgLicense, String pkgCreateDate, String pkgUpdateDate,\r
- String pkgURL, String pkgType, String pkgRdOnly, String pkgRePkg, String pkgSpec,\r
- String pkgOutDir) {\r
- if (getSpdHdr() == null) {\r
- spdHdr = psaRoot.addNewSpdHeader();\r
- }\r
-\r
- setSpdHdrPkgName(pkgName);\r
- setSpdHdrGuidValue(pkgGuid);\r
- setSpdHdrVer(pkgVer);\r
- setSpdHdrAbs(pkgAbs);\r
- setSpdHdrDescription(pkgDes);\r
- setSpdHdrCopyright(pkgCpRight);\r
- setSpdHdrLicense(pkgLicense);\r
- \r
-\r
- setSpdHdrSpec(pkgSpec);\r
- }\r
-\r
- /**\r
- Generate library class declaration element using parameters passed in\r
- \r
- @param libClassBaseName LibraryClass element value\r
- @param libClassUsage Reserved\r
- @param incHdrFileName IncludeHeader element value\r
- @param incHdrAttribGuid Reserved\r
- @param incHdrAttribArch Reserved\r
- @param incHdrAttribPath Reserved\r
- @param incHdrAttribClass Reserved\r
- @param incHdrAttribVer Reserved\r
- @param incHdrAttribOverrideID Reserved\r
- @param incHdrAttribModuleType Reserved\r
- **/\r
- public void genSpdLibClassDeclarations(String libClassBaseName, String instanceUsage, String incHdrFileName,\r
- String help, String incHdrAttribArch, String incHdrAttribPath,\r
- String incHdrAttribClass, String incHdrAttribVer,\r
- String incHdrAttribOverrideID, String incHdrAttribModuleType) {\r
- if (getSpdLibClassDeclarations() == null) {\r
- spdLibClassDeclarations = psaRoot.addNewLibraryClassDeclarations();\r
- }\r
- //\r
- // add contents under LibraryClassDeclarations tag \r
- //\r
- setSpdLibClassDeclaration(libClassBaseName, instanceUsage, incHdrFileName, help, incHdrAttribArch,\r
- incHdrAttribPath, incHdrAttribClass, incHdrAttribVer, incHdrAttribOverrideID,\r
- incHdrAttribModuleType, spdLibClassDeclarations);\r
- }\r
- \r
- public void getSpdLibClassDeclaration(String[] sa, int i) {\r
- if (getSpdLibClassDeclarations() == null) {\r
- return;\r
- }\r
- XmlCursor cursor = getSpdLibClassDeclarations().newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass lc = (LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass)cursor.getObject();\r
- sa[0] = lc.getName();\r
- sa[1] = lc.getIncludeHeader();\r
- sa[2] = lc.getHelpText();\r
- sa[3] = lc.getRecommendedInstanceGuid();\r
- sa[4] = lc.getRecommendedInstanceVersion();\r
- sa[5] = listToString(lc.getSupArchList());\r
- sa[6] = listToString(lc.getSupModuleList());\r
- }\r
- cursor.dispose();\r
- }\r
-\r
- /**\r
- Set library class declaration contents under parent tag\r
- \r
- @param clsName LibraryClass element value\r
- @param clsUsage Reserved\r
- @param hdrFile IncludeHeader element value\r
- @param hdrAttribGuid Reserved\r
- @param hdrAttribArch Reserved\r
- @param hdrAttribPath Reserved\r
- @param hdrAttribClass Reserved\r
- @param hdrAttribVer Reserved\r
- @param hdrAttribOverID Reserved\r
- @param hdrAttribModType Reserved\r
- @param parent The tag under which library class declaration goes to\r
- **/\r
- public void setSpdLibClassDeclaration(String clsName, String clsUsage, String hdrFile, String help,\r
- String hdrAttribArch, String hdrAttribPath, String hdrAttribClass,\r
- String instanceVer, String hdrAttribOverID, String hdrAttribModType,\r
- XmlObject parent) {\r
-\r
- setSpdLibraryClass(clsName, hdrFile, help, clsUsage, instanceVer, hdrAttribArch, hdrAttribModType, parent);\r
-\r
- }\r
-\r
- /**\r
- Set the contents of LibraryClass under parent element\r
- \r
- @param clsName LibraryClass element value \r
- @param clsUsage Reserved\r
- @param parent The tag under which library class declaration goes to\r
- **/\r
- public void setSpdLibraryClass(String clsName, String clsIncludeFile, String help, String clsUsage, String instanceVer, String hdrAttribArch, String hdrAttribModType, XmlObject parent) {\r
- LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass lc = ((LibraryClassDeclarationsDocument.LibraryClassDeclarations) parent).addNewLibraryClass();\r
- lc.setName(clsName);\r
- lc.setIncludeHeader(clsIncludeFile);\r
- lc.setHelpText(help);\r
-// LAH added logic so you cannot set the version unless the GUID is defined.\r
-\r
- if (clsUsage != null) {\r
- lc.setRecommendedInstanceGuid(clsUsage);\r
- if (instanceVer != null) {\r
- lc.setRecommendedInstanceVersion(instanceVer);\r
- }\r
- }\r
- else {\r
- if (lc.isSetRecommendedInstanceGuid()) {\r
- lc.unsetRecommendedInstanceGuid();\r
- }\r
- if (lc.isSetRecommendedInstanceVersion()) {\r
- lc.unsetRecommendedInstanceVersion();\r
- }\r
- }\r
-\r
- if (hdrAttribArch != null) {\r
- lc.setSupArchList(stringToList(hdrAttribArch));\r
- } else {\r
- if (lc.isSetSupArchList()) {\r
- lc.unsetSupArchList();\r
- }\r
- }\r
-\r
- if (hdrAttribModType != null) {\r
- lc.setSupModuleList(stringToList(hdrAttribModType));\r
- } else {\r
- if (lc.isSetSupModuleList()) {\r
- lc.unsetSupModuleList();\r
- }\r
- }\r
- \r
- }\r
-\r
- /**\r
- Set contents of IncludeHeader under parent element\r
- \r
- @param modType Reserved\r
- @param hdrFile IncludeHeader element value\r
- @param hdrAttribGuid Reserved\r
- @param hdrAttribArch Reserved\r
- @param hdrAttribPath Reserved\r
- @param hdrAttribClass Reserved\r
- @param hdrAttribVer Reserved\r
- @param hdrAttribOverID Reserved\r
- @param parent The tag under which library class declaration goes to\r
- **/\r
- public void setSpdIncludeHeader(String modType, String hdrFile, String hdrAttribGuid, String hdrAttribArch,\r
- String hdrAttribPath, String hdrAttribClass, String hdrAttribVer,\r
- String hdrAttribOverID, XmlObject parent) {\r
- \r
- if (parent instanceof LibraryClassDeclarationsDocument.LibraryClassDeclarations) {\r
- } else if (parent instanceof PackageHeadersDocument.PackageHeaders) {\r
- PackageHeadersDocument.PackageHeaders.IncludePkgHeader ih = null;\r
- ih = ((PackageHeadersDocument.PackageHeaders) parent).addNewIncludePkgHeader();\r
- ih.setStringValue(hdrFile);\r
- ih.setModuleType(ModuleTypeDef.Enum.forString(modType));\r
- } else {\r
- return;\r
- }\r
-\r
- if (hdrAttribGuid != null) {\r
- }\r
- if (hdrAttribPath != null) {\r
- }\r
- if (hdrAttribClass != null) {\r
- }\r
- if (hdrAttribVer != null) {\r
- }\r
- if (hdrAttribOverID != null) {\r
- }\r
-\r
- }\r
-\r
- /**\r
- Generate MsaFile element.\r
- \r
- @param msaFileName MsaFile element value\r
- @param archType Reserved\r
- **/\r
- public void genSpdMsaFiles(String msaFileName, String moduleName, String ver, String guid) {\r
- if (getSpdMsaFiles() == null) {\r
- spdMsaFiles = psaRoot.addNewMsaFiles();\r
- }\r
- setSpdMsaFile(msaFileName, moduleName, ver, guid, spdMsaFiles);\r
- \r
- }\r
- \r
- public void getSpdMsaFile (String[] sa, int i) {\r
- if (getSpdMsaFiles() == null) {\r
- return;\r
- }\r
- XmlCursor cursor = getSpdMsaFiles().newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- sa[0] = cursor.getTextValue();\r
- }\r
- cursor.dispose();\r
- }\r
-\r
- /**\r
- Set MsaFile contents under parent element.\r
- \r
- @param msaFileName MsaFile element value\r
- @param parent Element under which MsaFile goes to\r
- **/\r
- public void setSpdMsaFile(String msaFileName, String moduleName, String ver, String guid, XmlObject parent) {\r
- MsaFilesDocument.MsaFiles f = (MsaFilesDocument.MsaFiles)parent;\r
- f.addNewFilename().setStringValue(msaFileName);\r
-// f.setFilename(msaFileName);\r
-// f.setModuleName(moduleName);\r
-// f.setModuleVersion(ver);\r
-// f.setModuleGuid(guid);\r
- }\r
-\r
- /**\r
- Generate PackageHeader element using parameters passed in.\r
- \r
- @param ModHdrModType ModuleType attribute of IncludeHeader element\r
- @param hdrFile IncludeHeader element value\r
- @param hdrAttribGuid Reserved\r
- @param hdrAttribArch Reserved\r
- @param hdrAttribPath Reserved\r
- @param hdrAttribClass Reserved\r
- @param hdrAttribVer Reserved\r
- @param hdrAttribOverID Reserved\r
- **/\r
- public void genSpdModuleHeaders(String ModHdrModType, String hdrFile, String hdrAttribGuid, String hdrAttribArch,\r
- String hdrAttribPath, String hdrAttribClass, String hdrAttribVer,\r
- String hdrAttribOverID) {\r
- if (getSpdModHdrs() == null) {\r
- spdModHdrs = psaRoot.addNewPackageHeaders();\r
- }\r
-\r
- //\r
- // add IncludeHeader under PackageHeaders element\r
- //\r
- setSpdIncludeHeader(ModHdrModType, hdrFile, hdrAttribGuid, hdrAttribArch, hdrAttribPath, hdrAttribClass,\r
- hdrAttribVer, hdrAttribOverID, spdModHdrs);\r
- }\r
- \r
- public void getSpdModuleHeader(String[] sa, int i) {\r
- if (getSpdModHdrs() == null) {\r
- return;\r
- }\r
- XmlCursor cursor = getSpdModHdrs().newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- PackageHeadersDocument.PackageHeaders.IncludePkgHeader ih = (PackageHeadersDocument.PackageHeaders.IncludePkgHeader)cursor.getObject();\r
- sa[0] = ih.getModuleType()+"";\r
- sa[1] = ih.getStringValue();\r
- }\r
- cursor.dispose();\r
- }\r
-\r
- /**\r
- Generate GUID declaration element using parameters passed in.\r
- \r
- @param guidDeclEntryName Name attribute of Entry element\r
- @param guidDeclCName CName element value\r
- @param guidDeclGuid Guid element value\r
- @param guidDeclFeatureFlag Reserved\r
- **/\r
- public void genSpdGuidDeclarations(String guidDeclEntryName, String guidDeclCName, String guidDeclGuid,\r
- String guidDeclHelp, Vector<String> archList, Vector<String> modTypeList,\r
- Vector<String> guidTypeList) {\r
- if (getSpdGuidDeclarations() == null) {\r
- spdGuidDeclarations = psaRoot.addNewGuidDeclarations();\r
- }\r
-\r
- setSpdEntry(guidDeclEntryName, guidDeclCName, guidDeclGuid, guidDeclHelp, archList, modTypeList, guidTypeList, spdGuidDeclarations);\r
- }\r
-\r
- /**\r
- Generate protocol declaration element using parameters passed in.\r
- \r
- @param protocolDeclEntryName Name attribute of Entry element\r
- @param protocolDeclCName CName element value\r
- @param protocolDeclGuid Guid element value\r
- @param protocolDeclFeatureFlag Reserved\r
- **/\r
- public void genSpdProtocolDeclarations(String protocolDeclEntryName, String protocolDeclCName,\r
- String protocolDeclGuid, String protocolDeclFeatureFlag,\r
- Vector<String> archList, Vector<String> modTypeList, Vector<String> guidTypeList) {\r
- if (getSpdProtocolDeclarations() == null) {\r
- spdProtocolDeclarations = psaRoot.addNewProtocolDeclarations();\r
- }\r
-\r
- setSpdEntry(protocolDeclEntryName, protocolDeclCName, protocolDeclGuid, protocolDeclFeatureFlag,\r
- archList, modTypeList, guidTypeList, spdProtocolDeclarations);\r
- }\r
-\r
- /**\r
- Generate PPI declaration element using parameters passed in.\r
- \r
- @param ppiDeclEntryName Name attribute of Entry element\r
- @param ppiDeclCName CName element value\r
- @param ppiDeclGuid Guid element value\r
- @param ppiDeclFeatureFlag Reserved\r
- **/\r
- public void genSpdPpiDeclarations(String ppiDeclEntryName, String ppiDeclCName, String ppiDeclGuid,\r
- String ppiDeclFeatureFlag, Vector<String> archList, Vector<String> modTypeList, Vector<String> guidTypeList) {\r
- if (getSpdPpiDeclarations() == null) {\r
- spdPpiDeclarations = psaRoot.addNewPpiDeclarations();\r
- }\r
-\r
- setSpdEntry(ppiDeclEntryName, ppiDeclCName, ppiDeclGuid, ppiDeclFeatureFlag, archList, modTypeList, guidTypeList, spdPpiDeclarations);\r
- }\r
- \r
- public void getSpdGuidDeclaration(String[] sa, int i) {\r
- if (getSpdGuidDeclarations() == null) {\r
- return;\r
- }\r
- getSpdEntry(sa, i, getSpdGuidDeclarations());\r
- }\r
- \r
- public void getSpdProtocolDeclaration(String[] sa, int i) {\r
- if (getSpdProtocolDeclarations() == null) {\r
- return;\r
- }\r
- getSpdEntry(sa, i, getSpdProtocolDeclarations());\r
- }\r
- \r
- public void getSpdPpiDeclaration(String[] sa, int i) {\r
- if (getSpdPpiDeclarations() == null) {\r
- return;\r
- }\r
- getSpdEntry(sa, i, getSpdPpiDeclarations());\r
- }\r
-\r
- public void getSpdEntry(String[] sa, int i, XmlObject parent) {\r
- XmlCursor cursor = parent.newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- if (parent instanceof GuidDeclarationsDocument.GuidDeclarations) {\r
- GuidDeclarationsDocument.GuidDeclarations.Entry e = (GuidDeclarationsDocument.GuidDeclarations.Entry)cursor.getObject();\r
- sa[0] = e.getName();\r
- sa[1] = e.getCName();\r
- sa[2] = e.getGuidValue();\r
- sa[3] = e.getHelpText();\r
- sa[4] = listToString(e.getSupArchList());\r
- sa[5] = listToString(e.getSupModuleList());\r
- sa[6] = listToString(e.getGuidTypeList());\r
- }\r
- \r
- if (parent instanceof ProtocolDeclarationsDocument.ProtocolDeclarations) {\r
- ProtocolDeclarationsDocument.ProtocolDeclarations.Entry e = (ProtocolDeclarationsDocument.ProtocolDeclarations.Entry)cursor.getObject();\r
- sa[0] = e.getName();\r
- sa[1] = e.getCName();\r
- sa[2] = e.getGuidValue();\r
- sa[3] = e.getHelpText();\r
- sa[4] = listToString(e.getSupArchList());\r
- sa[5] = listToString(e.getSupModuleList());\r
- sa[6] = listToString(e.getGuidTypeList());\r
- }\r
- \r
- if (parent instanceof PpiDeclarationsDocument.PpiDeclarations) {\r
- PpiDeclarationsDocument.PpiDeclarations.Entry e = (PpiDeclarationsDocument.PpiDeclarations.Entry)cursor.getObject();\r
- sa[0] = e.getName();\r
- sa[1] = e.getCName();\r
- sa[2] = e.getGuidValue();\r
- sa[3] = e.getHelpText();\r
- sa[4] = listToString(e.getSupArchList());\r
- sa[5] = listToString(e.getSupModuleList());\r
- sa[6] = listToString(e.getGuidTypeList());\r
- }\r
- \r
- }\r
- cursor.dispose();\r
- }\r
- /**\r
- Set Entry contents using parameters passed in\r
- \r
- @param entryName Name attribute of Entry element\r
- @param cName CName element value\r
- @param guid Guid element value\r
- @param featureFlag Reserved\r
- @param parent The tag under which Entry element goes to\r
- **/\r
- public void setSpdEntry(String entryName, String cName, String guid, String help, \r
- Vector<String> archList, Vector<String> modTypeList,\r
- Vector<String> guidTypeList, XmlObject parent) {\r
-\r
- if (parent instanceof GuidDeclarationsDocument.GuidDeclarations) {\r
- GuidDeclarationsDocument.GuidDeclarations.Entry e = ((GuidDeclarations) parent).addNewEntry();\r
- e.setName(entryName);\r
- e.setCName(cName);\r
- e.setGuidValue(guid);\r
- e.setHelpText(help);\r
- if (guidTypeList != null) {\r
- e.setGuidTypeList(guidTypeList);\r
- }\r
- else{\r
- if (e.isSetGuidTypeList()) {\r
- e.unsetGuidTypeList();\r
- }\r
- }\r
- if (archList != null) {\r
- e.setSupArchList(archList);\r
- }\r
- else {\r
- if (e.isSetSupArchList()) {\r
- e.unsetSupArchList();\r
- }\r
- }\r
- if (modTypeList != null){\r
- e.setSupModuleList(modTypeList);\r
- }\r
- else {\r
- if (e.isSetSupModuleList()) {\r
- e.unsetSupModuleList();\r
- }\r
- }\r
-\r
- return;\r
- }\r
- if (parent instanceof ProtocolDeclarationsDocument.ProtocolDeclarations) {\r
- ProtocolDeclarationsDocument.ProtocolDeclarations.Entry pe = ((ProtocolDeclarationsDocument.ProtocolDeclarations) parent)\r
- .addNewEntry();\r
- pe.setName(entryName);\r
- pe.setCName(cName);\r
- pe.setGuidValue(guid);\r
- pe.setHelpText(help);\r
- if (guidTypeList != null) {\r
- pe.setGuidTypeList(guidTypeList);\r
- }\r
- else{\r
- if (pe.isSetGuidTypeList()) {\r
- pe.unsetGuidTypeList();\r
- }\r
- }\r
- if (archList != null) {\r
- pe.setSupArchList(archList);\r
- }\r
- else {\r
- if (pe.isSetSupArchList()) {\r
- pe.unsetSupArchList();\r
- }\r
- }\r
- if (modTypeList != null){\r
- pe.setSupModuleList(modTypeList);\r
- }\r
- else {\r
- if (pe.isSetSupModuleList()) {\r
- pe.unsetSupModuleList();\r
- }\r
- }\r
-\r
- return;\r
- }\r
- if (parent instanceof PpiDeclarationsDocument.PpiDeclarations) {\r
- PpiDeclarationsDocument.PpiDeclarations.Entry ppe = ((PpiDeclarationsDocument.PpiDeclarations) parent)\r
- .addNewEntry();\r
- ppe.setName(entryName);\r
- ppe.setCName(cName);\r
- ppe.setGuidValue(guid);\r
- ppe.setHelpText(help);\r
- if (guidTypeList != null) {\r
- ppe.setGuidTypeList(guidTypeList);\r
- }\r
- else{\r
- if (ppe.isSetGuidTypeList()) {\r
- ppe.unsetGuidTypeList();\r
- }\r
- }\r
- if (archList != null) {\r
- ppe.setSupArchList(archList);\r
- }\r
- else {\r
- if (ppe.isSetSupArchList()) {\r
- ppe.unsetSupArchList();\r
- }\r
- }\r
- if (modTypeList != null){\r
- ppe.setSupModuleList(modTypeList);\r
- }\r
- else {\r
- if (ppe.isSetSupModuleList()) {\r
- ppe.unsetSupModuleList();\r
- }\r
- }\r
-\r
- return;\r
- }\r
-\r
- return;\r
-\r
- }\r
-\r
- /**\r
- Generate Pcd definition using parameters passed in\r
- \r
- @param pcdItemTypes ItemType attribute of PcdEntry element\r
- @param cName C_Name element value\r
- @param token Token element value\r
- @param dataType DatumType element value\r
- @param skuEnable Reserved\r
- @param sku Reserved\r
- @param maxSku Reserved\r
- @param hiiEnable Reserved\r
- @param varGuid Reserved\r
- @param varName Reserved\r
- @param defaultString DefaultString element value\r
- **/\r
- public void genSpdPcdDefinitions(String cName, String token, String dataType, String pcdItemTypes, \r
- String spaceGuid, String defaultString, String help, String archList,\r
- String modTypeList) {\r
- if (getSpdPcdDefinitions() == null) {\r
- spdPcdDefinitions = psaRoot.addNewPcdDeclarations();\r
- }\r
-\r
- setSpdPcdEntry(pcdItemTypes, cName, token, dataType, spaceGuid, help,\r
- defaultString, archList, modTypeList, spdPcdDefinitions);\r
- }\r
- \r
- public void getSpdPcdDeclaration(String[] sa, int i) {\r
- if (getSpdPcdDefinitions() == null) {\r
- return;\r
- }\r
- \r
- XmlCursor cursor = getSpdPcdDefinitions().newCursor();\r
- if (cursor.toFirstChild()) {\r
- for (int j = 0; j < i; ++j) {\r
- cursor.toNextSibling();\r
- }\r
- PcdDeclarationsDocument.PcdDeclarations.PcdEntry pe = (PcdDeclarationsDocument.PcdDeclarations.PcdEntry)cursor.getObject();\r
- sa[0] = pe.getCName();\r
- sa[1] = pe.getToken()+"";\r
- sa[2] = pe.getTokenSpaceGuidCName();\r
- sa[3] = pe.getDatumType()+"";\r
- sa[4] = pe.getDefaultValue();\r
- sa[5] = pe.getHelpText();\r
- sa[6] = listToString(pe.getValidUsage());\r
- sa[7] = listToString(pe.getSupArchList());\r
- sa[8] = listToString(pe.getSupModuleList());\r
- }\r
- cursor.dispose();\r
- }\r
-\r
- /**\r
- Set Pcd entry contents under parent tag\r
- \r
- @param pcdItemTypes ItemType attribute of PcdEntry element\r
- @param cName C_Name element value\r
- @param token Token element value\r
- @param dataType DatumType element value\r
- @param spaceGuid Reserved\r
- @param help Reserved\r
- @param defaultString DefaultString element value\r
- @param parent Tag under which PcdEntry goes to\r
- **/\r
- public void setSpdPcdEntry(String pcdItemTypes, String cName, String token, String dataType, String spaceGuid, String help,\r
- String defaultString, String archList, String modTypeList, XmlObject parent) {\r
-\r
- PcdDeclarationsDocument.PcdDeclarations.PcdEntry pe = ((PcdDeclarationsDocument.PcdDeclarations) parent).addNewPcdEntry();\r
- \r
- //ToDo: maybe multiple types in, need parse pcdItemTypes.\r
- String usage[] = pcdItemTypes.split("( )+");\r
- List<String> l = new ArrayList<String>();\r
- for (int i = 0; i < usage.length; ++i) {\r
- l.add(usage[i]); \r
- }\r
- pe.setValidUsage(l);\r
- pe.setCName(cName);\r
- pe.setToken(token);\r
- pe.setDatumType(PcdDataTypes.Enum.forString(dataType));\r
- pe.setDefaultValue(defaultString);\r
- pe.setTokenSpaceGuidCName(spaceGuid);\r
- pe.setHelpText(help);\r
- if (archList != null){\r
- pe.setSupArchList(stringToList(archList));\r
- } else {\r
- if (pe.isSetSupArchList()) {\r
- pe.unsetSupArchList();\r
- }\r
- }\r
- if (modTypeList != null){\r
- pe.setSupModuleList(stringToList(modTypeList));\r
- } else {\r
- if (pe.isSetSupModuleList()) {\r
- pe.unsetSupModuleList();\r
- }\r
- }\r
- }\r
-\r
- /**\r
- Get PpiDeclarations element\r
- \r
- @return PpiDeclarationsDocument.PpiDeclarations\r
- **/\r
- public PpiDeclarationsDocument.PpiDeclarations getSpdPpiDeclarations() {\r
- if (spdPpiDeclarations == null) {\r
- spdPpiDeclarations = psaRoot.getPpiDeclarations();\r
- }\r
- return spdPpiDeclarations;\r
- }\r
-\r
- /**\r
- Get ProtocolDeclarations element\r
- \r
- @return ProtocolDeclarationsDocument.ProtocolDeclarations\r
- **/\r
- public ProtocolDeclarationsDocument.ProtocolDeclarations getSpdProtocolDeclarations() {\r
- if (spdProtocolDeclarations == null) {\r
- spdProtocolDeclarations = psaRoot.getProtocolDeclarations();\r
- }\r
- return spdProtocolDeclarations;\r
- }\r
-\r
- /**\r
- Get GuidDeclarations element\r
- \r
- @return GuidDeclarationsDocument.GuidDeclarations\r
- **/\r
- public GuidDeclarationsDocument.GuidDeclarations getSpdGuidDeclarations() {\r
- if (spdGuidDeclarations == null) {\r
- spdGuidDeclarations = psaRoot.getGuidDeclarations();\r
- }\r
- return spdGuidDeclarations;\r
- }\r
-\r
- /**\r
- Get PcdDefinitions element\r
- \r
- @return PcdDefinitionsDocument.PcdDefinitions\r
- **/\r
- public PcdDeclarationsDocument.PcdDeclarations getSpdPcdDefinitions() {\r
- if (spdPcdDefinitions == null) {\r
- spdPcdDefinitions = psaRoot.getPcdDeclarations();\r
- }\r
- return spdPcdDefinitions;\r
- }\r
-\r
- /**\r
- Get PackageHeaders element\r
- \r
- @return PackageHeadersDocument.PackageHeaders\r
- **/\r
- public PackageHeadersDocument.PackageHeaders getSpdModHdrs() {\r
- if (spdModHdrs == null) {\r
- spdModHdrs = psaRoot.getPackageHeaders();\r
- }\r
- return spdModHdrs;\r
- }\r
-\r
- /**\r
- Get MsaFiles element\r
- \r
- @return MsaFilesDocument.MsaFiles\r
- **/\r
- public MsaFilesDocument.MsaFiles getSpdMsaFiles() {\r
- if (spdMsaFiles == null) {\r
- spdMsaFiles = psaRoot.getMsaFiles();\r
- }\r
- return spdMsaFiles;\r
- }\r
-\r
- /**\r
- Get LibraryClassDeclarations element\r
- \r
- @return LibraryClassDeclarationsDocument.LibraryClassDeclarations\r
- **/\r
- public LibraryClassDeclarationsDocument.LibraryClassDeclarations getSpdLibClassDeclarations() {\r
- if (spdLibClassDeclarations == null) {\r
- spdLibClassDeclarations = psaRoot.getLibraryClassDeclarations();\r
- }\r
- return spdLibClassDeclarations;\r
- }\r
-\r
- public PackageDefinitionsDocument.PackageDefinitions getSpdPkgDefs() {\r
- if (spdPkgDefs == null) {\r
- spdPkgDefs = psaRoot.addNewPackageDefinitions();\r
- }\r
- return spdPkgDefs;\r
- }\r
- /**\r
- Get SpdHeader element\r
- \r
- @return SpdHeaderDocument.SpdHeader\r
- **/\r
- public SpdHeaderDocument.SpdHeader getSpdHdr() {\r
- if (spdHdr == null) {\r
- spdHdr = psaRoot.addNewSpdHeader();\r
- }\r
- return spdHdr;\r
- }\r
-\r
- /**\r
- Set value to Guid element\r
- \r
- @param guid The value set to Guid element\r
- **/\r
- public void setSpdHdrGuidValue(String guid) {\r
- getSpdHdr().setGuidValue(guid);\r
- }\r
-\r
- /**\r
- Get Version element under SpdHdr\r
- \r
- @return String\r
- **/\r
- public String getSpdHdrVer() {\r
- return getSpdHdr().getVersion();\r
- }\r
-\r
- /**\r
- Set value to Version element\r
- \r
- @param ver The value set to Version element\r
- **/\r
- public void setSpdHdrVer(String ver) {\r
- getSpdHdr().setVersion(ver);\r
- }\r
-\r
- public String getSpdHdrAbs(){\r
- return getSpdHdr().getAbstract();\r
- \r
- }\r
- \r
- /**\r
- Set value to Abstract element\r
- \r
- @param abs The value set to Abstract element\r
- **/\r
- public void setSpdHdrAbs(String abs) {\r
-\r
- getSpdHdr().setAbstract(abs);\r
- }\r
- \r
- public String getSpdHdrDescription(){\r
- return getSpdHdr().getDescription(); \r
- }\r
- /**\r
- Set value to Description element\r
- \r
- @param des The value set to Description element\r
- **/\r
- public void setSpdHdrDescription(String des) {\r
- getSpdHdr().setDescription(des);\r
- }\r
- \r
- public String getSpdHdrCopyright(){\r
- return getSpdHdr().getCopyright();\r
- }\r
- /**\r
- Set value to Copyright element\r
- \r
- @param cpRit The value set to Copyright element\r
- **/\r
- public void setSpdHdrCopyright(String cpRit) {\r
-\r
- getSpdHdr().setCopyright(cpRit);\r
-\r
- }\r
- /**\r
- Get License element under SpdHdr\r
- \r
- @return String\r
- **/\r
- public String getSpdHdrLicense() {\r
- if (getSpdHdr().getLicense() != null) {\r
- return getSpdHdr().getLicense().getStringValue();\r
- }\r
- return null;\r
- }\r
-\r
- /**\r
- Set value to License element\r
- \r
- @param license The value set to License element\r
- **/\r
- public void setSpdHdrLicense(String license) {\r
- if (getSpdHdr().getLicense() == null){\r
- getSpdHdr().addNewLicense().setStringValue(license);\r
- }\r
- else {\r
- getSpdHdr().getLicense().setStringValue(license);\r
- }\r
- }\r
- \r
- public String getSpdHdrUrl(){\r
- if (getSpdHdr().getLicense() != null) {\r
- return getSpdHdr().getLicense().getURL();\r
- }\r
- return null;\r
- }\r
- \r
- public void setSpdHdrUrl(String url){\r
- getSpdHdr().getLicense().setURL(url);\r
- }\r
-\r
- /**\r
- Get PackageName element under SpdHdr\r
- \r
- @return String\r
- **/\r
- public String getSpdHdrPkgName() {\r
- \r
- return getSpdHdr().getPackageName();\r
- }\r
-\r
- /**\r
- Set value to PackageName element\r
- \r
- @param pkgName The value set to PackageName element\r
- **/\r
- public void setSpdHdrPkgName(String pkgName) {\r
- getSpdHdr().setPackageName(pkgName);\r
- }\r
-\r
- public String getSpdHdrGuidValue(){\r
- return getSpdHdr().getGuidValue();\r
- }\r
- \r
- /**\r
- Reserved method\r
- \r
- @return SpecificationDocument.Specification\r
- **/\r
- public String getSpdHdrSpec() {\r
- return "FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052";\r
-// return getSpdHdr().getSpecification();\r
- }\r
-\r
- /**\r
- Reserved method\r
- \r
- @param spec \r
- **/\r
- public void setSpdHdrSpec(String spec) {\r
- spec = "FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052";\r
- getSpdHdr().setSpecification(spec);\r
- \r
- }\r
-\r
- public String getSpdPkgDefsRdOnly(){\r
- return getSpdPkgDefs().getReadOnly() + "";\r
- }\r
- /**\r
- Set value to ReadOnly element\r
- \r
- @param rdOnly The value set to ReadOnly element\r
- **/\r
- public void setSpdPkgDefsRdOnly(String rdOnly) {\r
-\r
- getSpdPkgDefs().setReadOnly(new Boolean(rdOnly));\r
- }\r
-\r
- public String getSpdPkgDefsRePkg(){\r
- return getSpdPkgDefs().getRePackage() + "";\r
- }\r
- /**\r
- Set value to RePackage element\r
- \r
- @param rePkg The value set to RePackage element\r
- **/\r
- public void setSpdPkgDefsRePkg(String rePkg) {\r
-\r
- getSpdPkgDefs().setRePackage(new Boolean(rePkg));\r
- }\r
-\r
- /**\r
- Set value to URL element\r
- \r
- @param url The value set to URL element\r
- **/\r
-// public void setSpdHdrURL(String url) {\r
-// getSpdHdr().setURL(url);\r
-// }\r
-\r
- /**\r
- Get xml file\r
- \r
- @return File\r
- **/\r
- public File getFile() {\r
- return file;\r
- }\r
-\r
- /**\r
- Set file\r
- \r
- @param file File with xml format\r
- **/\r
- public void setFile(File file) {\r
- this.file = file;\r
- }\r
- \r
- private List<String> stringToList(String s){\r
- if (s == null || s.length() == 0) {\r
- return null;\r
- }\r
- Vector<String> al = new Vector<String>();\r
- String[] sArray = s.split(" ");\r
- for(int i = 0; i < sArray.length; ++i){\r
- al.add(sArray[i]);\r
- }\r
- return al; \r
- }\r
- \r
- private String listToString(List l) {\r
- if (l == null) {\r
- return null;\r
- }\r
- String s = " ";\r
- ListIterator li = l.listIterator();\r
- while(li.hasNext()) {\r
- s += li.next();\r
- s += " ";\r
- }\r
- return s.trim();\r
- }\r
-\r
-}\r