- public void getPcdData(String key, String[][] saa) {\r
- ModuleSADocument.ModuleSA msa = getModuleSA(key);\r
- if (msa == null || msa.getPcdBuildDefinition() == null || msa.getPcdBuildDefinition().getPcdDataList() == null){\r
- return;\r
+ /**Remove PCDBuildDefinition entries from ModuleSA\r
+ * @param moduleKey identifier of ModuleSA.\r
+ * @param consumer where these entries come from.\r
+ */\r
+ public void removePcdData(String moduleKey, ModuleIdentification consumer) {\r
+ try {\r
+ ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = (ModuleSurfaceAreaDocument.ModuleSurfaceArea)GlobalData.getModuleXmlObject(consumer);\r
+ if (msa.getPcdCoded() == null) {\r
+ return;\r
+ }\r
+ \r
+ List<PcdCodedDocument.PcdCoded.PcdEntry> l = msa.getPcdCoded().getPcdEntryList();\r
+ ListIterator li = l.listIterator();\r
+ \r
+ while(li.hasNext()) {\r
+ PcdCodedDocument.PcdCoded.PcdEntry msaPcd = (PcdCodedDocument.PcdCoded.PcdEntry)li.next();\r
+ ModuleSADocument.ModuleSA moduleSA = getModuleSA(moduleKey);\r
+ if (moduleSA.getPcdBuildDefinition() != null) {\r
+ XmlCursor cursor = moduleSA.getPcdBuildDefinition().newCursor();\r
+ if (cursor.toFirstChild()) {\r
+ PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData pcdData = (PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData) cursor\r
+ .getObject();\r
+ if (msaPcd.getCName().equals(pcdData.getCName())\r
+ && msaPcd.getTokenSpaceGuidCName().equals(pcdData.getTokenSpaceGuidCName())) {\r
+\r
+ maintainDynPcdMap(pcdData.getCName() + " " + pcdData.getTokenSpaceGuidCName(), moduleKey);\r
+ cursor.removeXml();\r
+ break;\r
+ }\r
+ while (cursor.toNextSibling()) {\r
+ pcdData = (PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData) cursor.getObject();\r
+ if (msaPcd.getCName().equals(pcdData.getCName())\r
+ && msaPcd.getTokenSpaceGuidCName().equals(pcdData.getTokenSpaceGuidCName())) {\r
+ maintainDynPcdMap(pcdData.getCName() + " " + pcdData.getTokenSpaceGuidCName(),\r
+ moduleKey);\r
+ cursor.removeXml();\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ cursor.dispose();\r
+ }\r
+ }\r
+ \r