storage = $storage; $this->filters = is_array($filterOrFilters) ? $filterOrFilters : array($filterOrFilters); } /** * {@inheritdoc} */ public function exists($name) { return $this->storage->exists($name); } /** * {@inheritdoc} */ public function read($name) { $data = $this->storage->read($name); foreach ($this->filters as $filter) { $data = $filter->filterRead($name, $data); } return $data; } /** * {@inheritdoc} */ public function readMultiple(array $names) { $dataList = $this->storage->readMultiple($names); $result = array(); foreach ($dataList as $name => $data) { foreach ($this->filters as $filter) { $data = $filter->filterRead($name, $data); } $result[$name] = $data; } return $result; } /** * {@inheritdoc} */ public function write($name, array $data) { foreach ($this->filters as $filter) { $data = $filter->filterWrite($name, $data, $this->storage); } return $this->storage->write($name, $data); } /** * {@inheritdoc} */ public function delete($name) { return $this->storage->delete($name); } /** * {@inheritdoc} */ public function rename($name, $new_name) { return $this->storage->rename($name, $new_name); } /** * {@inheritdoc} */ public function encode($data) { return $this->storage->encode($data); } /** * {@inheritdoc} */ public function decode($raw) { return $this->storage->decode($raw); } /** * {@inheritdoc} */ public function listAll($prefix = '') { return $this->storage->listAll($prefix); } /** * {@inheritdoc} */ public function deleteAll($prefix = '') { return $this->storage->deleteAll($prefix); } /** * {@inheritdoc} */ public function createCollection($collection) { return $this->storage->createCollection($collection); } /** * {@inheritdoc} */ public function getAllCollectionNames() { return $this->storage->getAllCollectionNames(); } /** * {@inheritdoc} */ public function getCollectionName() { return $this->storage->getCollectionName(); } }