Completed
Pull Request — dev (#9)
by Arnaud
02:46
created

getApplicationConfiguration()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace LAG\AdminBundle\Configuration\Factory;
4
5
use LAG\AdminBundle\Action\Configuration\ActionConfiguration;
6
use LAG\AdminBundle\Admin\AdminInterface;
7
use LAG\AdminBundle\Admin\Configuration\AdminConfiguration;
8
use LAG\AdminBundle\Application\Configuration\ApplicationConfiguration;
9
use Symfony\Component\OptionsResolver\OptionsResolver;
10
11
class ConfigurationFactory
12
{
13
    /**
14
     * @var ApplicationConfiguration
15
     */
16
    protected $applicationConfiguration;
17
18
    /**
19
     * Create an action configuration object.
20
     *
21
     * @param $actionName
22
     * @param AdminInterface|null $admin
23
     * @param array $configuration
24
     * @return ActionConfiguration
25
     */
26 1
    public function createActionConfiguration($actionName, AdminInterface $admin = null, array $configuration = [])
27
    {
28 1
        $resolver = new OptionsResolver();
29 1
        $actionConfiguration = new ActionConfiguration($actionName, $admin);
30 1
        $actionConfiguration->configureOptions($resolver);
31 1
        $actionConfiguration->setParameters($resolver->resolve($configuration));
32
33 1
        return $actionConfiguration;
34
    }
35
36
    /**
37
     * Create an application configuration object.
38
     *
39
     * @param array $configuration
40
     * @return ApplicationConfiguration
41
     */
42 8
    public function createApplicationConfiguration(array $configuration = [])
43
    {
44 8
        $resolver = new OptionsResolver();
45 8
        $this->applicationConfiguration = new ApplicationConfiguration();
46 8
        $this->applicationConfiguration->configureOptions($resolver);
47 8
        $this->applicationConfiguration->setParameters($resolver->resolve($configuration));
48
49 8
        return $this->applicationConfiguration;
50
    }
51
52
    /**
53
     * Create an admin configuration object.
54
     *
55
     * @param array $configuration
56
     * @return AdminConfiguration
57
     */
58 5
    public function createAdminConfiguration(array $configuration = [])
59
    {
60 5
        $resolver = new OptionsResolver();
61 5
        $adminConfiguration = new AdminConfiguration($this->applicationConfiguration);
62 5
        $adminConfiguration->configureOptions($resolver);
63 5
        $adminConfiguration->setParameters($resolver->resolve($configuration));
64
65 5
        return $adminConfiguration;
66
    }
67
68
    /**
69
     * @return ApplicationConfiguration
70
     */
71 1
    public function getApplicationConfiguration()
72
    {
73 1
        return $this->applicationConfiguration;
74
    }
75
}
76