--- /dev/null
+/** @file\r
+ DynamicTokenValue class.\r
+\r
+ This module contains the value type of a dynamic token.\r
+\r
+Copyright (c) 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+package org.tianocore.pcd.entity;\r
+\r
+import java.util.List;\r
+import java.util.UUID;\r
+\r
+import org.tianocore.pcd.exception.EntityException;\r
+\r
+/**\r
+ This class is to descript a value type of dynamic PCD.\r
+ For a dynamic or dynamicEx type PCD data, the value type can be:\r
+ 1) Hii type: the value of dynamic or dynamicEx is stored into a variable.\r
+ 2) Vpd type: the value of dynamic or dynamicEx is stored into somewhere set\r
+ by OEM.\r
+ 3) Default type: the value of dynamic or dynamicEx is stored into PCD dynamic\r
+ database.\r
+**/\r
+public class DynamicTokenValue {\r
+ ///\r
+ /// Enumeration macro defintion for value type.\r
+ ///\r
+ public static enum VALUE_TYPE {HII_TYPE, VPD_TYPE, DEFAULT_TYPE}\r
+\r
+ ///\r
+ /// The value type maybe:\r
+ /// HII_TYPE: the value stored into variable area.\r
+ /// VPD_TYPE: the value stored into OEM specific area.\r
+ /// DEFAULT_TYPE: the value stored into PCD runtime database.\r
+ ///\r
+ public VALUE_TYPE type;\r
+\r
+ ///\r
+ /// ---------------------------------------------------------------------\r
+ /// Following member is for HII case. The value of HII case will be put\r
+ /// into variable area in flash.\r
+ /// ---------------------------------------------------------------------\r
+ ///\r
+\r
+ ///\r
+ /// variableName is valid only when this token support Hii functionality. variableName\r
+ /// indicates the value of token is associated with what variable.\r
+ /// variableName is defined in FPD.\r
+ public List variableName;\r
+\r
+ ///\r
+ /// variableGuid is the GUID this token associated with.\r
+ ///\r
+ public UUID variableGuid;\r
+\r
+ ///\r
+ /// Variable offset indicate the associated variable's offset in NV storage.\r
+ ///\r
+ public String variableOffset;\r
+\r
+ ///\r
+ /// The default value for HII case.\r
+ ///\r
+ public String hiiDefaultValue;\r
+\r
+ ///\r
+ /// ---------------------------------------------------------------------\r
+ /// Following member is for VPD case. The value of VPD case will be put into\r
+ /// some flash position pointed by OEM.\r
+ /// ---------------------------------------------------------------------\r
+ ///\r
+\r
+ public String vpdOffset;\r
+\r
+ /// ---------------------------------------------------------------------\r
+ /// Following member is for default case. The value of default type will\r
+ /// be put into PCD runtime database.\r
+ /// ---------------------------------------------------------------------\r
+\r
+ ///\r
+ /// The default value of this PCD in default case.\r
+ ///\r
+ public String value;\r
+\r
+ /**\r
+ Constructor function for DynamicTokenValue class.\r
+\r
+ **/\r
+ public DynamicTokenValue() {\r
+ type = VALUE_TYPE.DEFAULT_TYPE;\r
+ variableName = null;\r
+ variableGuid = null;\r
+ variableOffset = null;\r
+ hiiDefaultValue = null;\r
+ vpdOffset = null;\r
+ value = null;\r
+ }\r
+\r
+ /**\r
+ Set the HII case data.\r
+\r
+ @param variableName The variable name\r
+ @param variableGuid The variable guid\r
+ @param variableOffset The offset of value in this variable\r
+ @param hiiDefaultValue Default value for this PCD\r
+ **/\r
+ public void setHiiData(List variableName,\r
+ UUID variableGuid,\r
+ String variableOffset,\r
+ String hiiDefaultValue) {\r
+ this.type = VALUE_TYPE.HII_TYPE;\r
+\r
+ this.variableName = variableName;\r
+ this.variableGuid = variableGuid;\r
+ this.variableOffset = variableOffset;\r
+ this.hiiDefaultValue = hiiDefaultValue;\r
+ }\r
+\r
+ /**\r
+ Get the variable Name.\r
+\r
+ @return String\r
+ **/\r
+ public List getStringOfVariableName() {\r
+ return variableName;\r
+ }\r
+\r
+ /**\r
+ Set Vpd case data.\r
+\r
+ @param vpdOffset the value offset the start address of OEM specific.\r
+ **/\r
+ public void setVpdData(String vpdOffset) {\r
+ this.type = VALUE_TYPE.VPD_TYPE;\r
+\r
+ this.vpdOffset = vpdOffset;\r
+ }\r
+\r
+ /**\r
+ Set default case data.\r
+\r
+ @param value\r
+ **/\r
+ public void setValue(String value) {\r
+ this.type = VALUE_TYPE.DEFAULT_TYPE;\r
+\r
+ this.value = value;\r
+ }\r
+}\r
+\r
+\r
+\r
+\r
+\r