FileFactory   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 4
dl 0
loc 61
ccs 18
cts 18
cp 1
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 11 1
A create() 0 16 1
A ensureFileExists() 0 9 3
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\File;
9
10
use Nette\FileNotFoundException;
11
use Symplify\PHP7_CodeSniffer\Application\Fixer;
12
use Symplify\PHP7_CodeSniffer\Parser\EolCharDetector;
13
use Symplify\PHP7_CodeSniffer\Parser\FileToTokensParser;
14
use Symplify\PHP7_CodeSniffer\Report\ErrorDataCollector;
15
16
final class FileFactory
17
{
18
    /**
19
     * @var Fixer
20
     */
21
    private $fixer;
22
23
    /**
24
     * @var ErrorDataCollector
25
     */
26
    private $reportCollector;
27
28
    /**
29
     * @var FileToTokensParser
30
     */
31
    private $fileToTokenParser;
32
33
    /**
34
     * @var EolCharDetector
35
     */
36
    private $eolCharDetector;
37
38 16
    public function __construct(
39
        Fixer $fixer,
40
        ErrorDataCollector $reportCollector,
41
        FileToTokensParser $fileToTokenParser,
42
        EolCharDetector $eolCharDetector
43
    ) {
44 16
        $this->fixer = $fixer;
45 16
        $this->reportCollector = $reportCollector;
46 16
        $this->fileToTokenParser = $fileToTokenParser;
47 16
        $this->eolCharDetector = $eolCharDetector;
48 16
    }
49
50 15
    public function create(string $filePath, bool $isFixer) : File
51
    {
52 15
        $this->ensureFileExists($filePath);
53
54 14
        $tokens = $this->fileToTokenParser->parseFromFilePath($filePath);
55 14
        $eolChar = $this->eolCharDetector->detectForFilePath($filePath);
56
57 14
        return new File(
58
            $filePath,
59
            $tokens,
60 14
            $this->fixer,
61 14
            $this->reportCollector,
62
            $isFixer,
63
            $eolChar
64
        );
65
    }
66
67 15
    private function ensureFileExists(string $filePath)
68
    {
69 15
        if (!is_file($filePath) || !file_exists($filePath)) {
70 1
            throw new FileNotFoundException(sprintf(
71 1
                'File "%s" was not found.',
72
                $filePath
73
            ));
74
        }
75 14
    }
76
}
77