Overview

Namespaces

  • OpenCloud
    • Autoscale
      • Resource
    • CloudMonitoring
      • Exception
      • Resource
    • Common
      • Collection
      • Constants
      • Exceptions
      • Http
        • Message
      • Log
      • Resource
      • Service
    • Compute
      • Constants
      • Exception
      • Resource
    • Database
      • Resource
    • DNS
      • Collection
      • Resource
    • Identity
      • Constants
      • Resource
    • Image
      • Enum
      • Resource
        • JsonPatch
        • Schema
    • LoadBalancer
      • Enum
      • Resource
    • ObjectStore
      • Constants
      • Exception
      • Resource
      • Upload
    • Orchestration
    • Queues
      • Exception
      • Resource
    • Volume
      • Resource
  • PHP

Classes

  • AbstractSchemaResource
  • Image
  • Member

Interfaces

  • ImageInterface
  • Overview
  • Namespace
  • Class
  • Tree
  • Download
  1: <?php
  2: /**
  3:  * Copyright 2012-2014 Rackspace US, Inc.
  4:  *
  5:  * Licensed under the Apache License, Version 2.0 (the "License");
  6:  * you may not use this file except in compliance with the License.
  7:  * You may obtain a copy of the License at
  8:  *
  9:  * http://www.apache.org/licenses/LICENSE-2.0
 10:  *
 11:  * Unless required by applicable law or agreed to in writing, software
 12:  * distributed under the License is distributed on an "AS IS" BASIS,
 13:  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 14:  * See the License for the specific language governing permissions and
 15:  * limitations under the License.
 16:  */
 17: 
 18: namespace OpenCloud\Image\Resource;
 19: 
 20: use OpenCloud\Common\Resource\BaseResource;
 21: 
 22: /**
 23:  * Class that represents abstracted functionality for JSON schema objects. Because the nature of these objects is so
 24:  * dynamic (i.e. their structure is determined by an API-generated schema document), they implement the \ArrayAccess
 25:  * SPL interface. This allows them to be accessed as arrays - which is very useful for undefined properties.
 26:  *
 27:  * @package OpenCloud\Images\Resource
 28:  * @codeCoverageIgnore
 29:  */
 30: abstract class AbstractSchemaResource extends BaseResource implements \ArrayAccess
 31: {
 32:     /** @var string The ID of this resource */
 33:     protected $id;
 34: 
 35:     /** @var array The internal elements of this model */
 36:     protected $data = array();
 37: 
 38:     /**
 39:      * @param array $data
 40:      */
 41:     public function setData(array $data)
 42:     {
 43:         $this->data = $data;
 44:     }
 45: 
 46:     /**
 47:      * @return array
 48:      */
 49:     public function getData()
 50:     {
 51:         return $this->data;
 52:     }
 53: 
 54:     /**
 55:      * @param $id
 56:      */
 57:     public function setId($id)
 58:     {
 59:         $this->id = (string) $id;
 60:     }
 61: 
 62:     /**
 63:      * @return string
 64:      */
 65:     public function getId()
 66:     {
 67:         return $this->id;
 68:     }
 69: 
 70:     /**
 71:      * Sets a value to a particular offset.
 72:      *
 73:      * @param mixed $offset
 74:      * @param mixed $value
 75:      */
 76:     public function offsetSet($offset, $value)
 77:     {
 78:         if ($offset === null) {
 79:             $this->data[] = $value;
 80:         } else {
 81:             $this->data[$offset] = $value;
 82:         }
 83:     }
 84: 
 85:     /**
 86:      * Checks to see whether a particular offset key exists.
 87:      *
 88:      * @param  mixed $offset
 89:      * @return bool
 90:      */
 91:     public function offsetExists($offset)
 92:     {
 93:         return array_key_exists($offset, $this->data);
 94:     }
 95: 
 96:     /**
 97:      * Unset a particular key.
 98:      *
 99:      * @param mixed $offset
100:      */
101:     public function offsetUnset($offset)
102:     {
103:         unset($this->data[$offset]);
104:     }
105: 
106:     /**
107:      * Get the value for a particular offset key.
108:      *
109:      * @param  mixed      $offset
110:      * @return mixed|null
111:      */
112:     public function offsetGet($offset)
113:     {
114:         return $this->offsetExists($offset) ? $this->data[$offset] : null;
115:     }
116: }
117: 
PHP OpenCloud API API documentation generated by ApiGen 2.8.0