/var/www/html_us/wp-content/plugins/woocommerce/src/Caching/CacheException.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
<?php

namespace Automattic\WooCommerce\Caching;

/**
 * Exception thrown by classes derived from ObjectCache.
 */
class CacheException extends \Exception {

    
/**
     * Error messages.
     *
     * @var array
     */
    
private $errors;

    
/**
     * The object that threw the exception.
     *
     * @var ObjectCache
     */
    
private $thrower;

    
/**
     * The id of the cached object, if available.
     *
     * @var int|string|null
     */
    
private $cached_id;

    
/**
     * Creates a new instance of the class.
     *
     * @param string          $message The exception message.
     * @param ObjectCache     $thrower The object that is throwing the exception.
     * @param int|string|null $cached_id The involved cached object id, if available.
     * @param array|null      $errors An array of error messages, if available.
     * @param mixed           $code An error code, if available.
     * @param \Throwable|null $previous The previous exception, if available.
     */
    
public function __constructstring $messageObjectCache $thrower$cached_id null, ?array $errors null$code 0, ?\Throwable $previous null ) {
        
$this->errors    $errors ?? array();
        
$this->thrower   $thrower;
        
$this->cached_id $cached_id;

        
parent::__construct$message$code$previous );
    }

    
/**
     * Get a string representation of the exception object.
     *
     * @return string String representation of the exception object.
     */
    
public function __toString(): string {
        
$cached_id_part $this->cached_id ", id: {$this->cached_id}'';
        return 
"CacheException: [{$this->thrower->get_object_type()}{$cached_id_part}]: {$this->message}";
    }

    
/**
     * Gets the array of error messages passed to the exception constructor.
     *
     * @return array Error messages passed to the exception constructor.
     */
    
public function get_errors(): array {
        return 
$this->errors;
    }

    
/**
     * Gets the object that threw the exception as passed to the exception constructor.
     *
     * @return object The object that threw the exception.
     */
    
public function get_thrower(): object {
        return 
$this->thrower;
    }

    
/**
     * Gets the id of the cached object as passed to the exception constructor.
     *
     * @return int|string|null The id of the cached object.
     */
    
public function get_cached_id() {
        return 
$this->cached_id;
    }
}