summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-sdk-php/src/Api/Shape.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Api/Shape.php')
-rw-r--r--vendor/aws/aws-sdk-php/src/Api/Shape.php77
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;
+ }
+}