User::visit()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 3.2098

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 6
c 1
b 0
f 0
nc 3
nop 3
dl 0
loc 10
ccs 5
cts 7
cp 0.7143
crap 3.2098
rs 10
1
<?php declare(strict_types = 1);
2
3
namespace Apicart\FQL\Generator\Native;
4
5
use Apicart\FQL\Generator\Common\AbstractVisitor;
6
use Apicart\FQL\Token\Node\Term;
7
use Apicart\FQL\Token\Token\User as UserToken;
8
use Apicart\FQL\Value\AbstractNode;
9
use LogicException;
10
11
final class User extends AbstractVisitor
12
{
13
14 133
    public function accept(AbstractNode $node): bool
15
    {
16 133
        return $node instanceof Term && $node->getToken() instanceof UserToken;
17
    }
18
19
20 1
    public function visit(AbstractNode $node, ?AbstractVisitor $subVisitor = null, ?array $options = null): string
21
    {
22 1
        if (! $node instanceof Term) {
23
            throw new LogicException('Implementation accepts instance of Term Node');
24
        }
25 1
        $token = $node->getToken();
26 1
        if (! $token instanceof UserToken) {
27
            throw new LogicException('Implementation accepts instance of User Token');
28
        }
29 1
        return "{$token->getMarker()}{$token->getUser()}";
30
    }
31
32
}
33