This repository has been archived by the owner on Jul 6, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSearchPayload.php
104 lines (91 loc) · 2.36 KB
/
SearchPayload.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
declare(strict_types=1);
/*
* This file is part of the RollerworksSearch package.
*
* (c) Sebastiaan Stok <[email protected]>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace Rollerworks\Component\Search\Processor;
use Rollerworks\Component\Search\ConditionErrorMessage;
use Rollerworks\Component\Search\SearchCondition;
/**
* @author Sebastiaan Stok <[email protected]>
*/
final class SearchPayload
{
/**
* READ-ONLY: The final SearchCondition.
*
* @var SearchCondition|array|null Array is only used during serialization
*/
public $searchCondition;
/**
* READ-ONLY: The error messages produced by the input processor.
*
* @var ConditionErrorMessage[]
*/
public $messages = [];
/**
* READ-ONLY: The search-code used to transport the SearchCondition
* with the URI.
*
* This contains the JSON exported SearchCondition, compressed
* and converted to base64.
*
* @var string
*/
public $searchCode;
/**
* READ-ONLY: The SearchCondition in exported format.
*
* @var mixed
*/
public $exportedCondition;
/**
* READ-ONLY: The Format in which the condition is exported.
*
* @var string|null
*/
public $exportedFormat;
/**
* READ-ONLY: Indicates whether the condition has changed in comparison
* to the previous state.
*
* Don't access this property directly, use `isChanged()` instead.
*
* @var bool
*/
public $changed;
public function __construct(bool $changed = false)
{
$this->changed = $changed;
}
/**
* Returns whether the processed request was valid (no errors).
*
* Note: An empty SearchCondition is not considered an error.
* If this method returns false the input should be corrected.
*
* @return bool
*/
public function isValid(): bool
{
return 0 === count($this->messages);
}
/**
* Return whether the condition has changed in comparison
* to the previous state.
*
* This can also return true when there was previously no condition
* or when the new condition is empty.
*
* @return bool
*/
public function isChanged(): bool
{
return $this->changed;
}
}