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/ShapeMap.php |
<?php namespace Aws\Api; /** * Builds shape based on shape references. */ class ShapeMap { /** @var array */ private $definitions; /** @var Shape[] */ private $simple; /** * @param array $shapeModels Associative array of shape definitions. */ public function __construct(array $shapeModels) { $this->definitions = $shapeModels; } /** * Get an array of shape names. * * @return array */ public function getShapeNames() { return array_keys($this->definitions); } /** * Resolve a shape reference * * @param array $shapeRef Shape reference shape * * @return Shape * @throws \InvalidArgumentException */ public function resolve(array $shapeRef) { $shape = $shapeRef['shape']; if (!isset($this->definitions[$shape])) { throw new \InvalidArgumentException('Shape not found: ' . $shape); } $isSimple = count($shapeRef) == 1; if ($isSimple && isset($this->simple[$shape])) { return $this->simple[$shape]; } $definition = $shapeRef + $this->definitions[$shape]; $definition['name'] = $definition['shape']; unset($definition['shape']); $result = Shape::create($definition, $this); if ($isSimple) { $this->simple[$shape] = $result; } return $result; } }