HTMLPurifier_ConfigSchema_Builder_ConfigSchema   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 22
dl 0
loc 38
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A build() 0 31 5
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
49