PHP Classes

File: application/modules/extensions/aws/Aws/Api/StructureShape.php

Recommend this page to a friend!
  Classes of Tran Tuan   Pretty PHP S3 Files Manager   application/modules/extensions/aws/Aws/Api/StructureShape.php   Download  
File: application/modules/extensions/aws/Aws/Api/StructureShape.php
Role: Application script
Content type: text/plain
Description: Application script
Class: Pretty PHP S3 Files Manager
Web based interface to manage files in Amazon S3
Author: By
Last change:
Date: 8 years ago
Size: 1,687 bytes
 

Contents

Class file image Download
<?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);
        }
    }
}