88eedb57d2dc011b0038cec85dd092fef0d4d839
[moodle.git] / privacy / classes / local / metadata / types / subsystem_link.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle 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 Moodle.  If not, see <http://www.gnu.org/licenses/>.
17 /**
18  * This file defines a link to another Moodle subsystem.
19  *
20  * @package core_privacy
21  * @copyright 2018 Zig Tan <zig@moodle.com>
22  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
24 namespace core_privacy\local\metadata\types;
26 defined('MOODLE_INTERNAL') || die();
28 /**
29  * The subsystem link type.
30  *
31  * @copyright 2018 Zig Tan <zig@moodle.com>
32  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
33  */
34 class subsystem_link implements type {
36     /**
37      * @var The name of the core subsystem to link.
38      */
39     protected $name;
41     /**
42      * @var string A description of what this subsystem is used to store.
43      */
44     protected $summary;
46     /**
47      * Constructor for the subsystem_link.
48      *
49      * @param   string  $name The name of the subsystem to link.
50      * @param   string  $summary A description of what is stored within this subsystem.
51      */
52     public function __construct($name, $summary = '') {
53         if (debugging('', DEBUG_DEVELOPER)) {
54             $teststring = clean_param($summary, PARAM_STRINGID);
55             if ($teststring !== $summary) {
56                 debugging("Summary information for use of the '{$name}' subsystem " .
57                     "has an invalid langstring identifier: '{$summary}'",
58                     DEBUG_DEVELOPER);
59             }
60         }
62         $this->name = $name;
63         $this->summary = $summary;
64     }
66     /**
67      * Function to return the name of this subsystem_link type.
68      *
69      * @return string $name
70      */
71     public function get_name() {
72         return $this->name;
73     }
75     /**
76      * A subsystem link does not define any fields itself.
77      *
78      * @return  array
79      */
80     public function get_privacy_fields() : array {
81         return null;
82     }
84     /**
85      * A summary of what this subsystem is used for.
86      *
87      * @return string $summary
88      */
89     public function get_summary() {
90         return $this->summary;
91     }
92 }