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

FileFactory   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 4
dl 0
loc 56
ccs 0
cts 26
cp 0
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 13 1
A create() 0 14 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\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