Completed
Push — siteaccessaware-layer-only ( 14ffb6 )
by André
15:43
created

URLAliasService   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 94
Duplicated Lines 34.04 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
dl 32
loc 94
rs 10
c 0
b 0
f 0
wmc 11
lcom 1
cbo 2

9 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 1
A createUrlAlias() 0 4 1
A createGlobalUrlAlias() 0 4 1
A listLocationAliases() 17 17 2
A listGlobalAliases() 0 4 1
A removeAliases() 0 4 1
A lookup() 0 4 1
A reverseLookup() 15 15 2
A load() 0 4 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
3
/**
4
 * URLAliasService class.
5
 *
6
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
7
 * @license For full copyright and license information view LICENSE file distributed with this source code.
8
 */
9
namespace eZ\Publish\Core\Repository\SiteAccessAware;
10
11
use eZ\Publish\API\Repository\URLAliasService as URLAliasServiceInterface;
12
use eZ\Publish\API\Repository\Values\Content\Location;
13
use eZ\Publish\Core\Repository\Helper\LanguageResolver;
14
15
/**
16
 * SiteAccess aware implementation of URLAliasService injecting languages where needed.
17
 */
18
class URLAliasService implements URLAliasServiceInterface
19
{
20
    /**
21
     * Aggregated service.
22
     *
23
     * @var \eZ\Publish\API\Repository\URLAliasService
24
     */
25
    protected $service;
26
27
    /**
28
     * Language resolver
29
     *
30
     * @var LanguageResolver
31
     */
32
    protected $languageResolver;
33
34
    /**
35
     * Construct service object from aggregated service and LanguageResolver.
36
     *
37
     * @param \eZ\Publish\API\Repository\URLAliasService $service
38
     * @param LanguageResolver $languageResolver
39
     */
40
    public function __construct(
41
        URLAliasServiceInterface $service,
42
        LanguageResolver $languageResolver
43
    ) {
44
        $this->service = $service;
45
        $this->languageResolver = $languageResolver;
46
    }
47
48
    public function createUrlAlias(Location $location, $path, $languageCode, $forwarding = false, $alwaysAvailable = false)
49
    {
50
        return $this->service->createUrlAlias($location, $path, $languageCode, $forwarding, $alwaysAvailable);
51
    }
52
53
    public function createGlobalUrlAlias($resource, $path, $languageCode, $forwarding = false, $alwaysAvailable = false)
54
    {
55
        return $this->service->createGlobalUrlAlias($resource, $path, $languageCode, $forwarding, $alwaysAvailable);
56
    }
57
58 View Code Duplication
    public function listLocationAliases(
59
        Location $location,
60
        $custom = true,
61
        $languageCode = null,
62
        $showAllTranslations = null,
63
        array $prioritizedLanguageList = null
64
    ) {
65
        $prioritizedLanguageList = $this->languageResolver->getLanguages($prioritizedLanguageList ?: []);
66
67
        return $this->service->listLocationAliases(
68
            $location,
69
            $custom,
70
            $languageCode,
71
            $showAllTranslations,
72
            $prioritizedLanguageList
73
        );
74
    }
75
76
    public function listGlobalAliases($languageCode = null, $offset = 0, $limit = -1)
77
    {
78
        return $this->service->listGlobalAliases($languageCode, $offset, $limit);
79
    }
80
81
    public function removeAliases(array $aliasList)
82
    {
83
        return $this->service->removeAliases($aliasList);
84
    }
85
86
    public function lookup($url, $languageCode = null)
87
    {
88
        return $this->service->lookup($url, $languageCode);
89
    }
90
91 View Code Duplication
    public function reverseLookup(
92
        Location $location,
93
        $languageCode = null,
94
        $showAllTranslations = null,
95
        array $prioritizedLanguageList = null
96
    ) {
97
        $prioritizedLanguageList = $this->languageResolver->getLanguages($prioritizedLanguageList ?: []);
98
99
        return $this->service->reverseLookup(
100
            $location,
101
            $languageCode,
102
            $showAllTranslations,
103
            $prioritizedLanguageList
104
        );
105
    }
106
107
    public function load($id)
108
    {
109
        return $this->service->load($id);
110
    }
111
}
112