4 * Decorator for interchange that performs validations
6 class HTMLPurifier_ConfigSchema_InterchangeValidator
8 protected $interchange;
9 protected $validators = array();
10 protected $namespaceValidators = array();
11 protected $directiveValidators = array();
14 * @param $interchange Instance of HTMLPurifier_ConfigSchema_Interchange
17 public function __construct($interchange) {
18 $this->interchange
= $interchange;
22 * Registers a HTMLPurifier_ConfigSchema_Validator to run when adding.
24 public function addValidator($validator) {
25 $this->addNamespaceValidator($validator);
26 $this->addDirectiveValidator($validator);
30 * Register validators to be used only on directives
32 public function addDirectiveValidator($validator) {
33 $this->directiveValidators
[] = $validator;
37 * Register validators to be used only on namespaces
39 public function addNamespaceValidator($validator) {
40 $this->namespaceValidators
[] = $validator;
44 * Validates and adds a namespace hash
46 public function addNamespace($hash) {
47 foreach ($this->namespaceValidators
as $validator) {
48 $validator->validate($hash, $this->interchange
);
50 $this->interchange
->addNamespace($hash);
54 * Validates and adds a directive hash
56 public function addDirective($hash) {
57 foreach ($this->directiveValidators
as $validator) {
58 $validator->validate($hash, $this->interchange
);
60 $this->interchange
->addDirective($hash);