ex

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Committer:
TMBOY
Date:
Tue Jul 18 16:27:22 2017 +0800
Revision:
44:c1d8923072ba
?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TMBOY 44:c1d8923072ba 1 <?php
TMBOY 44:c1d8923072ba 2
TMBOY 44:c1d8923072ba 3 namespace JsonSchema\Uri\Retrievers;
TMBOY 44:c1d8923072ba 4
TMBOY 44:c1d8923072ba 5 use JsonSchema\Validator;
TMBOY 44:c1d8923072ba 6
TMBOY 44:c1d8923072ba 7 /**
TMBOY 44:c1d8923072ba 8 * URI retrieved based on a predefined array of schemas
TMBOY 44:c1d8923072ba 9 *
TMBOY 44:c1d8923072ba 10 * @example
TMBOY 44:c1d8923072ba 11 *
TMBOY 44:c1d8923072ba 12 * $retriever = new PredefinedArray(array(
TMBOY 44:c1d8923072ba 13 * 'http://acme.com/schemas/person#' => '{ ... }',
TMBOY 44:c1d8923072ba 14 * 'http://acme.com/schemas/address#' => '{ ... }',
TMBOY 44:c1d8923072ba 15 * ))
TMBOY 44:c1d8923072ba 16 *
TMBOY 44:c1d8923072ba 17 * $schema = $retriever->retrieve('http://acme.com/schemas/person#');
TMBOY 44:c1d8923072ba 18 */
TMBOY 44:c1d8923072ba 19 class PredefinedArray extends AbstractRetriever
TMBOY 44:c1d8923072ba 20 {
TMBOY 44:c1d8923072ba 21 /**
TMBOY 44:c1d8923072ba 22 * Contains schemas as URI => JSON
TMBOY 44:c1d8923072ba 23 * @var array
TMBOY 44:c1d8923072ba 24 */
TMBOY 44:c1d8923072ba 25 private $schemas;
TMBOY 44:c1d8923072ba 26
TMBOY 44:c1d8923072ba 27 /**
TMBOY 44:c1d8923072ba 28 * Constructor
TMBOY 44:c1d8923072ba 29 *
TMBOY 44:c1d8923072ba 30 * @param array $schemas
TMBOY 44:c1d8923072ba 31 * @param string $contentType
TMBOY 44:c1d8923072ba 32 */
TMBOY 44:c1d8923072ba 33 public function __construct(array $schemas, $contentType = Validator::SCHEMA_MEDIA_TYPE)
TMBOY 44:c1d8923072ba 34 {
TMBOY 44:c1d8923072ba 35 $this->schemas = $schemas;
TMBOY 44:c1d8923072ba 36 $this->contentType = $contentType;
TMBOY 44:c1d8923072ba 37 }
TMBOY 44:c1d8923072ba 38
TMBOY 44:c1d8923072ba 39 /**
TMBOY 44:c1d8923072ba 40 * {@inheritDoc}
TMBOY 44:c1d8923072ba 41 * @see \JsonSchema\Uri\Retrievers\UriRetrieverInterface::retrieve()
TMBOY 44:c1d8923072ba 42 */
TMBOY 44:c1d8923072ba 43 public function retrieve($uri)
TMBOY 44:c1d8923072ba 44 {
TMBOY 44:c1d8923072ba 45 if (!array_key_exists($uri, $this->schemas)) {
TMBOY 44:c1d8923072ba 46 throw new \JsonSchema\Exception\ResourceNotFoundException(sprintf(
TMBOY 44:c1d8923072ba 47 'The JSON schema "%s" was not found.',
TMBOY 44:c1d8923072ba 48 $uri
TMBOY 44:c1d8923072ba 49 ));
TMBOY 44:c1d8923072ba 50 }
TMBOY 44:c1d8923072ba 51
TMBOY 44:c1d8923072ba 52 return $this->schemas[$uri];
TMBOY 44:c1d8923072ba 53 }
TMBOY 44:c1d8923072ba 54 }