Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_external/3rdparty/php-opencloud/lib/OpenCloud/Common/Metadata.php')
-rw-r--r--apps/files_external/3rdparty/php-opencloud/lib/OpenCloud/Common/Metadata.php92
1 files changed, 92 insertions, 0 deletions
diff --git a/apps/files_external/3rdparty/php-opencloud/lib/OpenCloud/Common/Metadata.php b/apps/files_external/3rdparty/php-opencloud/lib/OpenCloud/Common/Metadata.php
new file mode 100644
index 00000000000..be6903e897e
--- /dev/null
+++ b/apps/files_external/3rdparty/php-opencloud/lib/OpenCloud/Common/Metadata.php
@@ -0,0 +1,92 @@
+<?php
+/**
+ * A metadata object, used by other components in Compute and Object Storage
+ *
+ * @copyright 2012-2013 Rackspace Hosting, Inc.
+ * See COPYING for licensing information
+ *
+ * @package phpOpenCloud
+ * @version 1.0
+ * @author Glen Campbell <glen.campbell@rackspace.com>
+ */
+
+namespace OpenCloud\Common;
+
+/**
+ * The Metadata class represents either Server or Image metadata
+ *
+ * @api
+ * @author Glen Campbell <glen.campbell@rackspace.com>
+ */
+class Metadata extends Base
+{
+
+ // array holding the names of keys that were set
+ private $_keylist = array();
+
+ /**
+ * This setter overrides the base one, since the metadata key can be
+ * anything
+ *
+ * @param string $key
+ * @param string $value
+ * @return void
+ */
+ public function __set($key, $value)
+ {
+ // set the value and track the keys
+ if (!in_array($key, $this->_keylist)) {
+ $this->_keylist[] = $key;
+ }
+
+ $this->$key = $value;
+ }
+
+ /**
+ * Returns the list of keys defined
+ *
+ * @return array
+ */
+ public function Keylist()
+ {
+ return $this->_keylist;
+ }
+
+ /**
+ * Sets metadata values from an array, with optional prefix
+ *
+ * If $prefix is provided, then only array keys that match the prefix
+ * are set as metadata values, and $prefix is stripped from the key name.
+ *
+ * @param array $values an array of key/value pairs to set
+ * @param string $prefix if provided, a prefix that is used to identify
+ * metadata values. For example, you can set values from headers
+ * for a Container by using $prefix='X-Container-Meta-'.
+ * @return void
+ */
+ public function setArray($values, $prefix = null)
+ {
+ if (empty($values)) {
+ return false;
+ }
+
+ foreach ($values as $key => $value) {
+ if ($prefix) {
+ if (strpos($key, $prefix) === 0) {
+ $name = substr($key, strlen($prefix));
+ $this->getLogger()->info(
+ Lang::translate('Setting [{name}] to [{value}]'),
+ array(
+ 'name' => $name,
+ 'value' => $value
+ )
+ );
+ $this->$name = $value;
+ }
+ } else {
+ $this->$key = $value;
+ }
+ }
+ }
+
+}