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