PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData pcdData = li.next();\r
saa[i][0] = pcdData.getCName();\r
saa[i][1] = pcdData.getTokenSpaceGuidCName();\r
- saa[i][2] = pcdData.getItemType().toString();\r
+ saa[i][2] = pcdData.getItemType()+"";\r
saa[i][3] = pcdData.getToken().toString();\r
- saa[i][4] = pcdData.getDatumType().toString();\r
- saa[i][5] = pcdData.getValue();\r
+ saa[i][4] = pcdData.getMaxDatumSize()+"";\r
+ saa[i][5] = pcdData.getDatumType()+"";\r
+ saa[i][6] = pcdData.getValue();\r
\r
}\r
}\r
* @param mi\r
* @param moduleSa if null, generate a new ModuleSA.\r
*/\r
- public void addFrameworkModulesPcdBuildDefs(ModuleIdentification mi, ModuleSADocument.ModuleSA moduleSa){\r
+ public void addFrameworkModulesPcdBuildDefs(ModuleIdentification mi, ModuleSADocument.ModuleSA moduleSa) throws Exception {\r
//ToDo add Arch filter\r
\r
try {\r
//\r
// ToDo Error \r
//\r
- break;\r
+ throw new PcdDeclNotFound(mi.getName() + " " + msaPcd.getCName());\r
}\r
//\r
// AddItem to ModuleSA PcdBuildDefinitions\r
}\r
catch (Exception e){\r
e.printStackTrace();\r
+ throw e; \r
}\r
\r
}\r
return msa;\r
}\r
\r
- private void genPcdData (String cName, Object token, String tsGuid, String itemType, String dataType, String defaultVal, ModuleSADocument.ModuleSA moduleSa) {\r
+ private void genPcdData (String cName, Object token, String tsGuid, String itemType, String dataType, String defaultVal, ModuleSADocument.ModuleSA moduleSa) \r
+ throws PcdItemTypeConflictException, PcdValueMalFormed{\r
if (moduleSa.getPcdBuildDefinition() == null){\r
moduleSa.addNewPcdBuildDefinition();\r
}\r
if (!valuePart[4].equals("DYNAMIC")) {\r
//ToDo error for same pcd, other type than dynamic\r
pcdConsumer.remove(listValue);\r
- return;\r
+ throw new PcdItemTypeConflictException(value);\r
}\r
}\r
}\r
if (valuePart[4].equals("DYNAMIC")) {\r
//ToDo error for same pcd, other type than non-dynamic\r
pcdConsumer.remove(listValue);\r
- return;\r
+ throw new PcdItemTypeConflictException(value);\r
}\r
}\r
}\r
}\r
}\r
\r
- private int setMaxSizeForPointer(String datum) {\r
+ private int setMaxSizeForPointer(String datum) throws PcdValueMalFormed{\r
if (datum == null) {\r
return 0;\r
}\r
(end > datum.length())||\r
((start == end) && (datum.length() > 0))) {\r
//ToDo Error handling here\r
+ throw new PcdValueMalFormed (datum);\r
}\r
\r
strValue = datum.substring(start + 1, end);\r
if ((start > end) || \r
(end > datum.length())||\r
((start == end) && (datum.length() > 0))) {\r
- \r
+ throw new PcdValueMalFormed (datum);\r
}\r
strValue = datum.substring(start + 1, end);\r
return strValue.length();\r
if (value > 0xFF) {\r
// "[FPD file error] The datum type of PCD %s in %s is VOID*, "+\r
// "it is byte array in fact. But the element of %s exceed the byte range",\r
- \r
+ throw new PcdValueMalFormed (datum); \r
}\r
}\r
return strValueArray.length;\r
// "2) ANSIC string: like \"xxx\";\r\n"+\r
// "3) Byte array: like {0x2, 0x45, 0x23}\r\n"+\r
// "but the datum in seems does not following above format!",\r
- return -1; \r
+ throw new PcdValueMalFormed (datum);\r
\r
}\r
}\r
}\r
}\r
\r
- private void addDynamicPcdBuildData(String cName, Object token, String tsGuid, String itemType, String dataType, String defaultVal) {\r
+ private void addDynamicPcdBuildData(String cName, Object token, String tsGuid, String itemType, String dataType, String defaultVal) \r
+ throws PcdValueMalFormed{\r
DynamicPcdBuildDefinitionsDocument.DynamicPcdBuildDefinitions.PcdBuildData dynPcdData = getfpdDynPcdBuildDefs().addNewPcdBuildData();\r
dynPcdData.setItemType(PcdItemTypes.Enum.forString(itemType));\r
dynPcdData.setCName(cName);\r
return s.trim();\r
}\r
}\r
+\r
+class PcdItemTypeConflictException extends Exception {\r
+\r
+ /**\r
+ * \r
+ */\r
+ private static final long serialVersionUID = 1L;\r
+ private String details = null;\r
+ \r
+ PcdItemTypeConflictException(String info){\r
+ details = info;\r
+ }\r
+ \r
+ public String getMessage() {\r
+ return details;\r
+ }\r
+}\r
+\r
+class PcdDeclNotFound extends Exception {\r
+\r
+ /**\r
+ * \r
+ */\r
+ private static final long serialVersionUID = 1L;\r
+ private String details = null;\r
+ \r
+ PcdDeclNotFound(String info) {\r
+ details = info;\r
+ }\r
+ \r
+ public String getMessage() {\r
+ return details;\r
+ }\r
+}\r
+\r
+class PcdValueMalFormed extends Exception {\r
+\r
+ /**\r
+ * \r
+ */\r
+ private static final long serialVersionUID = 1L;\r
+ private String details = null;\r
+ \r
+ PcdValueMalFormed(String info) {\r
+ details = info;\r
+ }\r
+ \r
+ public String getMessage() {\r
+ return details;\r
+ }\r
+}\r
model.setRowCount(0);\r
int pcdCount = ffc.getPcdDataCount(key);\r
if (pcdCount != 0) {\r
- String[][] saa = new String[pcdCount][6];\r
+ String[][] saa = new String[pcdCount][7];\r
ffc.getPcdData(key, saa);\r
for (int i = 0; i < saa.length; ++i) {\r
model.addRow(saa[i]);\r
model.addColumn("TokenSpaceGUID");\r
model.addColumn("ItemType");\r
model.addColumn("Token");\r
+ model.addColumn("MaxDatumSize");\r
model.addColumn("DataType");\r
model.addColumn("DefaultValue");\r
\r
//\r
// Add pcd information of selected instance to current moduleSA\r
//\r
+ try{\r
ffc.addFrameworkModulesPcdBuildDefs(getModuleId(instanceValue), ffc.getModuleSA(moduleKey));\r
- \r
+ }\r
+ catch (Exception exception) {\r
+ JOptionPane.showMessageDialog(frame, "PCD Insertion Fail. " + exception.getMessage());\r
+ }\r
resolveLibraryInstances(instanceValue);\r
}\r
});\r
public boolean isCellEditable(int row, int col) {\r
switch (col){\r
case 2:\r
- return true;\r
+ return false;\r
default:\r
return false; \r
}\r