Code Duplication    Length = 41-41 lines in 3 locations

src/Reader/Mapper/Exif/ApertureFieldMapper.php 1 location

@@ 25-65 (lines=41) @@
22
 * @category    PHPExif
23
 * @package     Exiftool
24
 */
25
class ApertureFieldMapper implements FieldMapper
26
{
27
    use GuardInvalidArgumentsForExifTrait;
28
    use ValidKeysTrait;
29
30
    /**
31
     * @var array
32
     */
33
    private $validKeys = [
34
        'composite:aperture',
35
        'exififd:fnumber',
36
        'exififd:aperturevalue',
37
    ];
38
39
    /**
40
     * {@inheritDoc}
41
     */
42
    public function getSupportedFields()
43
    {
44
        return array(
45
            Aperture::class,
46
        );
47
    }
48
49
    /**
50
     * {@inheritDoc}
51
     */
52
    public function mapField($field, array $input, &$output)
53
    {
54
        $this->guardInvalidArguments($field, $input, $output);
55
56
        foreach ($this->validKeys as $key) {
57
            if (!array_key_exists($key, $input)) {
58
                continue;
59
            }
60
61
            $aperture = new Aperture($input[$key]);
62
            $output = $output->withAperture($aperture);
63
        }
64
    }
65
}
66

src/Reader/Mapper/Exif/ExposureTimeFieldMapper.php 1 location

@@ 25-65 (lines=41) @@
22
 * @category    PHPExif
23
 * @package     Exiftool
24
 */
25
class ExposureTimeFieldMapper implements FieldMapper
26
{
27
    use GuardInvalidArgumentsForExifTrait;
28
    use ValidKeysTrait;
29
30
    /**
31
     * @var array
32
     */
33
    private $validKeys = [
34
        'exififd:exposuretime',
35
        'composite:shutterspeed',
36
    ];
37
38
    /**
39
     * {@inheritDoc}
40
     */
41
    public function getSupportedFields()
42
    {
43
        return array(
44
            ExposureTime::class,
45
        );
46
    }
47
48
    /**
49
     * {@inheritDoc}
50
     */
51
    public function mapField($field, array $input, &$output)
52
    {
53
        $this->guardInvalidArguments($field, $input, $output);
54
55
        foreach ($this->validKeys as $key) {
56
            if (!array_key_exists($key, $input)) {
57
                continue;
58
            }
59
60
            $shutterSpeed = new ExposureTime($input[$key]);
61
            $output = $output->withExposureTime($shutterSpeed);
62
            break;
63
        }
64
    }
65
}
66

src/Reader/Mapper/Exif/FilenameFieldMapper.php 1 location

@@ 25-65 (lines=41) @@
22
 * @category    PHPExif
23
 * @package     Exiftool
24
 */
25
class FilenameFieldMapper implements FieldMapper
26
{
27
    use GuardInvalidArgumentsForExifTrait;
28
    use ValidKeysTrait;
29
30
    /**
31
     * @var array
32
     */
33
    private $validKeys = [
34
        'sourcefile',
35
        'system:filename',
36
    ];
37
38
    /**
39
     * {@inheritDoc}
40
     */
41
    public function getSupportedFields()
42
    {
43
        return array(
44
            Filename::class,
45
        );
46
    }
47
48
    /**
49
     * {@inheritDoc}
50
     */
51
    public function mapField($field, array $input, &$output)
52
    {
53
        $this->guardInvalidArguments($field, $input, $output);
54
55
        foreach ($this->validKeys as $key) {
56
            if (!array_key_exists($key, $input)) {
57
                continue;
58
            }
59
60
            $filename = new Filename($input[$key]);
61
            $output = $output->withFilename($filename);
62
            break;
63
        }
64
    }
65
}
66