File "EndpointContainer.php"

Full Path: /home/warrior1/public_html/wp-content/plugins/mailpoet/lib/API/REST/EndpointContainer.php
File size: 662 bytes
MIME-type: text/x-php
Charset: utf-8

<?php declare(strict_types = 1);

namespace MailPoet\API\REST;

if (!defined('ABSPATH')) exit;


use MailPoet\InvalidStateException;
use MailPoetVendor\Psr\Container\ContainerInterface;

class EndpointContainer {
  /** @var ContainerInterface */
  private $container;

  public function __construct(
    ContainerInterface $container
  ) {
    $this->container = $container;
  }

  public function get(string $class): Endpoint {
    $endpoint = $this->container->get($class);
    if (!$endpoint instanceof Endpoint) {
      throw new InvalidStateException(sprintf("Class '%s' doesn't implement '%s'", $class, Endpoint::class));
    }
    return $endpoint;
  }
}