public function __construct($data)
 {
     $result = array();
     $cvars = get_class_vars(get_class($data));
     $vars = get_object_vars($data);
     if (count($vars)) {
         foreach ($vars as $name => $value) {
             $result[] = array('name' => $name, 'value' => \MUtil_Lazy::property($data, $name), 'from_code' => array_key_exists($name, $cvars));
         }
         $this->_hasProperties = true;
     } else {
         $this->_hasProperties = false;
     }
     parent::__construct($result);
 }