Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 final class ObjectSetter extends PrototypedSetter
00013 {
00014 private $getter = null;
00015
00016 public function set($name, $value)
00017 {
00018 $setter = 'set'.ucfirst($name);
00019 $dropper = 'drop'.ucfirst($name);
00020
00021 if (
00022 $value === null
00023 && method_exists($this->object, $dropper)
00024 )
00025 $method = $dropper;
00026 elseif (method_exists($this->object, $setter))
00027 $method = $setter;
00028 else
00029 throw new WrongArgumentException(
00030 "cannot find mutator for '$name' in class "
00031 .get_class($this->object)
00032 );
00033
00034 return $this->object->$method($value);
00035 }
00036
00040 public function getGetter()
00041 {
00042 if (!$this->getter) {
00043 $this->getter = new ObjectGetter($this->proto, $this->object);
00044 }
00045
00046 return $this->getter;
00047 }
00048 }
00049 ?>