/**
  * Object setter
  * @param string $a_name
  * @param mixed $a_value
  * @return mixed
  */
 public function __set($a_name, $a_value)
 {
     if (!$this->document) {
         parent::__set($a_name, $a_value);
     }
     $this->document->{$a_name} = $a_value;
 }
 /**
  * Object setter
  * @param string $a_name
  * @param mixed $a_value
  * @return mixed
  */
 public function __set($a_name, $a_value)
 {
     if (parent::hasProperty($a_name)) {
         return parent::__set($a_name, $a_value);
     }
     $this->document->{$a_name} = $a_value;
 }