dynPcdMap = new HashMap<String, ArrayList<String>>();\r
List<ModuleSADocument.ModuleSA> l = getfpdFrameworkModules().getModuleSAList();\r
if (l == null) {\r
+ removeElement(getfpdFrameworkModules());\r
+ fpdFrameworkModules = null;\r
return;\r
}\r
ListIterator<ModuleSADocument.ModuleSA> li = l.listIterator();\r
}\r
\r
public int getFrameworkModulesCount() {\r
- if (getfpdFrameworkModules().getModuleSAList() == null){\r
+ if (getfpdFrameworkModules().getModuleSAList() == null || getfpdFrameworkModules().getModuleSAList().size() == 0){\r
+ removeElement(getfpdFrameworkModules());\r
+ fpdFrameworkModules = null;\r
return 0;\r
}\r
return getfpdFrameworkModules().getModuleSAList().size();\r
\r
public ModuleSADocument.ModuleSA getModuleSA(String key) {\r
String[] s = key.split(" ");\r
- if (getfpdFrameworkModules().getModuleSAList() == null) {\r
+ if (getfpdFrameworkModules().getModuleSAList() == null || getfpdFrameworkModules().getModuleSAList().size() == 0) {\r
+ removeElement(getfpdFrameworkModules());\r
+ fpdFrameworkModules = null;\r
return null;\r
}\r
ListIterator li = getfpdFrameworkModules().getModuleSAList().listIterator();\r
while(li.hasNext()) {\r
ModuleSADocument.ModuleSA msa = (ModuleSADocument.ModuleSA)li.next();\r
- if (msa.getModuleGuid().equals(s[0]) && msa.getPackageGuid().equals(s[2])) {\r
+ if (msa.getModuleGuid().equalsIgnoreCase(s[0]) && msa.getPackageGuid().equalsIgnoreCase(s[2])) {\r
if (msa.getModuleVersion() != null) {\r
if (!msa.getModuleVersion().equals(s[1])) {\r
continue;\r
\r
private ModuleSADocument.ModuleSA getModuleSA(int i) {\r
ModuleSADocument.ModuleSA msa = null;\r
- XmlCursor cursor = getfpdFrameworkModules().newCursor();\r
+ if (fpdRoot.getFrameworkModules() == null) {\r
+ return null;\r
+ }\r
+ XmlCursor cursor = fpdRoot.getFrameworkModules().newCursor();\r
if (cursor.toFirstChild()) {\r
for (int j = 0; j < i; ++j) {\r
cursor.toNextSibling();\r
}\r
\r
public void removeModuleSA(int i) {\r
- XmlObject o = getfpdFrameworkModules();\r
+ XmlObject o = fpdRoot.getFrameworkModules();\r
if (o == null) {\r
return;\r
}\r
\r
}\r
catch (Exception e){\r
-// e.printStackTrace();\r
+ e.printStackTrace();\r
throw e;\r
}\r
\r
\r
public void getModuleSAOptions(String moduleKey, String[][] saa) {\r
ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
- if (msa.getModuleSaBuildOptions() == null || msa.getModuleSaBuildOptions().getOptions() == null\r
+ if (msa == null || msa.getModuleSaBuildOptions() == null || msa.getModuleSaBuildOptions().getOptions() == null\r
|| msa.getModuleSaBuildOptions().getOptions().getOptionList() == null) {\r
return ;\r
}\r
\r
public int getModuleSAOptionsCount(String moduleKey){\r
ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
- if (msa.getModuleSaBuildOptions() == null || msa.getModuleSaBuildOptions().getOptions() == null\r
+ if (msa == null || msa.getModuleSaBuildOptions() == null || msa.getModuleSaBuildOptions().getOptions() == null\r
|| msa.getModuleSaBuildOptions().getOptions().getOptionList() == null) {\r
return 0;\r
}\r
//\r
// ToDo Error \r
//\r
- throw new PcdDeclNotFound(mi.getName() + " " + msaPcd.getCName());\r
+ throw new PcdDeclNotFound("No Declaration for PCD Entry " + msaPcd.getCName() + " in Module " + mi.getName());\r
}\r
//\r
// AddItem to ModuleSA PcdBuildDefinitions\r
\r
}\r
catch (Exception e){\r
-// e.printStackTrace();\r
+ \r
throw e; \r
}\r
\r
//\r
// Special dynamic type, if this pcd already exists in other ModuleSA\r
//\r
+ /* Comment out Item type checking temporarily.\r
if (itemType.equals("DYNAMIC")) {\r
\r
ListIterator li = pcdConsumer.listIterator();\r
while(li.hasNext()) {\r
String value = li.next().toString();\r
String[] valuePart= value.split(" ");\r
- if (!valuePart[4].equals("DYNAMIC")) {\r
+ if (!valuePart[5].equals("DYNAMIC")) {\r
//ToDo error for same pcd, other type than dynamic\r
pcdConsumer.remove(listValue);\r
- throw new PcdItemTypeConflictException(value);\r
+ throw new PcdItemTypeConflictException(cName, value);\r
}\r
}\r
}\r
while(li.hasNext()) {\r
String value = li.next().toString();\r
String[] valuePart= value.split(" ");\r
- if (valuePart[4].equals("DYNAMIC")) {\r
+ if (valuePart[5].equals("DYNAMIC")) {\r
//ToDo error for same pcd, other type than non-dynamic\r
pcdConsumer.remove(listValue);\r
- throw new PcdItemTypeConflictException(value);\r
+ throw new PcdItemTypeConflictException(cName, value);\r
}\r
}\r
}\r
- \r
+ */\r
PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData fpdPcd = moduleSa.getPcdBuildDefinition().addNewPcdData();\r
fpdPcd.setCName(cName);\r
fpdPcd.setToken(token);\r
\r
private ArrayList<String> LookupPlatformPcdData(String pcdKey) {\r
\r
- return dynPcdMap.get("pcdKey");\r
+ return dynPcdMap.get(pcdKey);\r
}\r
\r
public int getDynamicPcdBuildDataCount() {\r
- if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null) {\r
+ if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null || getfpdDynPcdBuildDefs().getPcdBuildDataList().size() == 0) {\r
+ removeElement(getfpdDynPcdBuildDefs());\r
+ fpdDynPcdBuildDefs = null;\r
return 0;\r
}\r
return getfpdDynPcdBuildDefs().getPcdBuildDataList().size();\r
}\r
\r
public void getDynamicPcdBuildData(String[][] saa) {\r
- if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null) {\r
+ if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null || getfpdDynPcdBuildDefs().getPcdBuildDataList().size() == 0) {\r
+ removeElement(getfpdDynPcdBuildDefs());\r
+ fpdDynPcdBuildDefs = null;\r
return ;\r
}\r
List<DynamicPcdBuildDefinitionsDocument.DynamicPcdBuildDefinitions.PcdBuildData> l = getfpdDynPcdBuildDefs().getPcdBuildDataList();\r
}\r
\r
public void removeDynamicPcdBuildData(String cName, String tsGuid) {\r
- XmlObject o = getfpdDynPcdBuildDefs();\r
+ XmlObject o = fpdRoot.getDynamicPcdBuildDefinitions();\r
+ if (o == null) {\r
+ return;\r
+ }\r
\r
XmlCursor cursor = o.newCursor();\r
if (cursor.toFirstChild()) {\r
// Get the Sku Info count of ith dyn pcd element.\r
//\r
public int getDynamicPcdSkuInfoCount(int i){\r
- if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null || getfpdDynPcdBuildDefs().getPcdBuildDataList().size() == 0) {\r
+ if (fpdRoot.getDynamicPcdBuildDefinitions() == null || fpdRoot.getDynamicPcdBuildDefinitions().getPcdBuildDataList() == null \r
+ || fpdRoot.getDynamicPcdBuildDefinitions().getPcdBuildDataList().size() == 0) {\r
return 0;\r
}\r
\r
\r
public void getDynamicPcdSkuInfos(int i, String[][] saa){\r
if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null || getfpdDynPcdBuildDefs().getPcdBuildDataList().size() == 0) {\r
+ removeElement(getfpdDynPcdBuildDefs());\r
+ fpdDynPcdBuildDefs = null;\r
return;\r
}\r
\r
public String getDynamicPcdBuildDataValue(int i){\r
String value = null;\r
if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null || getfpdDynPcdBuildDefs().getPcdBuildDataList().size() == 0) {\r
+ removeElement(getfpdDynPcdBuildDefs());\r
+ fpdDynPcdBuildDefs = null;\r
return value;\r
}\r
\r
public String getDynamicPcdBuildDataVpdOffset(int i){\r
String vpdOffset = null;\r
if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null || getfpdDynPcdBuildDefs().getPcdBuildDataList().size() == 0) {\r
+ removeElement(getfpdDynPcdBuildDefs());\r
+ fpdDynPcdBuildDefs = null;\r
return vpdOffset;\r
}\r
\r
\r
public void removeDynamicPcdBuildDataSkuInfo(int i) {\r
if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null || getfpdDynPcdBuildDefs().getPcdBuildDataList().size() == 0) {\r
+ removeElement(getfpdDynPcdBuildDefs());\r
+ fpdDynPcdBuildDefs = null;\r
return;\r
}\r
\r
//\r
public void genDynamicPcdBuildDataSkuInfo(String id, String varName, String varGuid, String varOffset, \r
String hiiDefault, String vpdOffset, String value, int i) {\r
- if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null || getfpdDynPcdBuildDefs().getPcdBuildDataList().size() == 0) {\r
- return;\r
- }\r
+// if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null || getfpdDynPcdBuildDefs().getPcdBuildDataList().size() == 0) {\r
+// return;\r
+// }\r
\r
XmlCursor cursor = getfpdDynPcdBuildDefs().newCursor();\r
if (cursor.toFirstChild()) {\r
\r
public void updateDynamicPcdBuildDataSkuInfo(String id, String varName, String varGuid, String varOffset, \r
String hiiDefault, String vpdOffset, String value, int i){\r
- if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null || getfpdDynPcdBuildDefs().getPcdBuildDataList().size() == 0) {\r
- return;\r
- }\r
+// if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null || getfpdDynPcdBuildDefs().getPcdBuildDataList().size() == 0) {\r
+// return;\r
+// }\r
\r
XmlCursor cursor = getfpdDynPcdBuildDefs().newCursor();\r
if (cursor.toFirstChild()) {\r
\r
public void getPlatformDefsSkuInfos(String[][] saa){\r
if (getfpdPlatformDefs().getSkuInfo() == null || getfpdPlatformDefs().getSkuInfo().getUiSkuNameList() == null) {\r
+ if (getfpdDynPcdBuildDefs().getPcdBuildDataList() == null) {\r
+ removeElement(getfpdDynPcdBuildDefs());\r
+ fpdDynPcdBuildDefs = null;\r
+ }\r
return ;\r
}\r
\r
if (fpdHdr == null) {\r
fpdHdr = fpdRoot.addNewPlatformHeader();\r
}\r
- genPlatformDefsSkuInfo("0", "DEFAULT");\r
+ \r
return fpdHdr;\r
}\r
\r
}\r
return s.trim();\r
}\r
+ \r
+ private void removeElement(XmlObject o) {\r
+ XmlCursor cursor = o.newCursor();\r
+ cursor.removeXml();\r
+ cursor.dispose();\r
+ }\r
}\r
\r
class PcdItemTypeConflictException extends Exception {\r
private static final long serialVersionUID = 1L;\r
private String details = null;\r
\r
- PcdItemTypeConflictException(String info){\r
- details = info;\r
+ PcdItemTypeConflictException(String pcdName, String info){\r
+ ModuleIdentification mi = GlobalData.getModuleId(info);\r
+ details = pcdName + " ItemType Conflicts with " + mi.getName() + " in Pkg " + mi.getPackage().getName();\r
}\r
\r
public String getMessage() {\r
private String details = null;\r
\r
PcdDeclNotFound(String info) {\r
- details = info;\r
+ details = "PcdDeclNotFound: " + info;\r
}\r
\r
public String getMessage() {\r
private String details = null;\r
\r
PcdValueMalFormed(String info) {\r
- details = info;\r
+ details = "PcdValueMalFormed: " + info;\r
}\r
\r
public String getMessage() {\r