00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00018 final class FilterChain implements Filtrator
00019 {
00020 private $chain = array();
00021
00025 public static function create()
00026 {
00027 return new self;
00028 }
00029
00033 public function add(Filtrator $filter)
00034 {
00035 $this->chain[] = $filter;
00036 return $this;
00037 }
00038
00042 public function dropAll()
00043 {
00044 $this->chain = array();
00045 return $this;
00046 }
00047
00048 public function apply($value)
00049 {
00050 foreach ($this->chain as &$filter)
00051 $value = $filter->apply($value);
00052
00053 return $value;
00054 }
00055 }
00056 ?>