AlkantarClanX12
Current Path : /home/thanudqk/128shen.com/wp-content/plugins/w3-total-cache/lib/Aws/Aws/Api/ |
Current File : /home/thanudqk/128shen.com/wp-content/plugins/w3-total-cache/lib/Aws/Aws/Api/AbstractModel.php |
<?php namespace Aws\Api; /** * Base class that is used by most API shapes */ abstract class AbstractModel implements \ArrayAccess { /** @var array */ protected $definition; /** @var ShapeMap */ protected $shapeMap; /** * @param array $definition Service description * @param ShapeMap $shapeMap Shapemap used for creating shapes */ public function __construct(array $definition, ShapeMap $shapeMap) { $this->definition = $definition; $this->shapeMap = $shapeMap; } public function toArray() { return $this->definition; } public function offsetGet($offset) { return isset($this->definition[$offset]) ? $this->definition[$offset] : null; } public function offsetSet($offset, $value) { $this->definition[$offset] = $value; } public function offsetExists($offset) { return isset($this->definition[$offset]); } public function offsetUnset($offset) { unset($this->definition[$offset]); } protected function shapeAt($key) { if (!isset($this->definition[$key])) { throw new \InvalidArgumentException('Expected shape definition at ' . $key); } return $this->shapeFor($this->definition[$key]); } protected function shapeFor(array $definition) { return isset($definition['shape']) ? $this->shapeMap->resolve($definition) : Shape::create($definition, $this->shapeMap); } }