/**
  * @param string $key 
  * @return null
  */
 public function setKey($key)
 {
     if (!isset($this->loadedFields['key'])) {
         $this->loadProperties();
     }
     $oldValue = null;
     if (array_key_exists('key', $this->loadedValues)) {
         $oldValue = $this->loadedValues['key'];
     }
     if ($oldValue === $key) {
         $this->key = $key;
         return;
     }
     return parent::setKey($key);
 }