diff options
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Api/Shape.php')
-rw-r--r-- | vendor/aws/aws-sdk-php/src/Api/Shape.php | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/vendor/aws/aws-sdk-php/src/Api/Shape.php b/vendor/aws/aws-sdk-php/src/Api/Shape.php new file mode 100644 index 0000000..b1b8071 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Api/Shape.php @@ -0,0 +1,77 @@ +<?php +namespace Aws\Api; + +/** + * Base class representing a modeled shape. + */ +class Shape extends AbstractModel +{ + /** + * Get a concrete shape for the given definition. + * + * @param array $definition + * @param ShapeMap $shapeMap + * + * @return mixed + * @throws \RuntimeException if the type is invalid + */ + public static function create(array $definition, ShapeMap $shapeMap) + { + static $map = [ + 'structure' => 'Aws\Api\StructureShape', + 'map' => 'Aws\Api\MapShape', + 'list' => 'Aws\Api\ListShape', + 'timestamp' => 'Aws\Api\TimestampShape', + 'integer' => 'Aws\Api\Shape', + 'double' => 'Aws\Api\Shape', + 'float' => 'Aws\Api\Shape', + 'long' => 'Aws\Api\Shape', + 'string' => 'Aws\Api\Shape', + 'byte' => 'Aws\Api\Shape', + 'character' => 'Aws\Api\Shape', + 'blob' => 'Aws\Api\Shape', + 'boolean' => 'Aws\Api\Shape' + ]; + + if (isset($definition['shape'])) { + return $shapeMap->resolve($definition); + } + + if (!isset($map[$definition['type']])) { + throw new \RuntimeException('Invalid type: ' + . print_r($definition, true)); + } + + $type = $map[$definition['type']]; + + return new $type($definition, $shapeMap); + } + + /** + * Get the type of the shape + * + * @return string + */ + public function getType() + { + return $this->definition['type']; + } + + /** + * Get the name of the shape + * + * @return string + */ + public function getName() + { + return $this->definition['name']; + } + + /** + * Get a context param definition. + */ + public function getContextParam() + { + return $this->contextParam; + } +} |