1 | <?php |
||
16 | abstract class AbstractLineBeforeClassEnd implements FileTool { |
||
17 | |||
18 | /** |
||
19 | * @var int |
||
20 | */ |
||
21 | private $linesNum = 1; |
||
22 | |||
23 | |||
24 | /** |
||
25 | * @param File $file |
||
26 | * @return boolean |
||
27 | */ |
||
28 | public function canProcess(File $file) { |
||
31 | |||
32 | |||
33 | /** |
||
34 | * @param int $linesNum |
||
35 | * @return $this |
||
36 | */ |
||
37 | 4 | public function setLinesNum($linesNum) { |
|
44 | |||
45 | |||
46 | /** |
||
47 | * @return int |
||
48 | */ |
||
49 | 4 | public function getLinesNum() { |
|
52 | |||
53 | |||
54 | /** |
||
55 | * @param Collection $collection |
||
56 | * @return Collection |
||
57 | */ |
||
58 | 4 | protected function getInvalidTokens(Collection $collection) { |
|
59 | |||
60 | 4 | $resultCollection = new Collection(); |
|
61 | 4 | $classBody = (new Pattern($collection))->apply((new ClassPattern()))->getCollections(); |
|
62 | 4 | if (empty($classBody)) { |
|
63 | return $resultCollection; |
||
64 | } |
||
65 | |||
66 | 4 | foreach ($classBody as $body) { |
|
67 | 4 | if ($body->count() === 0) { |
|
68 | continue; |
||
69 | } |
||
70 | |||
71 | 4 | $resultCollection->append($body->getLast()); |
|
72 | } |
||
73 | |||
74 | |||
75 | 4 | foreach ($resultCollection as $index => $token) { |
|
76 | 4 | if ($this->isValidBodyEndToken($token)) { |
|
77 | 4 | $resultCollection->offsetUnset($index); |
|
78 | } |
||
79 | } |
||
80 | |||
81 | 4 | $resultCollection->rewind(); |
|
82 | |||
83 | 4 | return $resultCollection; |
|
84 | } |
||
85 | |||
86 | |||
87 | /** |
||
88 | * @param Token $token |
||
89 | * @return bool |
||
90 | */ |
||
91 | 4 | protected function isValidBodyEndToken(Token $token) { |
|
102 | |||
103 | } |