AbstractFilter::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 1
ccs 0
cts 0
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 2
1
<?php
2
3
/**
4
 * @file
5
 * Grafizzi\Graph\Filter\AbstractFilter: a component of the Grafizzi library.
6
 *
7
 * (c) 2012 Frédéric G. MARAND <[email protected]>
8
 *
9
 * Grafizzi is free software: you can redistribute it and/or modify it under the
10
 * terms of the GNU Lesser General Public License as published by the Free
11
 * Software Foundation, either version 3 of the License, or (at your option) any
12
 * later version.
13
 *
14
 * Grafizzi is distributed in the hope that it will be useful, but WITHOUT ANY
15
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
16
 * A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
17
 * details.
18
 *
19
 * You should have received a copy of the GNU Lesser General Public License
20
 * along with Grafizzi, in the COPYING.LESSER.txt file.  If not, see
21
 * <http://www.gnu.org/licenses/>
22
 */
23
24
namespace Grafizzi\Graph\Filter;
25
26
abstract class AbstractFilter implements FilterInterface {
27
28
  /**
29
   * Configuration of the filter instance.
30
   *
31
   * @var array
32
   */
33
  public $config;
34
35
  /**
36
   * Empty constructor provided because it is part of the interface.
37
   *
38
   * @param array $args
39
   */
40
  public function __construct(array $args = array()) {}
41
42
  /**
43
   * {@inheritdoc}
44
   */
45
  abstract public function filter($input);
46
47
  /**
48
   * Factory method for concrete filters.
49
   *
50
   * @param string $name
51
   * @param array $args
52
   *
53
   * @return FilterInterface
54
   *
55
   * @throws \DomainException
56
   */
57 3
  public static function create($name, array &$args = array()) {
58 3
    $className = __NAMESPACE__ . '\\' . ucfirst($name) . 'Filter';
59 3
    if (class_exists($className, true)) {
60 2
      $ret = new $className($args);
61
    }
62
    else {
63 1
      throw new \DomainException('Non existent filter "' . $name . '" (' . $className . ').');
64
    }
65 2
    return $ret;
66
  }
67
}
68