public function GetValueDescription($sValue)
 {
     if (is_null($sValue)) {
         // Unless a specific label is defined for the null value of this enum, use a generic "undefined" label
         $sDescription = Dict::S('Class:' . $this->GetHostClass() . '/Attribute:' . $this->GetCode() . '/Value:' . $sValue . '+', Dict::S('Enum:Undefined'));
     } else {
         $sDescription = Dict::S('Class:' . $this->GetHostClass() . '/Attribute:' . $this->GetCode() . '/Value:' . $sValue . '+', '', true);
         if (strlen($sDescription) == 0) {
             $sParentClass = MetaModel::GetParentClass($this->m_sHostClass);
             if ($sParentClass) {
                 if (MetaModel::IsValidAttCode($sParentClass, $this->m_sCode)) {
                     $oAttDef = MetaModel::GetAttributeDef($sParentClass, $this->m_sCode);
                     $sDescription = $oAttDef->GetValueDescription($sValue);
                 }
             }
         }
     }
     return $sDescription;
 }
 public function GetParentClass($sClass)
 {
     return MetaModel::GetParentClass($sClass);
 }
 public function GetMapRule($sClass)
 {
     $aMappings = $this->Get('mapping');
     if (array_key_exists($sClass, $aMappings)) {
         $aMappingData = $aMappings[$sClass];
     } else {
         $sParent = MetaModel::GetParentClass($sClass);
         $aMappingData = $this->GetMapRule($sParent);
     }
     return $aMappingData;
 }