CanBeNull::or()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 6
nc 1
nop 1
dl 0
loc 8
rs 10
c 1
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
4
namespace Stratadox\Hydration\Mapping\Simple\Type;
5
6
use Stratadox\Hydration\Mapping\Composite\CompositeMapping;
7
use Stratadox\Hydration\Mapping\Composite\ConditionalMapping;
8
use Stratadox\Hydration\Mapping\Primitive\NullCheck;
9
use Stratadox\Hydration\Mapping\Primitive\NullMapping;
10
use Stratadox\HydrationMapping\Mapping;
11
12
final class CanBeNull
13
{
14
    public static function or(Mapping $mapping): Mapping
15
    {
16
        return CompositeMapping::either(
17
            ConditionalMapping::ensureThat(
18
                NullCheck::passes(),
19
                NullMapping::inProperty($mapping->name())
20
            ),
21
            $mapping
22
        );
23
    }
24
}
25