HEX
Server: Apache/2.4.65 (Unix) OpenSSL/1.1.1k
System: Linux server-manager.elshandawiily.com 4.18.0-553.87.1.el8_10.x86_64 #1 SMP Mon Dec 1 05:11:16 EST 2025 x86_64
User: elshanda (1002)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/elshanda/public_html/wp-content/plugins/mailpoet/lib/Validator/Builder.php
<?php declare(strict_types = 1);

namespace MailPoet\Validator;

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


use MailPoet\Validator\Schema\AnyOfSchema;
use MailPoet\Validator\Schema\ArraySchema;
use MailPoet\Validator\Schema\BooleanSchema;
use MailPoet\Validator\Schema\IntegerSchema;
use MailPoet\Validator\Schema\NullSchema;
use MailPoet\Validator\Schema\NumberSchema;
use MailPoet\Validator\Schema\ObjectSchema;
use MailPoet\Validator\Schema\OneOfSchema;
use MailPoet\Validator\Schema\StringSchema;

// See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/
class Builder {
  public static function string(): StringSchema {
    return new StringSchema();
  }

  public static function number(): NumberSchema {
    return new NumberSchema();
  }

  public static function integer(): IntegerSchema {
    return new IntegerSchema();
  }

  public static function boolean(): BooleanSchema {
    return new BooleanSchema();
  }

  public static function null(): NullSchema {
    return new NullSchema();
  }

  public static function array(Schema $items = null): ArraySchema {
    $array = new ArraySchema();
    return $items ? $array->items($items) : $array;
  }

  /** @param array<string, Schema>|null $properties */
  public static function object(array $properties = null): ObjectSchema {
    $object = new ObjectSchema();
    return $properties === null ? $object : $object->properties($properties);
  }

  /** @param Schema[] $schemas */
  public static function oneOf(array $schemas): OneOfSchema {
    return new OneOfSchema($schemas);
  }

  /** @param Schema[] $schemas */
  public static function anyOf(array $schemas): AnyOfSchema {
    return new AnyOfSchema($schemas);
  }
}