public static final String FALSE = "False";\r
\r
//\r
- // The Sting for USAGE type\r
+ // The String for USAGE type\r
//\r
public final static String USAGE_TYPE_ALWAYS_CONSUMED = "ALWAYS_CONSUMED";\r
\r
\r
public final static String USAGE_TYPE_PRIVATE = "PRIVATE";\r
\r
+ //\r
+ // The String for PCD type\r
+ //\r
+ public final static String PCD_ITEM_TYPE_FEATURE_FLAG = "FEATURE_FLAG";\r
+ \r
+ public final static String PCD_ITEM_TYPE_FIXED_AT_BUILD = "FIXED_AT_BUILD";\r
+ \r
+ public final static String PCD_ITEM_TYPE_PATCHABLE_IN_MODULE = "PATCHABLE_IN_MODULE";\r
+ \r
+ public final static String PCD_ITEM_TYPE_DYNAMIC = "DYNAMIC";\r
+ \r
+ public final static String PCD_ITEM_TYPE_DYNAMIC_EX = "DYNAMIC_EX";\r
+ \r
//\r
// The String for PPI type\r
//\r
\r
private void initPcdItemTypes() {\r
vPcdItemTypes.removeAllElements();\r
- vPcdItemTypes.addElement("FEATURE_FLAG");\r
- vPcdItemTypes.addElement("FIXED_AT_BUILD");\r
- vPcdItemTypes.addElement("PATCHABLE_IN_MODULE");\r
- vPcdItemTypes.addElement("DYNAMIC");\r
- vPcdItemTypes.addElement("DYNAMIC_EX");\r
+ vPcdItemTypes.addElement(DataType.PCD_ITEM_TYPE_FEATURE_FLAG);\r
+ vPcdItemTypes.addElement(DataType.PCD_ITEM_TYPE_FIXED_AT_BUILD);\r
+ vPcdItemTypes.addElement(DataType.PCD_ITEM_TYPE_PATCHABLE_IN_MODULE);\r
+ vPcdItemTypes.addElement(DataType.PCD_ITEM_TYPE_DYNAMIC);\r
+ vPcdItemTypes.addElement(DataType.PCD_ITEM_TYPE_DYNAMIC_EX);\r
}\r
\r
private void initPcdUsage() {\r
String help = spd.getPcdDeclarations().getPcdEntryList().get(index).getHelpText();\r
Vector<String> type = Tools.convertListToVector(spd.getPcdDeclarations().getPcdEntryList()\r
.get(index).getValidUsage());\r
-\r
+ //\r
+ // The algorithm for PCD of msa should be:\r
+ // 1. If the type of PCD from Spd is FEATURE_FLAG, \r
+ // the type of Msa only can be FEATURE_FLAG.\r
+ // 2. If the type of PCD from Spd is not FEATURE_FLAG, \r
+ // the type of Msa could be selected from the PCD's all types and "DYNAMIC" type.\r
+ //\r
+ boolean hasFEATURE_FLAG = false;\r
+ boolean hasDYNAMIC = false;\r
+ for (int indexOfType = 0; indexOfType < type.size(); indexOfType++) {\r
+ if (type.elementAt(indexOfType).equals(DataType.PCD_ITEM_TYPE_DYNAMIC)) {\r
+ hasDYNAMIC = true;\r
+ }\r
+ if(type.elementAt(indexOfType).equals(DataType.PCD_ITEM_TYPE_FEATURE_FLAG)) {\r
+ hasFEATURE_FLAG = true;\r
+ }\r
+ }\r
+ if (hasFEATURE_FLAG) {\r
+ type.removeAllElements();\r
+ type.addElement(DataType.PCD_ITEM_TYPE_FEATURE_FLAG);\r
+ } else {\r
+ if (!hasDYNAMIC) {\r
+ type.addElement(DataType.PCD_ITEM_TYPE_DYNAMIC);\r
+ }\r
+ }\r
vector.addPcd(new PcdIdentification(name, guidCName, help, type));\r
}\r
}\r