Version 1
[yaffs-website] / vendor / drush / drush / lib / Drush / Config / StorageWrapper.php
diff --git a/vendor/drush/drush/lib/Drush/Config/StorageWrapper.php b/vendor/drush/drush/lib/Drush/Config/StorageWrapper.php
new file mode 100644 (file)
index 0000000..26b4374
--- /dev/null
@@ -0,0 +1,141 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drush\Config\StorageWrapper.
+ */
+
+namespace Drush\Config;
+
+use Drupal\Core\Config\StorageInterface;
+
+class StorageWrapper implements StorageInterface {
+
+  /**
+   * The storage container that we are wrapping.
+   *
+   * @var \Drupal\Core\Config\StorageInterface
+   */
+  protected $storage;
+  protected $filters;
+
+  /**
+   * Create a StorageWrapper with some storage and a filter.
+   */
+  function __construct($storage, $filterOrFilters) {
+    $this->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();
+  }
+
+}