Abstract_Validator   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 6
c 1
b 0
f 0
dl 0
loc 53
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A has_errors() 0 2 1
A get_errors() 0 2 1
A reset_errors() 0 2 1
A push_error() 0 2 1
1
<?php
2
3
declare(strict_types=1);
4
5
/**
6
 * Abstract Validator
7
 *
8
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
9
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
10
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
11
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
12
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
13
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
14
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
15
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
16
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
17
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
18
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
19
 *
20
 * @author Glynn Quelch <[email protected]>
21
 * @license http://www.opensource.org/licenses/mit-license.html  MIT License
22
 * @package PinkCrab\Perique_Admin_Menu
23
 */
24
25
namespace PinkCrab\Perique_Admin_Menu\Validator;
26
27
abstract class Abstract_Validator {
28
29
	/**
30
	 * Holds any errors encounted when validation a group.
31
	 *
32
	 * @var array<string>
33
	 */
34
	protected array $errors = array();
35
36
	/**
37
	 * Resets the errors.
38
	 *
39
	 * @return void
40
	 */
41
	protected function reset_errors(): void {
42
		$this->errors = array();
43
	}
44
45
	/**
46
	 * Checks if current group being validated has errors.
47
	 *
48
	 * @return bool
49
	 */
50
	public function has_errors(): bool {
51
		return count( $this->errors ) > 0;
52
	}
53
54
	/**
55
	 * Returns the current errors.
56
	 *
57
	 * @return array<string>
58
	 */
59
	public function get_errors(): array {
60
		return $this->errors;
61
	}
62
63
	/**
64
	 * Pushes an error to the list.
65
	 *
66
	 * @param string $error
67
	 * @return void
68
	 */
69
	public function push_error( string $error ): void {
70
		$this->errors[] = $error;
71
	}
72
73
	/**
74
	 * Validates some data
75
	 *
76
	 * @param mixed $subject
77
	 * @return bool
78
	 */
79
	abstract public function validate( $subject ): bool;
80
}
81