Completed
Push — middleware-wip ( a42479 )
by Romain
02:55
created

MiddlewareResolver::getInstanceClassName()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 18
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 18
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 11
nc 3
nop 1
1
<?php
2
/*
3
 * 2017 Romain CANON <[email protected]>
4
 *
5
 * This file is part of the TYPO3 Formz project.
6
 * It is free software; you can redistribute it and/or modify it
7
 * under the terms of the GNU General Public License, either
8
 * version 3 of the License, or any later version.
9
 *
10
 * For the full copyright and license information, see:
11
 * http://www.gnu.org/licenses/gpl-3.0.html
12
 */
13
14
namespace Romm\Formz\Configuration\Form\Middleware;
15
16
use Romm\ConfigurationObject\Service\Items\MixedTypes\MixedTypesInterface;
17
use Romm\ConfigurationObject\Service\Items\MixedTypes\MixedTypesResolver;
18
use Romm\Formz\Configuration\AbstractFormzConfiguration;
19
use Romm\Formz\Middleware\EmptyMiddleware;
20
use Romm\Formz\Validation\Validator\Internal\MiddlewareIsValidValidator;
21
22
abstract class MiddlewareResolver extends AbstractFormzConfiguration implements MixedTypesInterface
23
{
24
25
    /**
26
     * @todo
27
     *
28
     * @param MixedTypesResolver $resolver
29
     */
30
    final public static function getInstanceClassName(MixedTypesResolver $resolver)
31
    {
32
        $data = $resolver->getData();
33
34
        if (isset($data['className'])) {
35
            $middlewareClassName = $data['className'];
36
            $validator = new MiddlewareIsValidValidator;
37
            $result = $validator->validate($middlewareClassName);
38
39
            if ($result->hasErrors()) {
40
                $resolver->getResult()->merge($result);
41
                // @todo
42
                $resolver->setObjectType(EmptyMiddleware::class);
43
            } else {
44
                $resolver->setObjectType($middlewareClassName);
45
            }
46
        }
47
    }
48
}
49