Failed Conditions
Push — v7 ( 0b17f0...b3d8c9 )
by Florent
02:08
created

JWESerializerManagerFactory::all()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * The MIT License (MIT)
7
 *
8
 * Copyright (c) 2014-2017 Spomky-Labs
9
 *
10
 * This software may be modified and distributed under the terms
11
 * of the MIT license.  See the LICENSE file for details.
12
 */
13
14
namespace Jose\Component\Encryption\Serializer;
15
16
/**
17
 * Class JWESerializerManagerFactory.
18
 */
19
final class JWESerializerManagerFactory
20
{
21
    /**
22
     * @var JWESerializerInterface[]
23
     */
24
    private $serializers = [];
25
26
    /**
27
     * @param string[] $names
28
     *
29
     * @return JWESerializerManager
30
     */
31
    public function create(array $names): JWESerializerManager
32
    {
33
        $serializers = [];
34
        foreach ($names as $name) {
35
            if (!array_key_exists($name, $this->serializers)) {
36
                throw new \InvalidArgumentException(sprintf('Unsupported serialiser "%s".', $name));
37
            }
38
            $serializers[] = $this->serializers[$name];
39
        }
40
41
        return JWESerializerManager::create($serializers);
42
    }
43
44
    /**
45
     * @return string[]
46
     */
47
    public function names(): array
48
    {
49
        return array_keys($this->serializers);
50
    }
51
52
    /**
53
     * @return JWESerializerInterface[]
54
     */
55
    public function all(): array
56
    {
57
        return $this->serializers;
58
    }
59
60
    /**
61
     * @param JWESerializerInterface $serializer
62
     *
63
     * @return JWESerializerManagerFactory
64
     */
65
    public function add(JWESerializerInterface $serializer): JWESerializerManagerFactory
66
    {
67
        $this->serializers[$serializer->name()] = $serializer;
68
69
        return $this;
70
    }
71
}
72