Seditio Source
Root |
./othercms/dle15_0/upload/engine/classes/composer/vendor/aws/aws-sdk-php/src/Api/StructureShape.php
<?php
namespace Aws\Api;

/**
 * Represents a structure shape and resolve member shape references.
 */
class StructureShape extends Shape
{
   
/**
     * @var Shape[]
     */
   
private $members;

    public function
__construct(array $definition, ShapeMap $shapeMap)
    {
       
$definition['type'] = 'structure';

        if (!isset(
$definition['members'])) {
           
$definition['members'] = [];
        }

       
parent::__construct($definition, $shapeMap);
    }

   
/**
     * Gets a list of all members
     *
     * @return Shape[]
     */
   
public function getMembers()
    {
        if (empty(
$this->members)) {
           
$this->generateMembersHash();
        }

        return
$this->members;
    }

   
/**
     * Check if a specific member exists by name.
     *
     * @param string $name Name of the member to check
     *
     * @return bool
     */
   
public function hasMember($name)
    {
        return isset(
$this->definition['members'][$name]);
    }

   
/**
     * Retrieve a member by name.
     *
     * @param string $name Name of the member to retrieve
     *
     * @return Shape
     * @throws \InvalidArgumentException if the member is not found.
     */
   
public function getMember($name)
    {
       
$members = $this->getMembers();

        if (!isset(
$members[$name])) {
            throw new \
InvalidArgumentException('Unknown member ' . $name);
        }

        return
$members[$name];
    }


    private function
generateMembersHash()
    {
       
$this->members = [];

        foreach (
$this->definition['members'] as $name => $definition) {
           
$this->members[$name] = $this->shapeFor($definition);
        }
    }
}