KubernetesDeployJobPayload   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 11
dl 0
loc 52
rs 10
c 0
b 0
f 0
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A toArray() 0 5 1
A fromArray() 0 3 1
A __construct() 0 4 1
A getDirectoryName() 0 3 1
A getProvider() 0 3 1
1
<?php
2
3
namespace TheAentMachine\Aent\Payload\CI;
4
5
use TheAentMachine\Aent\K8SProvider\Provider;
6
use TheAentMachine\Aent\Payload\JsonPayloadInterface;
7
8
final class KubernetesDeployJobPayload implements JsonPayloadInterface
9
{
10
    /** @var string */
11
    private $directoryName;
12
13
    /** @var Provider */
14
    private $provider;
15
16
    /**
17
     * KubernetesDeployJobPayload constructor.
18
     * @param string $directoryName
19
     * @param Provider $provider
20
     */
21
    public function __construct(string $directoryName, Provider $provider)
22
    {
23
        $this->directoryName = $directoryName;
24
        $this->provider = $provider;
25
    }
26
27
    /**
28
     * @return array<string,string>
29
     */
30
    public function toArray(): array
31
    {
32
        $assoc = $this->provider->toArray();
33
        $assoc['DIRECTORY_NAME'] = $this->directoryName;
34
        return $assoc;
35
    }
36
37
    /**
38
     * @param array<string,string> $assoc
39
     * @return self
40
     */
41
    public static function fromArray(array $assoc): self
42
    {
43
        return new self($assoc['DIRECTORY_NAME'], Provider::fromArray($assoc));
44
    }
45
46
    /**
47
     * @return string
48
     */
49
    public function getDirectoryName(): string
50
    {
51
        return $this->directoryName;
52
    }
53
54
    /**
55
     * @return Provider
56
     */
57
    public function getProvider(): Provider
58
    {
59
        return $this->provider;
60
    }
61
}
62