Passed
Pull Request — master (#19)
by
unknown
02:19
created

AbstractSniff::getFile()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace BestIt\CodeSniffer;
4
5
use PHP_CodeSniffer_File;
6
use PHP_CodeSniffer_Sniff;
7
8
/**
9
 * Class AbstractSniff
10
 *
11
 * @package BestIt\Sniffs
12
 * @author Nick Lubisch <[email protected]>
13
 */
14
abstract class AbstractSniff implements PHP_CodeSniffer_Sniff
15
{
16
    /**
17
     * The CodeSniffer file.
18
     *
19
     * @var PHP_CodeSniffer_File
20
     */
21
    private $baseFile;
22
23
    /**
24
     * A deferred class of PHP_CodeSniffer_File
25
     *
26
     * @var File
27
     */
28
    private $file;
29
30
    /**
31
     * Stack of all tokens found in the file
32
     *
33
     * @var array
34
     */
35
    private $tokens;
36
37
    /**
38
     * Pointer of the listened token.
39
     *
40
     * @var int
41
     */
42
    private $listenerPtr;
43
44
    /**
45
     * Token data of listened token
46
     *
47
     * @var array
48
     */
49
    private $listenerToken;
50
51
    /**
52
     * Registers the tokens that this sniff wants to listen for.
53
     *
54
     * @return int[] Returns an array of tokens
55
     */
56 109
    public function register()
57
    {
58 109
        return $this->getRegisteredTokens();
59
    }
60
61
    /**
62
     * Called when one of the token types that this sniff is listening for is found.
63
     *
64
     * @param PHP_CodeSniffer_File $phpcsFile The PHP_CodeSniffer file where the token was found.
65
     * @param int $stackPtr The position in the PHP_CodeSniffer file's token stack where the token was found.
66
     *
67
     * @return void
68
     */
69 109
    public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
70
    {
71 109
        $this->baseFile = $phpcsFile;
72 109
        $this->file = new File($phpcsFile);
73 109
        $this->tokens = $phpcsFile->getTokens();
74 109
        $this->listenerPtr = $stackPtr;
75 109
        $this->listenerToken = $this->tokens[$stackPtr];
76
77 109
        $this->processToken();
78 109
    }
79
80
    /**
81
     * Getter for CodeSniffer file
82
     *
83
     * @return PHP_CodeSniffer_File The CodeSniffer file
84
     */
85
    public function getBaseFile()
86
    {
87
        return $this->baseFile;
88
    }
89
90
    /**
91
     * Getter for deferred PHP_CodeSniffer class.
92
     *
93
     * @return File The deferred CodeSniffer file
94
     */
95 109
    public function getFile()
96
    {
97 109
        return $this->file;
98
    }
99
100
    /**
101
     * Getter for token stack.
102
     *
103
     * @return array Array of token data indexed by pointer
104
     */
105
    public function getTokens()
106
    {
107
        return $this->tokens;
108
    }
109
110
    /**
111
     * Getter for listener pointer.
112
     *
113
     * @return int Returns pointer of the listened token
114
     */
115 109
    public function getListenerPointer()
116
    {
117 109
        return $this->listenerPtr;
118
    }
119
120
    /**
121
     * Getter for listener token data.
122
     *
123
     * @return array Returns token data of the listened token
124
     */
125 109
    public function getListenerToken()
126
    {
127 109
        return $this->listenerToken;
128
    }
129
130
    /**
131
     * Returns an array of registered tokens.
132
     *
133
     * @return int[] Returns array of tokens to listen for
134
     */
135
    abstract public function getRegisteredTokens();
136
137
    /**
138
     * Processes a found registered token.
139
     *
140
     * @return void
141
     */
142
    abstract public function processToken();
143
}
144