import java.util.Map;\r
import java.util.UUID;\r
\r
-import org.tianocore.build.pcd.action.ActionMessage;\r
import org.tianocore.build.pcd.exception.EntityException;\r
\r
/** This class is to descript a PCD token object. The information of a token mainly \r
return false;\r
}\r
\r
+ public boolean isDynamicEx() {\r
+ \r
+ for (int i = 0; i < supportedPcdType.size(); i++) {\r
+ if (supportedPcdType.get(i) == PCD_TYPE.DYNAMIC_EX) {\r
+ return true;\r
+ }\r
+ }\r
+ \r
+ return false;\r
+ }\r
+\r
/**\r
Use "TokencName + "-" + SpaceTokenName" as primary key when adding token into database\r
\r
}\r
return false;\r
}\r
+ \r
+ public boolean isHiiEnable() {\r
+ if (getDefaultSku().type == DynamicTokenValue.VALUE_TYPE.HII_TYPE) {\r
+ return true;\r
+ }\r
+ return false;\r
+ }\r
+\r
+ public boolean isVpdEnable() {\r
+ if (getDefaultSku().type == DynamicTokenValue.VALUE_TYPE.VPD_TYPE) {\r
+ return true;\r
+ }\r
+ return false;\r
+ }\r
\r
/**\r
Get the token primary key in token database.\r
\r
@return string of datum type.\r
**/\r
+\r
public static String getAutogendatumTypeString(DATUM_TYPE datumType) {\r
switch (datumType) {\r
case UINT8:\r
\r
return null;\r
}\r
+ \r
+ public int getSkuIdCount () {\r
+ return this.skuData.size();\r
+ }\r
+ \r
\r
/**\r
Get default value for a token, For HII type, HiiDefaultValue of default\r
boolean isInteger = true;\r
DynamicTokenValue dynamicValue = null;\r
\r
+ if (isSkuEnable()) {\r
+ return true;\r
+ }\r
+ \r
if (this.isDynamicPCD) {\r
dynamicValue = getDefaultSku();\r
switch (dynamicValue.type) {\r
case HII_TYPE:\r
- return !isValidNullValue(dynamicValue.hiiDefaultValue);\r
+ return true;\r
case VPD_TYPE:\r
- return false;\r
+ return true;\r
case DEFAULT_TYPE:\r
return !isValidNullValue(dynamicValue.value);\r
}\r
\r
public boolean isValidNullValue(String judgedValue) {\r
int intValue;\r
+ String subStr;\r
BigInteger bigIntValue;\r
\r
switch (datumType) {\r
case UINT8:\r
case UINT16:\r
case UINT32:\r
- intValue = Integer.decode(judgedValue);\r
- if (intValue == 0) {\r
+ if (judgedValue.length() > 2) {\r
+ if ((judgedValue.charAt(0) == '0') && \r
+ ((judgedValue.charAt(1) == 'x') || (judgedValue.charAt(1) == 'X'))){\r
+ subStr = judgedValue.substring(2, judgedValue.length());\r
+ bigIntValue = new BigInteger(subStr, 16);\r
+ } else {\r
+ bigIntValue = new BigInteger(judgedValue);\r
+ }\r
+ } else {\r
+ bigIntValue = new BigInteger(judgedValue);\r
+ }\r
+ if (bigIntValue.bitCount() == 0) {\r
return true;\r
}\r
break;\r
\r
return false;\r
}\r
+ \r
+ public boolean isByteStreamType () {\r
+ String str = getDynamicDefaultValue();\r
+\r
+ if (str == null) {\r
+ return false;\r
+ }\r
+\r
+ if (datumType == Token.DATUM_TYPE.POINTER &&\r
+ str.startsWith("{") && \r
+ str.endsWith("}")) {\r
+ return true;\r
+ }\r
+\r
+ return false;\r
+ \r
+ }\r
\r
public String getStringTypeString () { \r
return getDefaultSku().value.substring(2, getDefaultSku().value.length() - 1);\r