Fixer   A
last analyzed

Complexity

Total Complexity 14

Size/Duplication

Total Lines 93
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 97.22%

Importance

Changes 0
Metric Value
wmc 14
lcom 1
cbo 1
dl 0
loc 93
ccs 35
cts 36
cp 0.9722
rs 10
c 0
b 0
f 0

11 Methods

Rating   Name   Duplication   Size   Complexity  
A startFile() 0 15 3
A getContents() 0 4 1
A getTokenContent() 0 4 1
A replaceToken() 0 5 1
A addContent() 0 5 1
A addContentBefore() 0 5 1
A addNewline() 0 4 1
A addNewlineBefore() 0 4 1
A substrToken() 0 12 2
A beginChangeset() 0 3 1
A endChangeset() 0 3 1
1
<?php
2
3
/*
4
 * This file is part of Symplify
5
 * Copyright (c) 2016 Tomas Votruba (http://tomasvotruba.cz).
6
 */
7
8
namespace Symplify\PHP7_CodeSniffer\Application;
9
10
use Symplify\PHP7_CodeSniffer\File\File;
11
12
final class Fixer
13
{
14
    /**
15
     * @var File
16
     */
17
    private $currentFile;
18
19
    /**
20
     * @var string[]|array<int, string>
21
     */
22
    private $tokens = [];
23
24 7
    public function startFile(File $file)
25
    {
26 7
        $this->currentFile = $file;
27
28 7
        $tokens = $file->getTokens();
29
30 7
        $this->tokens = [];
31 7
        foreach ($tokens as $index => $token) {
32 7
            if (isset($token['orig_content']) === true) {
33
                $this->tokens[$index] = $token['orig_content'];
34
            } else {
35 7
                $this->tokens[$index] = $token['content'];
36
            }
37
        }
38 7
    }
39
40 3
    public function getContents() : string
41
    {
42 3
        return implode($this->tokens);
43
    }
44
45 4
    public function getTokenContent(int $stackPtr) : string
46
    {
47 4
        return $this->tokens[$stackPtr];
48
    }
49
50 4
    public function replaceToken(int $stackPtr, string $content) : bool
51
    {
52 4
        $this->tokens[$stackPtr] = $content;
53 4
        return true;
54
    }
55
56 2
    public function addContent(int $stackPtr, string $content) : bool
57
    {
58 2
        $current = $this->getTokenContent($stackPtr);
59 2
        return $this->replaceToken($stackPtr, $current.$content);
60
    }
61
62 2
    public function addContentBefore(int $stackPtr, string $content) : bool
63
    {
64 2
        $current = $this->getTokenContent($stackPtr);
65 2
        return $this->replaceToken($stackPtr, $content.$current);
66
    }
67
68 1
    public function addNewline(int $stackPtr) : bool
69
    {
70 1
        return $this->addContent($stackPtr, $this->currentFile->eolChar);
71
    }
72
73 1
    public function addNewlineBefore(int $stackPtr) : bool
74
    {
75 1
        return $this->addContentBefore($stackPtr, $this->currentFile->eolChar);
76
    }
77
78 1
    public function substrToken(int $stackPtr, int $start, int $length = null) : bool
79
    {
80 1
        $current = $this->getTokenContent($stackPtr);
81
82 1
        if ($length !== null) {
83 1
            $newContent = substr($current, $start, $length);
84
        } else {
85 1
            $newContent = substr($current, $start);
86
        }
87
88 1
        return $this->replaceToken($stackPtr, $newContent);
89
    }
90
91
    /**
92
     * Needed for legacy compatibility.
93
     */
94 1
    public function beginChangeset()
95
    {
96 1
    }
97
98
    /**
99
     * Needed for legacy compatibility.
100
     */
101 1
    public function endChangeset()
102
    {
103 1
    }
104
}
105