. namespace core_external; /** * Common ancestor of all parameter description classes * * @package core_external * @copyright 2009 Petr Skodak * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ abstract class external_description { /** @var string Description of element */ public $desc; /** @var bool Element value required, null not allowed */ public $required; /** @var mixed Default value */ public $default; /** * Contructor. * * @param string $desc Description of element * @param int $required Whether the element value is required. Valid values are VALUE_DEFAULT, VALUE_REQUIRED, VALUE_OPTIONAL. * @param mixed $default The default value */ public function __construct($desc, $required, $default) { if (!in_array($required, [VALUE_DEFAULT, VALUE_REQUIRED, VALUE_OPTIONAL], true)) { $requiredstr = $required; if (is_array($required)) { $requiredstr = "Array: " . implode(" ", $required); } debugging("Invalid \$required parameter value: '{$requiredstr}' . It must be either VALUE_DEFAULT, VALUE_REQUIRED, or VALUE_OPTIONAL", DEBUG_DEVELOPER); } $this->desc = $desc; $this->required = $required; $this->default = $default; } }