]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdFileContents.java
Replaced set*(null) with unset*() to clear empty attributes that were causing invalid...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdFileContents.java
index 24fab9663490337f762123f5494aaea6fa8d39d9..2aaf6e22f7f047411804dcdf344dae1725db1564 100644 (file)
@@ -19,7 +19,6 @@ import java.util.List;
 import java.util.ListIterator;\r
 import java.util.Vector;\r
 \r
-import javax.xml.namespace.QName;\r
 \r
 import org.apache.xmlbeans.XmlObject;\r
 import org.apache.xmlbeans.XmlOptions;\r
@@ -130,6 +129,10 @@ public class SpdFileContents {
                 cursor.toNextSibling();\r
             }\r
             cursor.removeXml();\r
+            if (getSpdPcdDefinitionCount() == 0) {\r
+                cursor.toParent();\r
+                cursor.removeXml();\r
+            }\r
         } \r
         cursor.dispose();\r
     }\r
@@ -157,6 +160,10 @@ public class SpdFileContents {
                 cursor.toNextSibling();\r
             }\r
             cursor.removeXml();\r
+            if (getSpdPpiDeclarationCount() == 0){\r
+                cursor.toParent();\r
+                cursor.removeXml();\r
+            }\r
         } \r
         cursor.dispose();\r
     }\r
@@ -183,6 +190,10 @@ public class SpdFileContents {
                 cursor.toNextSibling();\r
             }\r
             cursor.removeXml();\r
+            if (getSpdProtocolDeclarationCount() == 0) {\r
+                cursor.toParent();\r
+                cursor.removeXml();\r
+            }\r
         }\r
         cursor.dispose();\r
     }\r
@@ -209,7 +220,10 @@ public class SpdFileContents {
                 cursor.toNextSibling();\r
             }\r
             cursor.removeXml();\r
-\r
+            if (getSpdGuidDeclarationCount() == 0) {\r
+                cursor.toParent();\r
+                cursor.removeXml();\r
+            }\r
         } \r
         cursor.dispose();\r
     }\r
@@ -237,6 +251,10 @@ public class SpdFileContents {
                 cursor.toNextSibling();\r
             }\r
             cursor.removeXml();\r
+            if (getSpdPackageHeaderCount() == 0) {\r
+                cursor.toParent();\r
+                cursor.removeXml();\r
+            }\r
         } \r
         cursor.dispose();\r
     }\r
@@ -264,6 +282,10 @@ public class SpdFileContents {
                 cursor.toNextSibling();\r
             }\r
             cursor.removeXml();\r
+            if (getSpdMsaFileCount() == 0) {\r
+                cursor.toParent();\r
+                cursor.removeXml();\r
+            }\r
         }\r
         cursor.dispose();\r
     }\r
@@ -291,6 +313,10 @@ public class SpdFileContents {
                 cursor.toNextSibling();\r
             }\r
             cursor.removeXml();\r
+            if (getSpdLibClassDeclarationCount() == 0) {\r
+                cursor.toParent();\r
+                cursor.removeXml();\r
+            }\r
         }\r
         cursor.dispose();\r
     }\r
@@ -310,16 +336,26 @@ public class SpdFileContents {
             lc.setIncludeHeader(hdr);\r
             lc.setHelpText(hlp);\r
             if (clsUsage != null) {\r
-                lc.setRecommendedInstanceGuid(clsUsage);\r
-            }\r
-            if (instanceVer != null){\r
+              lc.setRecommendedInstanceGuid(clsUsage);\r
+              if (instanceVer != null){\r
                 lc.setRecommendedInstanceVersion(instanceVer);\r
+              } else {\r
+                lc.unsetRecommendedInstanceVersion();\r
+              }\r
+            } else {\r
+              lc.unsetRecommendedInstanceGuid();\r
+              lc.unsetRecommendedInstanceVersion();\r
             }\r
+\r
             if (stringToList(hdrAttribArch) != null){\r
-                lc.setSupArchList(stringToList(hdrAttribArch));\r
+              lc.setSupArchList(stringToList(hdrAttribArch));\r
+            } else {\r
+              lc.unsetSupArchList();\r
             }\r
             if (stringToList(hdrAttribModType) != null){\r
-                lc.setSupModuleList(stringToList(hdrAttribModType));\r
+              lc.setSupModuleList(stringToList(hdrAttribModType));\r
+            } else {\r
+              lc.unsetSupModuleList();\r
             }\r
         }\r
         \r
@@ -360,15 +396,24 @@ public class SpdFileContents {
             e.setCName(cName);\r
             e.setGuidValue(guid);\r
             e.setHelpText(hlp);\r
-            if (stringToList(guidTypeList) != null && !guidTypeList.equals("")) {\r
+            if (stringToList(guidTypeList) != null) {\r
                 e.setGuidTypeList(stringToList(guidTypeList));\r
             }\r
+            else{\r
+                e.unsetGuidTypeList();\r
+            }\r
             if (stringToList(archList) != null){\r
                 e.setSupArchList(stringToList(archList));\r
             }\r
+            else{\r
+                e.unsetSupArchList();\r
+            }\r
             if (stringToList(modTypeList) != null) {\r
                 e.setSupModuleList(stringToList(modTypeList));\r
             }\r
+            else{\r
+                e.unsetSupModuleList();\r
+            }\r
             \r
         }\r
         cursor.dispose();\r
@@ -394,9 +439,15 @@ public class SpdFileContents {
             if (stringToList(archList) != null){\r
                 e.setSupArchList(stringToList(archList));\r
             }\r
+            else{\r
+                e.unsetSupArchList();\r
+            }\r
             if (stringToList(modTypeList) != null) {\r
                 e.setSupModuleList(stringToList(modTypeList));\r
             }\r
+            else{\r
+                e.unsetSupModuleList();\r
+            }\r
         }\r
         cursor.dispose();\r
     }\r
@@ -421,9 +472,15 @@ public class SpdFileContents {
             if (stringToList(archList) != null){\r
                 e.setSupArchList(stringToList(archList));\r
             }\r
+            else{\r
+                e.unsetSupArchList();\r
+            }\r
             if (stringToList(modTypeList) != null) {\r
                 e.setSupModuleList(stringToList(modTypeList));\r
             }\r
+            else{\r
+                e.unsetSupModuleList();\r
+            }\r
         }\r
         cursor.dispose();\r
     }\r
@@ -532,8 +589,15 @@ public class SpdFileContents {
                 libClass[i][0] = lc.getName();\r
                 libClass[i][1] = lc.getIncludeHeader();\r
                 libClass[i][2] = lc.getHelpText();\r
-                libClass[i][3] = lc.getRecommendedInstanceGuid();\r
-                libClass[i][4] = lc.getRecommendedInstanceVersion();\r
+// LAH added logic so you cannot set the version unless the GUID is defined.\r
+/* LAH do not set now\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
@@ -914,13 +978,22 @@ public class SpdFileContents {
         lc.setName(clsName);\r
         lc.setIncludeHeader(clsIncludeFile);\r
         lc.setHelpText(help);\r
-        lc.setRecommendedInstanceGuid(clsUsage);\r
-        lc.setRecommendedInstanceVersion(instanceVer);\r
+// LAH added logic so you cannot set the version unless the GUID is defined.\r
+/* LAH\r
+        if (clsUsage != null) {\r
+          lc.setRecommendedInstanceGuid(clsUsage);\r
+          if (instanceVer != null) {\r
+            lc.setRecommendedInstanceVersion(instanceVer);\r
+          }\r
+        }\r
+*/\r
         if (hdrAttribArch != null) {\r
             lc.setSupArchList(stringToList(hdrAttribArch));\r
         }\r
         if (hdrAttribModType != null) {\r
-            lc.setSupModuleList(stringToList(hdrAttribModType));\r
+          lc.setSupModuleList(stringToList(hdrAttribModType));\r
+        } else {\r
+          lc.unsetSupModuleList();\r
         }\r
         \r
     }\r
@@ -1093,15 +1166,18 @@ public class SpdFileContents {
             e.setCName(cName);\r
             e.setGuidValue(guid);\r
             e.setHelpText(help);\r
-            if (guidTypeList != null && guidTypeList.size() > 0) {\r
-                e.setGuidTypeList(new ArrayList<String>(guidTypeList));\r
-            }\r
-            if (archList != null && archList.size() > 0){\r
-                e.setSupArchList(new ArrayList<String>(archList));\r
-            }\r
-            if (modTypeList != null && modTypeList.size() > 0) {\r
-                e.setSupModuleList(new ArrayList<String>(modTypeList));\r
-            }\r
+            e.setGuidTypeList(guidTypeList);\r
+            e.setSupArchList(archList);\r
+            e.setSupModuleList(modTypeList);\r
+//            if (guidTypeList != null && guidTypeList.size() > 0) {\r
+//                e.setGuidTypeList(new ArrayList<String>(guidTypeList));\r
+//            }\r
+//            if (archList != null && archList.size() > 0){\r
+//                e.setSupArchList(new ArrayList<String>(archList));\r
+//            }\r
+//            if (modTypeList != null && modTypeList.size() > 0) {\r
+//                e.setSupModuleList(new ArrayList<String>(modTypeList));\r
+//            }\r
             return;\r
         }\r
         if (parent instanceof ProtocolDeclarationsDocument.ProtocolDeclarations) {\r
@@ -1111,12 +1187,14 @@ public class SpdFileContents {
             pe.setCName(cName);\r
             pe.setGuidValue(guid);\r
             pe.setHelpText(help);\r
-            if (archList != null && archList.size() > 0){\r
-                pe.setSupArchList(new ArrayList<String>(archList));\r
-            }\r
-            if (modTypeList != null && modTypeList.size() > 0) {\r
-                pe.setSupModuleList(new ArrayList<String>(modTypeList));\r
-            }\r
+            pe.setSupArchList(archList);\r
+            pe.setSupModuleList(modTypeList);\r
+//            if (archList != null && archList.size() > 0){\r
+//                pe.setSupArchList(new ArrayList<String>(archList));\r
+//            }\r
+//            if (modTypeList != null && modTypeList.size() > 0) {\r
+//                pe.setSupModuleList(new ArrayList<String>(modTypeList));\r
+//            }\r
             return;\r
         }\r
         if (parent instanceof PpiDeclarationsDocument.PpiDeclarations) {\r
@@ -1126,12 +1204,14 @@ public class SpdFileContents {
             ppe.setCName(cName);\r
             ppe.setGuidValue(guid);\r
             ppe.setHelpText(help);\r
-            if (archList != null && archList.size() > 0){\r
-                ppe.setSupArchList(new ArrayList<String>(archList));\r
-            }\r
-            if (archList != null && modTypeList.size() > 0) {\r
-                ppe.setSupModuleList(new ArrayList<String>(modTypeList));\r
-            }\r
+            ppe.setSupArchList(archList);\r
+            ppe.setSupModuleList(modTypeList);\r
+//            if (archList != null && archList.size() > 0){\r
+//                ppe.setSupArchList(new ArrayList<String>(archList));\r
+//            }\r
+//            if (archList != null && modTypeList.size() > 0) {\r
+//                ppe.setSupModuleList(new ArrayList<String>(modTypeList));\r
+//            }\r
             return;\r
         }\r
 \r
@@ -1196,10 +1276,14 @@ public class SpdFileContents {
         pe.setTokenSpaceGuidCName(spaceGuid);\r
         pe.setHelpText(help);\r
         if (archList != null){\r
-            pe.setSupArchList(stringToList(archList));\r
+          pe.setSupArchList(stringToList(archList));\r
+        } else {\r
+          pe.unsetSupArchList();\r
         }\r
         if (modTypeList != null){\r
-            pe.setSupModuleList(stringToList(modTypeList));\r
+          pe.setSupModuleList(stringToList(modTypeList));\r
+        } else {\r
+          pe.unsetSupModuleList();\r
         }\r
     }\r
 \r
@@ -1438,7 +1522,7 @@ public class SpdFileContents {
     @return SpecificationDocument.Specification\r
    **/\r
     public String getSpdHdrSpec() {\r
-        return "FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052";\r
+        return "FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052";\r
 //        return getSpdHdr().getSpecification();\r
     }\r
 \r
@@ -1448,7 +1532,7 @@ public class SpdFileContents {
     @param spec \r
    **/\r
     public void setSpdHdrSpec(String spec) {\r
-        spec = "FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052";\r
+        spec = "FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052";\r
         getSpdHdr().setSpecification(spec);\r
         \r
     }\r
@@ -1507,10 +1591,10 @@ public class SpdFileContents {
     }\r
     \r
     private List<String> stringToList(String s){\r
-        if (s == null) {\r
+        if (s == null || s.length() == 0) {\r
             return null;\r
         }\r
-        ArrayList<String> al = new ArrayList<String>();\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
@@ -1518,7 +1602,7 @@ public class SpdFileContents {
         return al; \r
     }\r
     \r
-    private String listToString(List<String> l) {\r
+    private String listToString(List l) {\r
         if (l == null) {\r
             return null;\r
         }\r