Completed
Push — master ( a682ba...4851b3 )
by Paweł
40:50
created

ArticleFactory::create()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 4
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 2
1
<?php
2
3
/*
4
 * This file is part of the Superdesk Web Publisher Content Bundle.
5
 *
6
 * Copyright 2016 Sourcefabric z.ú. and contributors.
7
 *
8
 * For the full copyright and license information, please see the
9
 * AUTHORS and LICENSE files distributed with this source code.
10
 *
11
 * @copyright 2016 Sourcefabric z.ú
12
 * @license http://www.superdesk.org/license
13
 */
14
15
namespace SWP\Bundle\ContentBundle\Factory\PHPCR;
16
17
use SWP\Bundle\ContentBundle\Doctrine\ODM\PHPCR\ArticleInterface;
18
use SWP\Bundle\ContentBundle\Factory\AbstractArticleFactory;
19
use SWP\Bundle\ContentBundle\Provider\ArticleProviderInterface;
20
use SWP\Bundle\ContentBundle\Provider\RouteProviderInterface;
21
use SWP\Component\Bridge\Model\PackageInterface;
22
use SWP\Component\Storage\Factory\FactoryInterface;
23
24
class ArticleFactory extends AbstractArticleFactory
25
{
26
    /**
27
     * @var FactoryInterface
28
     */
29
    private $baseFactory;
30
31
    /**
32
     * @var ArticleProviderInterface
33
     */
34
    private $articleProvider;
35
36
    /**
37
     * @var string
38
     */
39
    private $contentRelativePath;
40
41
    /**
42
     * ArticleFactory constructor.
43
     *
44
     * @param FactoryInterface         $baseFactory
45
     * @param RouteProviderInterface   $routeProvider
46
     * @param ArticleProviderInterface $articleProvider
47
     * @param string                   $contentRelativePath
48
     */
49
    public function __construct(
50
        FactoryInterface $baseFactory,
51
        RouteProviderInterface $routeProvider,
52
        ArticleProviderInterface $articleProvider,
53
        string $contentRelativePath
54
    ) {
55
        $this->baseFactory = $baseFactory;
56
        $this->articleProvider = $articleProvider;
57
        $this->contentRelativePath = $contentRelativePath;
58
59
        parent::__construct($routeProvider);
60
    }
61
62
    /**
63
     * {@inheritdoc}
64
     */
65
    public function create()
66
    {
67
        return $this->baseFactory->create();
68
    }
69
70
    /**
71
     * {@inheritdoc}
72
     */
73
    public function createFromPackage(PackageInterface $package)
74
    {
75
        /** @var ArticleInterface $article */
76
        $article = $this->hydrateArticle($package);
77
78
        $article->setParentDocument($this->articleProvider->getParent($this->contentRelativePath));
79
80
        return $article;
81
    }
82
}
83