]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/PackageEditor/src/org/tianocore/packaging/SpdFileContents.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@671 6f19259b...
[mirror_edk2.git] / Tools / Source / PackageEditor / src / org / tianocore / packaging / SpdFileContents.java
index b6e573a1fd8aea4bd4c52f6da8eff5b9ebc30429..d8b69e8d2fd46ac7a3f73083793bc4fa90a2d774 100644 (file)
@@ -16,7 +16,7 @@ import java.io.File;
 import java.io.IOException;\r
 import java.util.List;\r
 import java.util.ListIterator;\r
-\r
+import java.math.*;\r
 import org.apache.xmlbeans.XmlObject;\r
 import org.apache.xmlbeans.XmlOptions;\r
 import org.apache.xmlbeans.XmlCursor;\r
@@ -63,16 +63,12 @@ public class SpdFileContents {
 \r
     private SpdHeaderDocument.SpdHeader spdHdr = null;\r
 \r
-    private PackageNameDocument.PackageName spdHdrPkgName = null;\r
+    private String spdHdrPkgName = null;\r
 \r
     private GuidDocument.Guid spdHdrGuid = null;\r
 \r
-    private AbstractDocument.Abstract spdHdrAbs = null;\r
-\r
     private LicenseDocument.License spdHdrLicense = null;\r
 \r
-    private SpecificationDocument.Specification spdHdrSpec = null;\r
-\r
     private OutputDirectoryDocument.OutputDirectory spdHdrOutDir = null;\r
 \r
     private LibraryClassDeclarationsDocument.LibraryClassDeclarations spdLibClassDeclarations = null;\r
@@ -125,6 +121,7 @@ public class SpdFileContents {
             return;\r
         XmlCursor cursor = o.newCursor();\r
         cursor.removeXml();\r
+        spdPcdDefinitions = null;\r
     }\r
 \r
     /**\r
@@ -136,6 +133,7 @@ public class SpdFileContents {
             return;\r
         XmlCursor cursor = o.newCursor();\r
         cursor.removeXml();\r
+        spdPpiDeclarations = null;\r
     }\r
 \r
     /**\r
@@ -147,6 +145,7 @@ public class SpdFileContents {
             return;\r
         XmlCursor cursor = o.newCursor();\r
         cursor.removeXml();\r
+        spdProtocolDeclarations = null;\r
     }\r
 \r
     /**\r
@@ -158,10 +157,11 @@ public class SpdFileContents {
             return;\r
         XmlCursor cursor = o.newCursor();\r
         cursor.removeXml();\r
+        spdGuidDeclarations = null; \r
     }\r
 \r
     /**\r
-     Remove existing spd package header using XmlCursor\r
+     Remove existing spd package include files using XmlCursor\r
     **/\r
     public void removeSpdPkgHeader() {\r
         XmlObject o = psaRoot.getPackageHeaders();\r
@@ -169,6 +169,7 @@ public class SpdFileContents {
             return;\r
         XmlCursor cursor = o.newCursor();\r
         cursor.removeXml();\r
+        spdModHdrs = null;\r
     }\r
 \r
     /**\r
@@ -180,6 +181,7 @@ public class SpdFileContents {
             return;\r
         XmlCursor cursor = o.newCursor();\r
         cursor.removeXml();\r
+        spdMsaFiles = null;\r
     }\r
 \r
     /**\r
@@ -191,7 +193,7 @@ public class SpdFileContents {
             return;\r
         XmlCursor cursor = o.newCursor();\r
         cursor.removeXml();\r
-\r
+        spdLibClassDeclarations = null;\r
     }\r
 \r
     /**\r
@@ -203,10 +205,10 @@ public class SpdFileContents {
         if (getSpdHdr() == null) {\r
             spdHdr = psaRoot.addNewSpdHeader();\r
         }\r
-        s[0] = getSpdHdrPkgName().getStringValue();\r
+        s[0] = getSpdHdrPkgName();\r
         s[1] = getSpdHdrGuid().getStringValue();\r
         s[2] = getSpdHdrVer();\r
-        s[3] = getSpdHdrAbs().getStringValue();\r
+       s[3] = getSpdHdrAbs();\r
         s[4] = getSpdHdr().getDescription();\r
         s[5] = getSpdHdr().getCopyright();\r
         s[6] = getSpdHdrLicense().getStringValue();\r
@@ -240,6 +242,9 @@ public class SpdFileContents {
      @param libClass Caller allocated two-dimentional String array\r
     **/\r
     public void getSpdLibClassDeclarations(String[][] libClass) {\r
+        if (psaRoot.getLibraryClassDeclarations() == null){\r
+            return;\r
+        }\r
         List<LibraryClassDeclarationDocument.LibraryClassDeclaration> l = psaRoot.getLibraryClassDeclarations()\r
                                                                                  .getLibraryClassDeclarationList();\r
         int i = 0;\r
@@ -277,6 +282,9 @@ public class SpdFileContents {
     @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<MsaFilesDocument.MsaFiles.MsaFile> l = psaRoot.getMsaFiles().getMsaFileList();\r
         int i = 0;\r
         ListIterator li = l.listIterator();\r
@@ -308,6 +316,10 @@ public class SpdFileContents {
     @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<IncludeHeaderDocument.IncludeHeader> l = psaRoot.getPackageHeaders().getIncludeHeaderList();\r
         int i = 0;\r
         ListIterator li = l.listIterator();\r
@@ -340,6 +352,10 @@ public class SpdFileContents {
     @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
@@ -373,6 +389,10 @@ public class SpdFileContents {
     @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
@@ -407,6 +427,10 @@ public class SpdFileContents {
     @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
@@ -440,6 +464,10 @@ public class SpdFileContents {
     @param pcd Caller allocated two-dimentional String array\r
    **/\r
     public void getSpdPcdDefinitions(String[][] pcd) {\r
+        if (psaRoot.getPcdDefinitions() == null) {\r
+            return;\r
+        }\r
+        \r
         List<PcdDefinitionsDocument.PcdDefinitions.PcdEntry> l = psaRoot.getPcdDefinitions().getPcdEntryList();\r
         int i = 0;\r
         ListIterator li = l.listIterator();\r
@@ -595,8 +623,7 @@ public class SpdFileContents {
      @param parent The tag under which library class declaration goes to\r
     **/\r
     public void setSpdLibraryClass(String clsName, String clsUsage, XmlObject parent) {\r
-        LibraryClassDocument.LibraryClass lc = ((LibraryClassDeclarationDocument.LibraryClassDeclaration) parent)\r
-                                                                                                                 .addNewLibraryClass();\r
+        LibraryClassDeclarationDocument.LibraryClassDeclaration.LibraryClass lc = ((LibraryClassDeclarationDocument.LibraryClassDeclaration) parent).addNewLibraryClass();\r
         lc.setStringValue(clsName);\r
     }\r
 \r
@@ -817,9 +844,7 @@ public class SpdFileContents {
             e.setName(entryName);\r
             e.setCName(cName);\r
             e.addNewGuid().setStringValue(guid);\r
-            if (featureFlag != null) {\r
-                e.addNewFeatureFlag().setStringValue(featureFlag);\r
-            }\r
+            \r
             return;\r
         }\r
         if (parent instanceof ProtocolDeclarationsDocument.ProtocolDeclarations) {\r
@@ -828,10 +853,7 @@ public class SpdFileContents {
             pe.setName(entryName);\r
             pe.setCName(cName);\r
             pe.addNewGuid().setStringValue(guid);\r
-            if (featureFlag != null) {\r
-                pe.addNewFeatureFlag().setStringValue(featureFlag);\r
-            }\r
-            return;\r
+            \r
         }\r
         if (parent instanceof PpiDeclarationsDocument.PpiDeclarations) {\r
             PpiDeclarationsDocument.PpiDeclarations.Entry ppe = ((PpiDeclarationsDocument.PpiDeclarations) parent)\r
@@ -839,9 +861,7 @@ public class SpdFileContents {
             ppe.setName(entryName);\r
             ppe.setCName(cName);\r
             ppe.addNewGuid().setStringValue(guid);\r
-            if (featureFlag != null) {\r
-                ppe.addNewFeatureFlag().setStringValue(featureFlag);\r
-            }\r
+            \r
             return;\r
         }\r
 \r
@@ -1006,11 +1026,9 @@ public class SpdFileContents {
      \r
      @return AbstractDocument.Abstract\r
     **/\r
-    public AbstractDocument.Abstract getSpdHdrAbs() {\r
-        if (spdHdrAbs == null) {\r
-            spdHdrAbs = getSpdHdr().getAbstract();\r
-        }\r
-        return spdHdrAbs;\r
+    public String getSpdHdrAbs() {\r
+        \r
+        return getSpdHdr().getAbstract();\r
     }\r
 \r
     /**\r
@@ -1019,13 +1037,7 @@ public class SpdFileContents {
      @param abs The value set to Abstract element\r
     **/\r
     public void setSpdHdrAbs(String abs) {\r
-\r
-        if (getSpdHdrAbs() != null) {\r
-            getSpdHdrAbs().setStringValue(abs);\r
-        } else {\r
-            spdHdrAbs = getSpdHdr().addNewAbstract();\r
-            spdHdrAbs.setStringValue(abs);\r
-        }\r
+           getSpdHdr().setAbstract(abs);\r
     }\r
 \r
     /**\r
@@ -1092,7 +1104,7 @@ public class SpdFileContents {
    **/\r
     public String getSpdHdrVer() {\r
         if (spdHdr != null)\r
-            return spdHdr.getVersion();\r
+            return spdHdr.getVersion() + "";\r
         else\r
             return null;\r
     }\r
@@ -1166,7 +1178,7 @@ public class SpdFileContents {
     \r
     @return PackageNameDocument.PackageName\r
    **/\r
-    public PackageNameDocument.PackageName getSpdHdrPkgName() {\r
+    public String getSpdHdrPkgName() {\r
         if (spdHdrPkgName == null) {\r
             spdHdrPkgName = getSpdHdr().getPackageName();\r
         }\r
@@ -1181,22 +1193,13 @@ public class SpdFileContents {
     public void setSpdHdrPkgName(String pkgName) {\r
 \r
         if (getSpdHdrPkgName() != null) {\r
-            getSpdHdrPkgName().setStringValue(pkgName);\r
+            getSpdHdr().setPackageName(pkgName);\r
         } else {\r
-            spdHdrPkgName = getSpdHdr().addNewPackageName();\r
-            spdHdrPkgName.setStringValue(pkgName);\r
+            getSpdHdr().setPackageName(pkgName);\r
         }\r
     }\r
 \r
-    /**\r
-    Reserved method\r
-    \r
-    @return SpecificationDocument.Specification\r
-   **/\r
-    public SpecificationDocument.Specification getSpdHdrSpec() {\r
-        return spdHdrSpec;\r
-    }\r
-\r
+  \r
     /**\r
     Reserved method\r
     \r
@@ -1206,12 +1209,9 @@ public class SpdFileContents {
         if (spec == null) {\r
             return;\r
         }\r
-        if (getSpdHdrSpec() != null) {\r
-            getSpdHdrSpec().setStringValue(spec);\r
-        } else {\r
-            spdHdrSpec = getSpdHdr().addNewSpecification();\r
-            spdHdrSpec.setStringValue(spec);\r
-        }\r
+        \r
+        getSpdHdr().setSpecification(spec);\r
+        \r
     }\r
 \r
     /**\r