Completed
Push — master ( 3b5f38...c5ceed )
by Tomáš
04:59
created

FileFactory::create()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 14
ccs 0
cts 13
cp 0
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 10
nc 1
nop 1
crap 2
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 Symplify\PHP7_CodeSniffer\Configuration\Configuration;
11
use Symplify\PHP7_CodeSniffer\File\File;
12
use Symplify\PHP7_CodeSniffer\Fixer;
13
use Symplify\PHP7_CodeSniffer\ErrorDataCollector;
14
use Symplify\PHP7_CodeSniffer\Parser\EolCharDetector;
15
use Symplify\PHP7_CodeSniffer\Parser\FileToTokensParser;
16
use Symplify\PHP7_CodeSniffer\Ruleset;
17
18
final class FileFactory
19
{
20
    /**
21
     * @var Fixer
22
     */
23
    private $fixer;
24
25
    /**
26
     * @var ErrorDataCollector
27
     */
28
    private $reportCollector;
29
30
    /**
31
     * @var Configuration
32
     */
33
    private $configuration;
34
35
    /**
36
     * @var FileToTokensParser
37
     */
38
    private $fileToTokenParser;
39
    
40
    /**
41
     * @var EolCharDetector
42
     */
43
    private $eolCharDetector;
44
45
    public function __construct(
46
        Fixer $fixer,
47
        ErrorDataCollector $reportCollector,
48
        Configuration $configuration,
49
        FileToTokensParser $fileToTokenParser,
50
        EolCharDetector $eolCharDetector
51
    ) {
52
        $this->fixer = $fixer;
53
        $this->reportCollector = $reportCollector;
54
        $this->configuration = $configuration;
55
        $this->fileToTokenParser = $fileToTokenParser;
56
        $this->eolCharDetector = $eolCharDetector;
57
    }
58
59
    public function create(string $filePath) : File
60
    {
61
        $tokens = $this->fileToTokenParser->parseFromFilePath($filePath);
62
        $eolChar = $this->eolCharDetector->detectForFilePath($filePath);
63
64
        return new File(
65
            $filePath,
66
            $tokens,
67
            $this->fixer,
68
            $this->reportCollector,
69
            $this->configuration->isFixer(),
70
            $eolChar
71
        );
72
    }
73
}
74