]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdFileContents.java
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdFileContents.java
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdFileContents.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdFileContents.java
deleted file mode 100644 (file)
index 922d135..0000000
+++ /dev/null
@@ -1,1885 +0,0 @@
-/** @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