HasParsers   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 24
c 1
b 0
f 0
dl 0
loc 67
ccs 19
cts 19
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A setupExpressions() 0 23 1
A resetExpressions() 0 5 1
1
<?php
2
3
namespace BaoPham\DynamoDb\Concerns;
4
5
use BaoPham\DynamoDb\Parsers\ExpressionAttributeNames;
6
use BaoPham\DynamoDb\Parsers\ExpressionAttributeValues;
7
use BaoPham\DynamoDb\Parsers\FilterExpression;
8
use BaoPham\DynamoDb\Parsers\KeyConditionExpression;
9
use BaoPham\DynamoDb\Parsers\Placeholder;
10
use BaoPham\DynamoDb\Parsers\ProjectionExpression;
11
use BaoPham\DynamoDb\Parsers\UpdateExpression;
12
13
trait HasParsers
14
{
15
    /**
16
     * @var FilterExpression
17
     */
18
    protected $filterExpression;
19
20
    /**
21
     * @var KeyConditionExpression
22
     */
23
    protected $keyConditionExpression;
24
25
    /**
26
     * @var ProjectionExpression
27
     */
28
    protected $projectionExpression;
29
30
    /**
31
     * @var UpdateExpression
32
     */
33
    protected $updateExpression;
34
35
    /**
36
     * @var ExpressionAttributeNames
37
     */
38
    protected $expressionAttributeNames;
39
40
    /**
41
     * @var ExpressionAttributeValues
42
     */
43
    protected $expressionAttributeValues;
44
45
    /**
46
     * @var Placeholder
47
     */
48
    protected $placeholder;
49
50 131
    public function setupExpressions()
51
    {
52 131
        $this->placeholder = new Placeholder();
53
54 131
        $this->expressionAttributeNames = new ExpressionAttributeNames();
55
56 131
        $this->expressionAttributeValues = new ExpressionAttributeValues();
57
58 131
        $this->keyConditionExpression = new KeyConditionExpression(
59 131
            $this->placeholder,
60 131
            $this->expressionAttributeValues,
61 131
            $this->expressionAttributeNames
62
        );
63
64 131
        $this->filterExpression = new FilterExpression(
65 131
            $this->placeholder,
66 131
            $this->expressionAttributeValues,
67 131
            $this->expressionAttributeNames
68
        );
69
70 131
        $this->projectionExpression = new ProjectionExpression($this->expressionAttributeNames);
71
72 131
        $this->updateExpression = new UpdateExpression($this->expressionAttributeNames);
73 131
    }
74
75 124
    public function resetExpressions()
76
    {
77 124
        $this->filterExpression->reset();
78 124
        $this->keyConditionExpression->reset();
79 124
        $this->updateExpression->reset();
80 124
    }
81
}
82