PluginProbe
Media Cloud Sync / 1.2.13
Media Cloud Sync v1.2.13
1.4.1 1.4.0 1.3.12 1.3.11 1.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.2.0 1.2.10 1.2.11 1.2.12 1.2.13 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 All 35 releases
media-cloud-sync / includes / sdk / s3 / Aws / Api / StructureShape.php

StructureShape.php in Media Cloud Sync 1.2.13, at includes/sdk/s3/Aws/Api/StructureShape.php

69 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Dudlewebs\WPMCS\s3\Aws\Api;
4
5 /**
6 * Represents a structure shape and resolve member shape references.
7 */
8 class StructureShape extends Shape
9 {
10 /**
11 * @var Shape[]
12 */
13 private $members;
14 public function __construct(array $definition, ShapeMap $shapeMap)
15 {
16 $definition['type'] = 'structure';
17 if (!isset($definition['members'])) {
18 $definition['members'] = [];
19 }
20 parent::__construct($definition, $shapeMap);
21 }
22 /**
23 * Gets a list of all members
24 *
25 * @return Shape[]
26 */
27 public function getMembers()
28 {
29 if (empty($this->members)) {
30 $this->generateMembersHash();
31 }
32 return $this->members;
33 }
34 /**
35 * Check if a specific member exists by name.
36 *
37 * @param string $name Name of the member to check
38 *
39 * @return bool
40 */
41 public function hasMember($name)
42 {
43 return isset($this->definition['members'][$name]);
44 }
45 /**
46 * Retrieve a member by name.
47 *
48 * @param string $name Name of the member to retrieve
49 *
50 * @return Shape
51 * @throws \InvalidArgumentException if the member is not found.
52 */
53 public function getMember($name)
54 {
55 $members = $this->getMembers();
56 if (!isset($members[$name])) {
57 throw new \InvalidArgumentException('Unknown member ' . $name);
58 }
59 return $members[$name];
60 }
61 private function generateMembersHash()
62 {
63 $this->members = [];
64 foreach ($this->definition['members'] as $name => $definition) {
65 $this->members[$name] = $this->shapeFor($definition);
66 }
67 }
68 }
69