Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3/**
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; under version 2
7 * of the License (non-upgradable).
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17 *
18 * Copyright (c) 2015 (original work) Open Assessment Technologies SA;
19 *
20 */
21
22namespace oat\taoRevision\model;
23
24use core_kernel_classes_Resource as Resource;
25
26interface RepositoryInterface
27{
28    public const SERVICE_ID = 'taoRevision/repository';
29
30    /**
31     * Returns an array of Revision objects for a given resource
32     *
33     * @param string $resourceId
34     * @return Revision[]
35     */
36    public function getAllRevisions(string $resourceId);
37
38    /**
39     * Returns revision, a specific version of changes
40     *
41     * @param string $resourceId
42     * @param int $version
43     * @throws RevisionNotFoundException
44     * @return Revision
45     */
46    public function getRevision(string $resourceId, int $version);
47
48    /**
49     * Stores changes in the history
50     *
51     * @param Resource    $resource
52     * @param string      $message
53     * @param int|null    $version
54     * @param string|null $userId
55     *
56     * @return Revision
57     */
58    public function commit(Resource $resource, string $message, int $version = null, string $userId = null);
59
60    /**
61     * Restore a previous version
62     *
63     * @param Revision $revision
64     * @return bool
65     */
66    public function restore(Revision $revision);
67}