Yaffs site version 1.1
[yaffs-website] / vendor / ezyang / htmlpurifier / library / HTMLPurifier / ConfigSchema / Builder / ConfigSchema.php
1 <?php
2
3 /**
4  * Converts HTMLPurifier_ConfigSchema_Interchange to our runtime
5  * representation used to perform checks on user configuration.
6  */
7 class HTMLPurifier_ConfigSchema_Builder_ConfigSchema
8 {
9
10     /**
11      * @param HTMLPurifier_ConfigSchema_Interchange $interchange
12      * @return HTMLPurifier_ConfigSchema
13      */
14     public function build($interchange)
15     {
16         $schema = new HTMLPurifier_ConfigSchema();
17         foreach ($interchange->directives as $d) {
18             $schema->add(
19                 $d->id->key,
20                 $d->default,
21                 $d->type,
22                 $d->typeAllowsNull
23             );
24             if ($d->allowed !== null) {
25                 $schema->addAllowedValues(
26                     $d->id->key,
27                     $d->allowed
28                 );
29             }
30             foreach ($d->aliases as $alias) {
31                 $schema->addAlias(
32                     $alias->key,
33                     $d->id->key
34                 );
35             }
36             if ($d->valueAliases !== null) {
37                 $schema->addValueAliases(
38                     $d->id->key,
39                     $d->valueAliases
40                 );
41             }
42         }
43         $schema->postProcess();
44         return $schema;
45     }
46 }
47
48 // vim: et sw=4 sts=4