| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | 
							- <?php
 
- namespace Aws\Api\Parser;
 
- use Aws\Api\DateTimeResult;
 
- use Aws\Api\Shape;
 
- use Psr\Http\Message\ResponseInterface;
 
- trait MetadataParserTrait
 
- {
 
-     /**
 
-      * Extract a single header from the response into the result.
 
-      */
 
-     protected function extractHeader(
 
-         $name,
 
-         Shape $shape,
 
-         ResponseInterface $response,
 
-         &$result
 
-     ) {
 
-         $value = $response->getHeaderLine($shape['locationName'] ?: $name);
 
-         switch ($shape->getType()) {
 
-             case 'float':
 
-             case 'double':
 
-                 $value = (float) $value;
 
-                 break;
 
-             case 'long':
 
-                 $value = (int) $value;
 
-                 break;
 
-             case 'boolean':
 
-                 $value = filter_var($value, FILTER_VALIDATE_BOOLEAN);
 
-                 break;
 
-             case 'blob':
 
-                 $value = base64_decode($value);
 
-                 break;
 
-             case 'timestamp':
 
-                 try {
 
-                     $value = DateTimeResult::fromTimestamp(
 
-                         $value,
 
-                         !empty($shape['timestampFormat']) ? $shape['timestampFormat'] : null
 
-                     );
 
-                     break;
 
-                 } catch (\Exception $e) {
 
-                     // If the value cannot be parsed, then do not add it to the
 
-                     // output structure.
 
-                     return;
 
-                 }
 
-             case 'string':
 
-                 if ($shape['jsonvalue']) {
 
-                     $value = $this->parseJson(base64_decode($value), $response);
 
-                 }
 
-                 break;
 
-         }
 
-         $result[$name] = $value;
 
-     }
 
-     /**
 
-      * Extract a map of headers with an optional prefix from the response.
 
-      */
 
-     protected function extractHeaders(
 
-         $name,
 
-         Shape $shape,
 
-         ResponseInterface $response,
 
-         &$result
 
-     ) {
 
-         // Check if the headers are prefixed by a location name
 
-         $result[$name] = [];
 
-         $prefix = $shape['locationName'];
 
-         $prefixLen = strlen($prefix);
 
-         foreach ($response->getHeaders() as $k => $values) {
 
-             if (!$prefixLen) {
 
-                 $result[$name][$k] = implode(', ', $values);
 
-             } elseif (stripos($k, $prefix) === 0) {
 
-                 $result[$name][substr($k, $prefixLen)] = implode(', ', $values);
 
-             }
 
-         }
 
-     }
 
-     /**
 
-      * Places the status code of the response into the result array.
 
-      */
 
-     protected function extractStatus(
 
-         $name,
 
-         ResponseInterface $response,
 
-         array &$result
 
-     ) {
 
-         $result[$name] = (int) $response->getStatusCode();
 
-     }
 
- }
 
 
  |