PluginProbe ʕ •ᴥ•ʔ
Search Regex / trunk
Search Regex vtrunk
trunk 1.4.12 1.4.13 1.4.14 1.4.15 1.4.16 2.0 2.0.1 2.1 2.2 2.2.1 2.3 2.3.1 2.3.2 2.3.3 2.4 2.4.1 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1 3.1.1 3.1.2 3.2 3.3 3.3.0 3.3.1 3.4 3.4.1 3.4.2
search-regex / includes / context / type / class-replace.php
search-regex / includes / context / type Last commit date
class-add.php 5 months ago class-delete.php 5 months ago class-empty-type.php 5 months ago class-matched.php 5 months ago class-pair.php 5 months ago class-replace.php 5 months ago class-text.php 5 months ago class-value.php 5 months ago
class-replace.php
81 lines
1 <?php
2
3 namespace SearchRegex\Context\Type;
4
5 use SearchRegex\Context;
6
7 /**
8 * Context when something has been replaced
9 */
10 class Replace extends Context\Type\Value {
11 const TYPE_REPLACE = 'replace';
12
13 /**
14 * Replacement value
15 *
16 * @var string|integer|null
17 */
18 private $replacement = null;
19
20 /**
21 * Replacement value type
22 */
23 private ?string $replacement_label = null;
24
25 /**
26 * Set the replacement
27 *
28 * @param string|integer $value Value.
29 * @param string $label Label.
30 * @return void
31 */
32 public function set_replacement( $value, $label = null ) {
33 $this->replacement = $value;
34 $this->replacement_label = $label !== null ? $label : (string) $value;
35 }
36
37 public function get_type() {
38 return self::TYPE_REPLACE;
39 }
40
41 /**
42 * Get the replacement value
43 *
44 * @return string|null|integer
45 */
46 public function get_replacement() {
47 return $this->replacement;
48 }
49
50 public function is_matched() {
51 return true;
52 }
53
54 public function needs_saving() {
55 return true;
56 }
57
58 public function to_json() {
59 $parent_json = parent::to_json();
60
61 return [
62 'context_id' => $parent_json['context_id'],
63 'type' => $parent_json['type'],
64 'value' => $parent_json['value'],
65 'value_type' => $parent_json['value_type'],
66 'value_label' => $parent_json['value_label'],
67 'value_length' => $parent_json['value_length'],
68 'replacement' => $this->restrict_value( $this->replacement === null ? '' : (string) $this->replacement ),
69 'replacement_label' => $this->restrict_value( $this->replacement_label ?? '' ),
70 ];
71 }
72
73 public function is_equal( Context\Context $context ) {
74 if ( parent::is_equal( $context ) && $context instanceof Context\Type\Replace ) {
75 return $this->replacement === $context->replacement;
76 }
77
78 return false;
79 }
80 }
81