1 | <?php |
||
12 | class ExprNormalizer |
||
13 | { |
||
14 | /** |
||
15 | * @param mixed $expression |
||
16 | * |
||
17 | * @return ExpressionInterface |
||
18 | */ |
||
19 | 34 | public static function normalizeExpression($expression) |
|
20 | { |
||
21 | 34 | switch (true) { |
|
22 | 34 | case $expression instanceof ExpressionInterface: |
|
23 | 24 | return $expression; |
|
24 | 34 | case is_array($expression): |
|
25 | 31 | return static::normalizeArray($expression); |
|
26 | 31 | case '' === $expression || null === $expression: |
|
27 | 1 | return new EmptyExpression(); |
|
28 | 30 | case is_scalar($expression): |
|
29 | 29 | return new RawExpression($expression); |
|
30 | } |
||
31 | |||
32 | 1 | throw new \InvalidArgumentException('Invalid argument.'); |
|
33 | } |
||
34 | |||
35 | /** |
||
36 | * @param array $expressions |
||
37 | * |
||
38 | * @return ExpressionInterface |
||
39 | */ |
||
40 | 31 | public static function normalizeArray(array $expressions) |
|
57 | } |