Filter   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 72
Duplicated Lines 0 %

Test Coverage

Coverage 68.75%

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 8
c 1
b 1
f 0
dl 0
loc 72
ccs 11
cts 16
cp 0.6875
rs 10
wmc 7

7 Methods

Rating   Name   Duplication   Size   Complexity  
A getPreviousWord() 0 3 1
A current() 0 3 1
A getText() 0 3 1
A replace() 0 3 1
A __construct() 0 3 1
A getInnerIterator() 0 3 1
A getNextWord() 0 3 1
1
<?php
2
/**
3
 * AnalyzerText package.
4
 *
5
 * @author  Peter Gribanov <[email protected]>
6
 */
7
8
namespace AnalyzerText\Filter;
9
10
use AnalyzerText\Text;
11
use AnalyzerText\Text\Word;
12
13
/**
14
 * Фильтр итератор
15
 *
16
 * @author  Peter Gribanov <[email protected]>
17
 */
18
abstract class Filter extends \FilterIterator
19
{
20
    /**
21
     * @param Text $text
22
     */
23 12
    public function __construct(Text $text)
24
    {
25 12
        parent::__construct($text);
26 12
    }
27
28
    /**
29
     * Возвращает текущее слово.
30
     *
31
     * @return Word
32
     */
33 12
    public function current()
34
    {
35 12
        return $this->getInnerIterator()->current();
36
    }
37
38
    /**
39
     * Возвращает текст
40
     *
41
     * @return Text
42
     */
43 12
    public function getText()
44
    {
45 12
        return $this->getInnerIterator();
46
    }
47
48
    /**
49
     * Возвращает текст
50
     *
51
     * @return Text
52
     */
53 12
    public function getInnerIterator()
54
    {
55 12
        return parent::getInnerIterator();
56
    }
57
58
    /**
59
     * Заменяет слово в тексте.
60
     *
61
     * @param Word $word Слово
62
     */
63
    protected function replace(Word $word)
64
    {
65
        $this->getInnerIterator()->replace($word);
66
    }
67
68
    /**
69
     * Возвращает предыдущее слово.
70
     *
71
     * @param int $shift Смещение
72
     *
73
     * @return Word|null
74
     */
75
    protected function getPreviousWord($shift = 1)
76
    {
77
        return $this->getText()->offsetGet($this->getText()->key() + $shift * -1);
78
    }
79
80
    /**
81
     * Возвращает следующее слово.
82
     *
83
     * @param int $shift Смещение
84
     *
85
     * @return Word|null
86
     */
87 6
    protected function getNextWord($shift = 1)
88
    {
89 6
        return $this->getText()->offsetGet($this->getText()->key() + $shift);
90
    }
91
}
92