Completed
Push — master ( 68be21...073c54 )
by Kévin
02:41
created

Solarium   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 37
wmc 4
lcom 0
cbo 3
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A supports() 0 4 1
A createVisitor() 0 4 1
A getExecutorTraits() 0 7 1
A getOperators() 0 4 1
1
<?php
2
3
namespace RulerZ\Target\Solarium;
4
5
use RulerZ\Target\AbstractCompilationTarget;
6
use RulerZ\Target\Operators\GenericSolrDefinitions;
7
use Solarium\Client as SolariumClient;
8
9
use RulerZ\Compiler\Context;
10
11
class Solarium extends AbstractCompilationTarget
12
{
13
    /**
14
     * {@inheritDoc}
15
     */
16
    public function supports($target, $mode)
17
    {
18
        return $target instanceof SolariumClient;
19
    }
20
21
    /**
22
     * @inheritDoc
23
     */
24
    protected function createVisitor(Context $context)
25
    {
26
        return new SolariumVisitor($this->getOperators());
27
    }
28
29
    /**
30
     * @inheritDoc
31
     */
32
    protected function getExecutorTraits()
33
    {
34
        return [
35
            '\RulerZ\Executor\Solr\SolariumFilterTrait',
36
            '\RulerZ\Executor\Polyfill\FilterBasedSatisfaction',
37
        ];
38
    }
39
40
    /**
41
     * @inheritDoc
42
     */
43
    public function getOperators()
44
    {
45
        return GenericSolrDefinitions::create(parent::getOperators());
46
    }
47
}
48