LeafSpecification   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 5
dl 0
loc 29
ccs 10
cts 10
cp 1
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
isSatisfiedBy() 0 1 ?
A and() 0 4 1
A andNot() 0 4 1
A or() 0 4 1
A orNot() 0 4 1
A not() 0 4 1
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace Larium\Specification;
6
7
abstract class LeafSpecification implements Specification
8
{
9
    abstract public function isSatisfiedBy(Candidate $candidate): bool;
10
11 1
    public function and(Specification $other): Specification
12
    {
13 1
        return new AndSpecification($this, $other);
14
    }
15
16 1
    public function andNot(Specification $other): Specification
17
    {
18 1
        return new AndNotSpecification($this, $other);
19
    }
20
21 2
    public function or(Specification $other): Specification
22
    {
23 2
        return new OrSpecification($this, $other);
24
    }
25
26 1
    public function orNot(Specification $other): Specification
27
    {
28 1
        return new OrNotSpecification($this, $other);
29
    }
30
31 1
    public function not(): Specification
32
    {
33 1
        return new NotSpecification($this);
34
    }
35
}
36