-
-
Notifications
You must be signed in to change notification settings - Fork 60
/
Copy pathIErrorBag.php
86 lines (78 loc) · 3.11 KB
/
IErrorBag.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
<?php
/**
* This file is part of the ZBateson\MailMimeParser project.
*
* @license http://opensource.org/licenses/bsd-license.php BSD
*/
namespace ZBateson\MailMimeParser;
use Psr\Log\LogLevel;
use Throwable;
/**
* Defines an object that may contain a set of errors, and optionally perform
* additional validation.
*
* @author Zaahid Bateson
*/
interface IErrorBag
{
/**
* Returns a context name for the current object to help identify it in
* logs.
*/
public function getErrorLoggingContextName() : string;
/**
* Creates and adds an Error object to this ErrorBag.
*/
public function addError(string $message, string $psrLogLevel, ?Throwable $exception = null) : static;
/**
* Returns true if this object has an error in its error bag at or above
* the passed $minPsrLevel (defaults to ERROR). If $validate is true,
* additional validation may be performed.
*
* The PSR levels are defined in Psr\Log\LogLevel.
*/
public function hasErrors(bool $validate = false, string $minPsrLevel = LogLevel::ERROR) : bool;
/**
* Returns any local errors this object has at or above the passed PSR log
* level in Psr\Log\LogLevel (defaulting to LogLevel::ERROR).
*
* If $validate is true, additional validation may be performed on the
* object to check for errors.
*
* @return Error[]
*/
public function getErrors(bool $validate = false, string $minPsrLevel = LogLevel::ERROR) : array;
/**
* Returns true if there are errors on this object, or any IErrorBag child
* of this object at or above the passed PSR log level in Psr\Log\LogLevel
* (defaulting to LogLevel::ERROR). Note that this will stop after finding
* the first error and return, so may be slightly more performant if an
* error actually exists over calling getAllErrors if only interested in
* whether an error exists.
*
* Care should be taken using this if the intention is to only 'preview' a
* message without parsing it entirely, since this will cause the whole
* message to be parsed as it traverses children, and could be slow on
* messages with large attachments, etc...
*
* If $validate is true, additional validation may be performed to check for
* errors.
*/
public function hasAnyErrors(bool $validate = false, string $minPsrLevel = LogLevel::ERROR) : bool;
/**
* Returns any errors on this object, and all IErrorBag children of this
* object at or above the passed PSR log level from Psr\Log\LogLevel
* (defaulting to LogLevel::ERROR).
*
* Care should be taken using this if the intention is to only 'preview' a
* message without parsing it entirely, since this will cause the whole
* message to be parsed as it traverses children, and could be slow on
* messages with large attachments, etc...
*
* If $validate is true, additional validation may be performed on children
* to check for errors.
*
* @return Error[]
*/
public function getAllErrors(bool $validate = false, string $minPsrLevel = LogLevel::ERROR) : array;
}