Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
58.33% covered (warning)
58.33%
7 / 12
87.50% covered (warning)
87.50%
7 / 8
CRAP
0.00% covered (danger)
0.00%
0 / 1
User
58.33% covered (warning)
58.33%
7 / 12
87.50% covered (warning)
87.50%
7 / 8
12.63
0.00% covered (danger)
0.00%
0 / 1
 accept
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 __toString
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
 getIdentity
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setIdentity
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getMediaWikiUser
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setMediaWikiUser
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getYearBorn
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setYearBorn
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace MediaWiki\WikispeechSpeechDataCollector\Domain;
4
5/**
6 * @file
7 * @ingroup Extensions
8 * @license GPL-2.0-or-later
9 */
10
11/**
12 * An augmentation of the MediaWiki {@link \User}. Allows for easily adding new
13 * information that make sense in this extension but might not be accepted in
14 * the MediaWiki core. Also, by keeping track of users with our own identity
15 * we're not pointing to the MediaWiki user identity as relations from other
16 * tables. This allows us to export data from this system and while keeping
17 * users completely anonymous.
18 *
19 * @since 0.1.0
20 */
21class User implements Persistent {
22    /** @var string|null 128 bits UUID */
23    private $identity;
24
25    /**
26     * @var int|null {@link \User::getId()}
27     */
28    private $mediaWikiUser;
29
30    /**
31     * @var int|null Year born, Gregorian calendar.
32     * Used to evaluate age of user in a recorded voice.
33     * @todo Consider if we should store age of recoded user in each recording as an index.
34     */
35    private $yearBorn;
36
37    // visitor
38
39    /**
40     * @param PersistentVisitor $visitor
41     * @return mixed|null
42     */
43    public function accept( PersistentVisitor $visitor ) {
44        return $visitor->visitUser( $this );
45    }
46
47    public function __toString(): string {
48        return '[ ' .
49            'identity => "' . $this->getIdentity() . '", ' .
50            'wikimediaUser => "' . $this->getMediaWikiUser() . '", ' .
51            'yearBorn => "' . $this->getYearBorn() . '" ' .
52            ']';
53    }
54
55    // getters and setters
56
57    /**
58     * @see User::$identity
59     * @return string|null
60     */
61    public function getIdentity(): ?string {
62        return $this->identity;
63    }
64
65    /**
66     * @see User::$identity
67     * @param string|null $identity
68     */
69    public function setIdentity( $identity ): void {
70        $this->identity = $identity;
71    }
72
73    /**
74     * @see User::$mediaWikiUser
75     * @return int|null
76     */
77    public function getMediaWikiUser(): ?int {
78        return $this->mediaWikiUser;
79    }
80
81    /**
82     * @see User::$mediaWikiUser
83     * @param int|null $mediaWikiUser
84     */
85    public function setMediaWikiUser( ?int $mediaWikiUser ): void {
86        $this->mediaWikiUser = $mediaWikiUser;
87    }
88
89    /**
90     * @see User::$yearBorn
91     * @return int|null
92     */
93    public function getYearBorn(): ?int {
94        return $this->yearBorn;
95    }
96
97    /**
98     * @see User::$yearBorn
99     * @param int|null $yearBorn
100     */
101    public function setYearBorn( ?int $yearBorn ): void {
102        $this->yearBorn = $yearBorn;
103    }
104}