Code Duplication    Length = 30-32 lines in 2 locations

src/Visitor/JsonSerializationVisitorFactory.php 1 location

@@ 20-51 (lines=32) @@
17
 *
18
 * @package Nnx\JmsSerializerModule\Visitor
19
 */
20
class JsonSerializationVisitorFactory implements FactoryInterface, MutableCreationOptionsInterface
21
{
22
    use MutableCreationOptionsTrait, NamingStrategyTrait;
23
24
    /**
25
     * @param ServiceLocatorInterface $serviceLocator
26
     *
27
     * @return FileLocator
28
     * @throws \Zend\ServiceManager\Exception\ServiceNotFoundException
29
     * @throws \Nnx\JmsSerializerModule\Visitor\Exception\RuntimeException
30
     * @throws \Nnx\JmsSerializerModule\MetadataDriver\Exception\RuntimeException
31
     */
32
    public function createService(ServiceLocatorInterface $serviceLocator)
33
    {
34
        $namingStrategy = $this->getNamingStrategyFromContainer($serviceLocator);
35
        $visitor = new JsonSerializationVisitor($namingStrategy);
36
37
        $creationOptions = $this->getCreationOptions();
38
        if (array_key_exists('jsonOptions', $creationOptions)) {
39
            $jsonOptions = $creationOptions['jsonOptions'];
40
            if (!is_array($jsonOptions)) {
41
                $errMsg = 'Json options is not array';
42
                throw new Exception\RuntimeException($errMsg);
43
            }
44
            if (array_key_exists('options', $jsonOptions)) {
45
                $visitor->setOptions($jsonOptions['options']);
46
            }
47
        }
48
49
        return $visitor;
50
    }
51
}
52

src/Visitor/XmlDeserializationVisitorFactory.php 1 location

@@ 19-48 (lines=30) @@
16
 *
17
 * @package Nnx\JmsSerializerModule\Visitor
18
 */
19
class XmlDeserializationVisitorFactory implements FactoryInterface, MutableCreationOptionsInterface
20
{
21
    use MutableCreationOptionsTrait, NamingStrategyTrait;
22
23
    /**
24
     * @param ServiceLocatorInterface $serviceLocator
25
     *
26
     * @return XmlDeserializationVisitor
27
     * @throws \Zend\ServiceManager\Exception\ServiceNotFoundException
28
     * @throws \Nnx\JmsSerializerModule\Visitor\Exception\RuntimeException
29
     */
30
    public function createService(ServiceLocatorInterface $serviceLocator)
31
    {
32
        $creationOptions = $this->getCreationOptions();
33
34
        $namingStrategy = $this->getNamingStrategyFromContainer($serviceLocator);
35
        $xmlDeserializationVisitor = new XmlDeserializationVisitor($namingStrategy);
36
37
        if (array_key_exists('doctypeWhitelist', $creationOptions)) {
38
            $doctypeWhitelist = $creationOptions['doctypeWhitelist'];
39
            if (!is_array($doctypeWhitelist)) {
40
                $errMsg = 'Doctype whitelist not array';
41
                throw new Exception\RuntimeException($errMsg);
42
            }
43
            $xmlDeserializationVisitor->setDoctypeWhitelist($doctypeWhitelist);
44
        }
45
46
        return $xmlDeserializationVisitor;
47
    }
48
}
49