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
|
<?php
namespace StellarWP\FieldConditions;
use ArrayIterator; use StellarWP\FieldConditions\Concerns\HasConditions; use StellarWP\FieldConditions\Concerns\HasLogicalOperator; use StellarWP\FieldConditions\Contracts\Condition; use StellarWP\FieldConditions\Contracts\ConditionSet;
/** * A condition that holds and evaluates multiple conditions. * * @since 1.1.1 implement the ConditionSet interface * @since 1.0.0 * * @uses HasConditions<Condition> */ class NestedCondition implements Condition, ConditionSet { use HasLogicalOperator; use HasConditions;
/** * The type of condition. */ const TYPE = 'nested';
/** * @since 1.0.0 * * @param Condition[] $conditions * @param 'and'|'or' $logicalOperator */ public function __construct(array $conditions = [], string $logicalOperator = 'and') { $this->conditions = $conditions; $this->setLogicalOperator($logicalOperator); }
/** * @inheritDoc * * @since 1.0.0 */ public function jsonSerialize(): array { return [ 'type' => static::TYPE, 'conditions' => $this->conditions, 'boolean' => $this->logicalOperator, ]; }
/** * @since 1.1.1 */ public function getIterator(): ArrayIterator { return new ArrayIterator($this->conditions); } }
|