?iť?
Current Path : /home/scgforma/www/cloud/3rdparty/rackspace/php-opencloud/lib/OpenCloud/Image/Resource/ |
Current File : /home/scgforma/www/cloud/3rdparty/rackspace/php-opencloud/lib/OpenCloud/Image/Resource/AbstractSchemaResource.php |
<?php /** * Copyright 2012-2014 Rackspace US, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ namespace OpenCloud\Image\Resource; use OpenCloud\Common\Resource\BaseResource; /** * Class that represents abstracted functionality for JSON schema objects. Because the nature of these objects is so * dynamic (i.e. their structure is determined by an API-generated schema document), they implement the \ArrayAccess * SPL interface. This allows them to be accessed as arrays - which is very useful for undefined properties. * * @package OpenCloud\Images\Resource * @codeCoverageIgnore */ abstract class AbstractSchemaResource extends BaseResource implements \ArrayAccess { /** @var string The ID of this resource */ protected $id; /** @var array The internal elements of this model */ protected $data = array(); /** * @param array $data */ public function setData(array $data) { $this->data = $data; } /** * @return array */ public function getData() { return $this->data; } /** * @param $id */ public function setId($id) { $this->id = (string) $id; } /** * @return string */ public function getId() { return $this->id; } /** * Sets a value to a particular offset. * * @param mixed $offset * @param mixed $value */ public function offsetSet($offset, $value) { if ($offset === null) { $this->data[] = $value; } else { $this->data[$offset] = $value; } } /** * Checks to see whether a particular offset key exists. * * @param mixed $offset * @return bool */ public function offsetExists($offset) { return array_key_exists($offset, $this->data); } /** * Unset a particular key. * * @param mixed $offset */ public function offsetUnset($offset) { unset($this->data[$offset]); } /** * Get the value for a particular offset key. * * @param mixed $offset * @return mixed|null */ public function offsetGet($offset) { return $this->offsetExists($offset) ? $this->data[$offset] : null; } }