functionToApply = $functionToApply; $this->metadataToRead = $metadataToRead; $this->metadataToAdd = $metadataToAdd; $this->filter(); } protected function filter() { foreach($this->table->getRows() as $key => $row) { $oldValue = $row->getMetadata($this->metadataToRead); $newValue = call_user_func( $this->functionToApply, $oldValue); $row->addMetadata($this->metadataToAdd, $newValue); } } }