Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
namespace Aws\S3\Exception;
3
 
4
use Aws\HasMonitoringEventsTrait;
5
use Aws\MonitoringEventsInterface;
6
 
7
/**
8
 * Exception thrown when errors occur while deleting objects using a
9
 * {@see S3\BatchDelete} object.
10
 */
11
class DeleteMultipleObjectsException extends \Exception implements
12
    MonitoringEventsInterface
13
{
14
    use HasMonitoringEventsTrait;
15
 
16
    private $deleted = [];
17
    private $errors = [];
18
 
19
    /**
20
     * @param array       $deleted Array of successfully deleted keys
21
     * @param array       $errors  Array of errors that were encountered
22
     */
23
    public function __construct(array $deleted, array $errors)
24
    {
25
        $this->deleted = array_values($deleted);
26
        $this->errors = array_values($errors);
27
        parent::__construct('Unable to delete certain keys when executing a'
28
            . ' DeleteMultipleObjects request: '
29
            . self::createMessageFromErrors($errors));
30
    }
31
 
32
    /**
33
     * Create a single error message from multiple errors.
34
     *
35
     * @param array $errors Errors encountered
36
     *
37
     * @return string
38
     */
39
    public static function createMessageFromErrors(array $errors)
40
    {
41
        return "\n- " . implode("\n- ", array_map(function ($key) {
42
            return json_encode($key);
43
        }, $errors));
44
    }
45
 
46
    /**
47
     * Get the errored objects
48
     *
49
     * @return array Returns an array of associative arrays, each containing
50
     *               a 'Code', 'Message', and 'Key' key.
51
     */
52
    public function getErrors()
53
    {
54
        return $this->errors;
55
    }
56
 
57
    /**
58
     * Get the successfully deleted objects
59
     *
60
     * @return array Returns an array of associative arrays, each containing
61
     *               a 'Key' and optionally 'DeleteMarker' and
62
     *              'DeleterMarkerVersionId'
63
     */
64
    public function getDeleted()
65
    {
66
        return $this->deleted;
67
    }
68
}