HasParsers   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 24
dl 0
loc 67
c 0
b 0
f 0
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A setupExpressions() 0 23 1
A resetExpressions() 0 5 1
1
<?php
2
3
namespace Hoooklife\DynamodbPodm\Concerns;
4
5
use Hoooklife\DynamodbPodm\Parsers\ExpressionAttributeNames;
6
use Hoooklife\DynamodbPodm\Parsers\ExpressionAttributeValues;
7
use Hoooklife\DynamodbPodm\Parsers\FilterExpression;
8
use Hoooklife\DynamodbPodm\Parsers\KeyConditionExpression;
9
use Hoooklife\DynamodbPodm\Parsers\Placeholder;
10
use Hoooklife\DynamodbPodm\Parsers\ProjectionExpression;
11
use Hoooklife\DynamodbPodm\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
    public function setupExpressions()
51
    {
52
        $this->placeholder = new Placeholder();
53
54
        $this->expressionAttributeNames = new ExpressionAttributeNames();
55
56
        $this->expressionAttributeValues = new ExpressionAttributeValues();
57
58
        $this->keyConditionExpression = new KeyConditionExpression(
59
            $this->placeholder,
60
            $this->expressionAttributeValues,
61
            $this->expressionAttributeNames
62
        );
63
64
        $this->filterExpression = new FilterExpression(
65
            $this->placeholder,
66
            $this->expressionAttributeValues,
67
            $this->expressionAttributeNames
68
        );
69
70
        $this->projectionExpression = new ProjectionExpression($this->expressionAttributeNames);
71
72
        $this->updateExpression = new UpdateExpression($this->expressionAttributeNames);
73
    }
74
75
    public function resetExpressions()
76
    {
77
        $this->filterExpression->reset();
78
        $this->keyConditionExpression->reset();
79
        $this->updateExpression->reset();
80
    }
81
}
82