. */ /** * Maarch IVS - Validation Rule * * @package MaarchIVS * @author Cyril Vazquez (Maarch) */ class ValidationRule { /** * Name of the rule * @var string */ public $name; /** * Missing parameter behaviour * @var string */ public $mode; /** * Parameters * @var array */ public $parameters; /** * Constructor * @param string $name The name of the rule * @param string $mode The missing parameter behaviour * * @return void **/ public function __construct($name, $mode='error') { $this->name = $name; $this->mode = $mode; } /** * Add a parameter * @param string $name The parameter name * * @return ValidationParameter **/ public function addParameter($name) { $parameter = new ValidationParameter($name); $this->parameters[$name] = $parameter; return $parameter; } /** * Extend a base validation rule * @param ValidationRule $base */ public function extend($base) { foreach ($base->parameters as $name => $baseParameter) { // New parameter added if (!isset($this->parameters[$name])) { $this->parameters[$name] = $baseParameter; } } } }