FileField   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 0
Metric Value
dl 0
loc 30
c 0
b 0
f 0
wmc 4
lcom 0
cbo 4
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A handles() 0 3 1
A inflate() 0 6 2
A getDescription() 0 2 1
1
<?php
2
namespace rtens\domin\delivery\cli\fields;
3
4
use rtens\domin\delivery\cli\CliField;
5
use rtens\domin\Parameter;
6
use rtens\domin\parameters\File;
7
use rtens\domin\parameters\file\MemoryFile;
8
use rtens\domin\parameters\file\SavedFile;
9
use watoki\reflect\type\ClassType;
10
11
class FileField implements CliField {
12
13
    /**
14
     * @param Parameter $parameter
15
     * @return bool
16
     */
17
    public function handles(Parameter $parameter) {
18
        return $parameter->getType() == new ClassType(File::class);
19
    }
20
21
    /**
22
     * @param Parameter $parameter
23
     * @param string $serialized
24
     * @return File
25
     * @throws \Exception
26
     */
27
    public function inflate(Parameter $parameter, $serialized) {
28
        if (!is_file($serialized)) {
29
            return new MemoryFile('unknown', 'unknown');
30
        }
31
        return new SavedFile($serialized, basename($serialized), 'file');
32
    }
33
34
    /**
35
     * @param Parameter $parameter
36
     * @return string
37
     */
38
    public function getDescription(Parameter $parameter) {
39
    }
40
}