ObjectExpression   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
c 1
b 0
f 0
dl 0
loc 21
ccs 8
cts 8
cp 1
rs 10
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A compile() 0 16 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace LaravelFreelancerNL\FluentAQL\Expressions;
6
7
use LaravelFreelancerNL\FluentAQL\Exceptions\ExpressionTypeException;
8
use LaravelFreelancerNL\FluentAQL\QueryBuilder;
9
10
/**
11
 * Key expression.
12
 */
13
class ObjectExpression extends Expression implements ExpressionInterface
14
{
15
    /**
16
     * @throws ExpressionTypeException
17
     */
18 2
    public function compile(QueryBuilder $queryBuilder): string
19
    {
20 2
        $output = '';
21
        /**
22
         * @var string $key
23
         * @var object|array<mixed>|scalar $value
24
         */
25 2
        foreach ($this->expression as $key => $value) {
26 2
            $value = $queryBuilder->normalizeArgument($value);
27 2
            if ($output != '') {
28 2
                $output .= ',';
29
            }
30 2
            $output .= '"' . $key . '":' . $value->compile($queryBuilder);
31
        }
32
33 2
        return '{' . $output . '}';
34
    }
35
}
36