/**
  * Property set access.
  * 
  * @param string $propertyName 
  * @param mixed $properyValue
  * @ignore
  *
  * @throws ezcBasePropertyNotFoundException
  *         if the desired property could not be found.
  * @throws ezcBaseValueException
  *         if $properyValue is not valid for $propertyName.
  */
 public function __set($propertyName, $properyValue)
 {
     switch ($propertyName) {
         case 'relationSource':
             if (!is_object($properyValue) && $properyValue !== null) {
                 throw new ezcBaseValueException($propertyName, $properyValue, 'Object or null');
             }
             $this->properties[$propertyName] = $properyValue;
             return;
         case 'relationSetName':
             if (!is_string($properyValue) && $properyValue !== null) {
                 throw new ezcBaseValueException($propertyName, $properyValue, 'string or null');
             }
             $this->properties[$propertyName] = $properyValue;
             return;
     }
     parent::__set($propertyName, $properyValue);
 }
 /**
  * Property set access.
  * 
  * @param string $propertyName 
  * @param mixed $properyValue
  * @ignore
  *
  * @throws ezcBasePropertyNotFoundException
  *         if the desired property could not be found.
  * @throws ezcBaseValueException
  *         if $properyValue is not valid for $propertyName.
  */
 public function __set($propertyName, $properyValue)
 {
     switch ($propertyName) {
         case 'isRestricted':
         case 'relations':
             throw new ezcBasePropertyPermissionException($propertyName, ezcBasePropertyPermissionException::READ);
         default:
             return parent::__set($propertyName, $properyValue);
     }
 }