Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
60.00% |
9 / 15 |
|
90.00% |
9 / 10 |
CRAP | |
0.00% |
0 / 1 |
SkippedManuscriptPrompt | |
60.00% |
9 / 15 |
|
90.00% |
9 / 10 |
16.40 | |
0.00% |
0 / 1 |
accept | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
__toString | |
0.00% |
0 / 6 |
|
0.00% |
0 / 1 |
2 | |||
getIdentity | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
setIdentity | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
getManuscriptPrompt | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
setManuscriptPrompt | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
getUser | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
setUser | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
getSkipped | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
setSkipped | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 |
1 | <?php |
2 | |
3 | namespace MediaWiki\WikispeechSpeechDataCollector\Domain; |
4 | |
5 | /** |
6 | * @file |
7 | * @ingroup Extensions |
8 | * @license GPL-2.0-or-later |
9 | */ |
10 | |
11 | use MWTimestamp; |
12 | |
13 | /** |
14 | * Indication that a {@link User} skipped recording |
15 | * a specific {@link ManuscriptPrompt}. |
16 | * |
17 | * @todo Consider allowing a reason for skipping, |
18 | * e.g. too complex pronunciation, foul language, etc. |
19 | * |
20 | * In the future, this could easily be mined together in conjunction with |
21 | * {@link UserLanguageProficiencyLevel::$proficiencyLevel} |
22 | * in order to figure out what prompts to not expose to new users |
23 | * and thus make onboarding as easy as possible rather than scare them |
24 | * away with hard to read sentences. |
25 | * |
26 | * Tokenized {@link ManuscriptPrompt::$content} with above mentioned data |
27 | * could also be used to guess hard to read sentences in prompts that has |
28 | * never been exposed to users. |
29 | * |
30 | * @since 0.1.0 |
31 | */ |
32 | class SkippedManuscriptPrompt implements Persistent { |
33 | /** @var string|null 128 bits UUID */ |
34 | private $identity; |
35 | |
36 | /** |
37 | * @var string|null 128 bits UUID |
38 | * @see Manuscript::$identity |
39 | */ |
40 | private $manuscriptPrompt; |
41 | |
42 | /** |
43 | * @var string|null 128 bits UUID |
44 | * @see User::$identity |
45 | */ |
46 | private $user; |
47 | |
48 | /** @var MWTimestamp|null Timestamp skipped */ |
49 | private $skipped; |
50 | |
51 | // visitor |
52 | |
53 | /** |
54 | * @param PersistentVisitor $visitor |
55 | * @return mixed|null |
56 | */ |
57 | public function accept( PersistentVisitor $visitor ) { |
58 | return $visitor->visitSkippedManuscriptPrompt( $this ); |
59 | } |
60 | |
61 | public function __toString(): string { |
62 | return '[ ' . |
63 | 'identity => "' . $this->getIdentity() . '", ' . |
64 | 'manuscriptPrompt => "' . $this->getManuscriptPrompt() . '", ' . |
65 | 'user => "' . $this->getUser() . '", ' . |
66 | 'skipped => "' . $this->getSkipped() . '" ' . |
67 | ']'; |
68 | } |
69 | |
70 | // getters and setters |
71 | |
72 | /** |
73 | * @see SkippedManuscriptPrompt::$identity |
74 | * @return string|null |
75 | */ |
76 | public function getIdentity(): ?string { |
77 | return $this->identity; |
78 | } |
79 | |
80 | /** |
81 | * @see SkippedManuscriptPrompt::$identity |
82 | * @param string|null $identity |
83 | */ |
84 | public function setIdentity( $identity ): void { |
85 | $this->identity = $identity; |
86 | } |
87 | |
88 | /** |
89 | * @see SkippedManuscriptPrompt::$manuscriptPrompt |
90 | * @return string|null |
91 | */ |
92 | public function getManuscriptPrompt(): ?string { |
93 | return $this->manuscriptPrompt; |
94 | } |
95 | |
96 | /** |
97 | * @see SkippedManuscriptPrompt::$manuscriptPrompt |
98 | * @param string|null $manuscriptPrompt |
99 | */ |
100 | public function setManuscriptPrompt( ?string $manuscriptPrompt ): void { |
101 | $this->manuscriptPrompt = $manuscriptPrompt; |
102 | } |
103 | |
104 | /** |
105 | * @see SkippedManuscriptPrompt::$user |
106 | * @return string|null |
107 | */ |
108 | public function getUser(): ?string { |
109 | return $this->user; |
110 | } |
111 | |
112 | /** |
113 | * @see SkippedManuscriptPrompt::$user |
114 | * @param string|null $user |
115 | */ |
116 | public function setUser( ?string $user ): void { |
117 | $this->user = $user; |
118 | } |
119 | |
120 | /** |
121 | * @see SkippedManuscriptPrompt::$skipped |
122 | * @return MWTimestamp|null |
123 | */ |
124 | public function getSkipped(): ?MWTimestamp { |
125 | return $this->skipped; |
126 | } |
127 | |
128 | /** |
129 | * @see SkippedManuscriptPrompt::$skipped |
130 | * @param MWTimestamp|null $skipped |
131 | */ |
132 | public function setSkipped( ?MWTimestamp $skipped ): void { |
133 | $this->skipped = $skipped; |
134 | } |
135 | } |