]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdFileContents.java
Fix the bug of leaving empty GuidTypeList, SupArchList attributes in xml file.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdFileContents.java
index ca3a4dc710ccc08903279a45f6f35b213760cdc7..a71421a82ea8b40d4caff3a66ee7e4873be78157 100644 (file)
@@ -336,16 +336,36 @@ 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
+                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
+              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
+              lc.setSupModuleList(stringToList(hdrAttribModType));\r
+            } else {\r
+              if (lc.isSetSupModuleList()) {\r
+                lc.unsetSupModuleList();\r
+              }\r
             }\r
         }\r
         \r
@@ -387,22 +407,28 @@ public class SpdFileContents {
             e.setGuidValue(guid);\r
             e.setHelpText(hlp);\r
             if (stringToList(guidTypeList) != null) {\r
-                e.setGuidTypeList(stringToList(guidTypeList));\r
+              e.setGuidTypeList(stringToList(guidTypeList));\r
             }\r
             else{\r
-                e.setGuidTypeList(null);\r
+              if (e.isSetGuidTypeList()) {\r
+                e.unsetGuidTypeList();\r
+              }\r
             }\r
             if (stringToList(archList) != null){\r
                 e.setSupArchList(stringToList(archList));\r
             }\r
             else{\r
-                e.setSupArchList(null);\r
+              if (e.isSetSupArchList()) {\r
+                e.unsetSupArchList();\r
+              }\r
             }\r
             if (stringToList(modTypeList) != null) {\r
                 e.setSupModuleList(stringToList(modTypeList));\r
             }\r
             else{\r
-                e.setSupModuleList(null);\r
+              if (e.isSetSupModuleList()) {\r
+                e.unsetSupModuleList();\r
+              }\r
             }\r
             \r
         }\r
@@ -430,13 +456,17 @@ public class SpdFileContents {
                 e.setSupArchList(stringToList(archList));\r
             }\r
             else{\r
-                e.setSupArchList(null);\r
+              if (e.isSetSupArchList()) {\r
+                e.unsetSupArchList();\r
+              }\r
             }\r
             if (stringToList(modTypeList) != null) {\r
                 e.setSupModuleList(stringToList(modTypeList));\r
             }\r
             else{\r
-                e.setSupModuleList(null);\r
+              if (e.isSetSupModuleList()) {\r
+                e.unsetSupModuleList();\r
+              }\r
             }\r
         }\r
         cursor.dispose();\r
@@ -463,13 +493,17 @@ public class SpdFileContents {
                 e.setSupArchList(stringToList(archList));\r
             }\r
             else{\r
-                e.setSupArchList(null);\r
+              if (e.isSetSupArchList()) {\r
+                e.unsetSupArchList();\r
+              }\r
             }\r
             if (stringToList(modTypeList) != null) {\r
                 e.setSupModuleList(stringToList(modTypeList));\r
             }\r
             else{\r
-                e.setSupModuleList(null);\r
+              if (e.isSetSupModuleList()) {\r
+                e.unsetSupModuleList();\r
+              }\r
             }\r
         }\r
         cursor.dispose();\r
@@ -520,12 +554,23 @@ public class SpdFileContents {
             e.setTokenSpaceGuidCName(spaceGuid);\r
             e.setDefaultValue(defaultString);\r
             e.setHelpText(help);\r
-            if (archList != null && archList.length() > 0){\r
+            if (stringToList(archList) != null){\r
                 e.setSupArchList(stringToList(archList));\r
             }\r
-            if (modTypeList != null && modTypeList.length() > 0){\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
@@ -580,12 +625,14 @@ public class SpdFileContents {
                 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
+/* 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
@@ -967,17 +1014,36 @@ public class SpdFileContents {
         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
+          lc.setSupModuleList(stringToList(hdrAttribModType));\r
+        } else {\r
+          if (lc.isSetSupModuleList()) {\r
+            lc.unsetSupModuleList();\r
+          }\r
         }\r
         \r
     }\r
@@ -1150,18 +1216,31 @@ public class SpdFileContents {
             e.setCName(cName);\r
             e.setGuidValue(guid);\r
             e.setHelpText(help);\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
+            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
@@ -1171,14 +1250,23 @@ public class SpdFileContents {
             pe.setCName(cName);\r
             pe.setGuidValue(guid);\r
             pe.setHelpText(help);\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
+            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
@@ -1188,14 +1276,23 @@ public class SpdFileContents {
             ppe.setCName(cName);\r
             ppe.setGuidValue(guid);\r
             ppe.setHelpText(help);\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
+            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
@@ -1260,10 +1357,18 @@ 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
+          if (pe.isSetSupArchList()) {\r
+            pe.unsetSupArchList();\r
+          }\r
         }\r
         if (modTypeList != null){\r
-            pe.setSupModuleList(stringToList(modTypeList));\r
+          pe.setSupModuleList(stringToList(modTypeList));\r
+        } else {\r
+          if (pe.isSetSupModuleList()) {\r
+            pe.unsetSupModuleList();\r
+          }\r
         }\r
     }\r
 \r