private function setValue(&$val)
 {
     yTest_debugCC('setValue ' . $this->className . '::' . $this->propertyName . ' = ' . var_export($val, true));
     if ($this->isPublic) {
         $refl = new ReflectionClass($this->className);
         $refl->setStaticPropertyValue($this->propertyName, $val);
     } else {
         call_user_func(array($this->className, yTest_AddPublicAccessors::getSetterName($this->className, $this->propertyName)), $val);
     }
 }
 public final function setProperty($object, $propertyName, $value)
 {
     $className = get_class($object);
     $isPublic = yTest_Reflection::isPropertyPublic($className, $propertyName);
     if (!$isPublic) {
         $this->letMeAccess($className, $propertyName);
     }
     call_user_func(array($object, yTest_AddPublicAccessors::getSetterName($className, $propertyName)), $value);
     // [RS] PHP >= 5.3 :
     //~ $className = get_class($object);
     //~ $ref = new ReflectionProperty($className, $propertyName);
     //~ $ref->setValue($object, $value);
 }