Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 182
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3namespace WikibaseQuality\ConstraintReport;
4
5use MediaWiki\MediaWikiServices;
6use MediaWiki\Site\MediaWikiPageNameNormalizer;
7use Wikibase\Repo\WikibaseRepo;
8use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\AllowedUnitsChecker;
9use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\CitationNeededChecker;
10use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\CommonsLinkChecker;
11use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\ConflictsWithChecker;
12use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\ContemporaryChecker;
13use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\DiffWithinRangeChecker;
14use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\EntityTypeChecker;
15use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\FormatChecker;
16use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\IntegerChecker;
17use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\InverseChecker;
18use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\ItemChecker;
19use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\LabelInLanguageChecker;
20use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\Lexeme\LanguageChecker;
21use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\MandatoryQualifiersChecker;
22use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\MultiValueChecker;
23use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\NoBoundsChecker;
24use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\NoneOfChecker;
25use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\OneOfChecker;
26use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\PropertyScopeChecker;
27use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\QualifierChecker;
28use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\QualifiersChecker;
29use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\RangeChecker;
30use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\ReferenceChecker;
31use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\SingleBestValueChecker;
32use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\SingleValueChecker;
33use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\SymmetricChecker;
34use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\TargetRequiredClaimChecker;
35use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\TypeChecker;
36use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\UniqueValueChecker;
37use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\ValueOnlyChecker;
38use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\ValueTypeChecker;
39
40return [
41    ConstraintCheckerServices::CONFLICTS_WITH_CHECKER => static function ( MediaWikiServices $services ): ConflictsWithChecker {
42        return new ConflictsWithChecker(
43            ConstraintsServices::getConstraintParameterParser( $services ),
44            ConstraintsServices::getConnectionCheckerHelper( $services )
45        );
46    },
47
48    ConstraintCheckerServices::ITEM_CHECKER => static function ( MediaWikiServices $services ): ItemChecker {
49        return new ItemChecker(
50            ConstraintsServices::getConstraintParameterParser( $services ),
51            ConstraintsServices::getConnectionCheckerHelper( $services )
52        );
53    },
54
55    ConstraintCheckerServices::TARGET_REQUIRED_CLAIM_CHECKER => static function (
56        MediaWikiServices $services
57    ): TargetRequiredClaimChecker {
58        return new TargetRequiredClaimChecker(
59            WikibaseServices::getEntityLookup( $services ),
60            ConstraintsServices::getConstraintParameterParser( $services ),
61            ConstraintsServices::getConnectionCheckerHelper( $services )
62        );
63    },
64
65    ConstraintCheckerServices::SYMMETRIC_CHECKER => static function ( MediaWikiServices $services ): SymmetricChecker {
66        return new SymmetricChecker(
67            WikibaseServices::getEntityLookupWithoutCache( $services ),
68            ConstraintsServices::getConnectionCheckerHelper( $services )
69        );
70    },
71
72    ConstraintCheckerServices::INVERSE_CHECKER => static function ( MediaWikiServices $services ): InverseChecker {
73        return new InverseChecker(
74            WikibaseServices::getEntityLookup( $services ),
75            ConstraintsServices::getConstraintParameterParser( $services ),
76            ConstraintsServices::getConnectionCheckerHelper( $services )
77        );
78    },
79
80    ConstraintCheckerServices::QUALIFIER_CHECKER => static function ( MediaWikiServices $services ): QualifierChecker {
81        return new QualifierChecker();
82    },
83
84    ConstraintCheckerServices::QUALIFIERS_CHECKER => static function ( MediaWikiServices $services ): QualifiersChecker {
85        return new QualifiersChecker(
86            ConstraintsServices::getConstraintParameterParser( $services )
87        );
88    },
89
90    ConstraintCheckerServices::MANDATORY_QUALIFIERS_CHECKER => static function (
91        MediaWikiServices $services
92    ): MandatoryQualifiersChecker {
93        return new MandatoryQualifiersChecker(
94            ConstraintsServices::getConstraintParameterParser( $services )
95        );
96    },
97
98    ConstraintCheckerServices::RANGE_CHECKER => static function ( MediaWikiServices $services ): RangeChecker {
99        return new RangeChecker(
100            WikibaseServices::getPropertyDataTypeLookup( $services ),
101            ConstraintsServices::getConstraintParameterParser( $services ),
102            ConstraintsServices::getRangeCheckerHelper( $services )
103        );
104    },
105
106    ConstraintCheckerServices::DIFF_WITHIN_RANGE_CHECKER => static function (
107        MediaWikiServices $services
108    ): DiffWithinRangeChecker {
109        return new DiffWithinRangeChecker(
110            ConstraintsServices::getConstraintParameterParser( $services ),
111            ConstraintsServices::getRangeCheckerHelper( $services ),
112            $services->getMainConfig()
113        );
114    },
115
116    ConstraintCheckerServices::TYPE_CHECKER => static function ( MediaWikiServices $services ): TypeChecker {
117        return new TypeChecker(
118            ConstraintsServices::getConstraintParameterParser( $services ),
119            ConstraintsServices::getTypeCheckerHelper( $services ),
120            $services->getMainConfig()
121        );
122    },
123
124    ConstraintCheckerServices::VALUE_TYPE_CHECKER => static function ( MediaWikiServices $services ): ValueTypeChecker {
125        return new ValueTypeChecker(
126            WikibaseServices::getEntityLookup( $services ),
127            ConstraintsServices::getConstraintParameterParser( $services ),
128            ConstraintsServices::getTypeCheckerHelper( $services ),
129            $services->getMainConfig()
130        );
131    },
132
133    ConstraintCheckerServices::SINGLE_VALUE_CHECKER => static function ( MediaWikiServices $services ): SingleValueChecker {
134        return new SingleValueChecker(
135            ConstraintsServices::getConstraintParameterParser( $services )
136        );
137    },
138
139    ConstraintCheckerServices::MULTI_VALUE_CHECKER => static function ( MediaWikiServices $services ): MultiValueChecker {
140        return new MultiValueChecker(
141            ConstraintsServices::getConstraintParameterParser( $services )
142        );
143    },
144
145    ConstraintCheckerServices::UNIQUE_VALUE_CHECKER => static function ( MediaWikiServices $services ): UniqueValueChecker {
146        // TODO return a different, dummy implementation if SPARQL is not available
147        return new UniqueValueChecker(
148            ConstraintsServices::getSparqlHelper( $services ),
149            ConstraintsServices::getConstraintParameterParser( $services )
150        );
151    },
152
153    ConstraintCheckerServices::FORMAT_CHECKER => static function ( MediaWikiServices $services ): FormatChecker {
154        // TODO return a different, dummy implementation if SPARQL is not available
155        return new FormatChecker(
156            ConstraintsServices::getConstraintParameterParser( $services ),
157            $services->getMainConfig(),
158            ConstraintsServices::getSparqlHelper( $services ),
159            $services->getShellboxClientFactory()
160        );
161    },
162
163    ConstraintCheckerServices::COMMONS_LINK_CHECKER => static function ( MediaWikiServices $services ): CommonsLinkChecker {
164        $pageNameNormalizer = new MediaWikiPageNameNormalizer();
165        return new CommonsLinkChecker(
166            ConstraintsServices::getConstraintParameterParser( $services ),
167            $pageNameNormalizer,
168            WikibaseRepo::getPropertyDataTypeLookup( $services )
169        );
170    },
171
172    ConstraintCheckerServices::ONE_OF_CHECKER => static function ( MediaWikiServices $services ): OneOfChecker {
173        return new OneOfChecker(
174            ConstraintsServices::getConstraintParameterParser( $services )
175        );
176    },
177
178    ConstraintCheckerServices::VALUE_ONLY_CHECKER => static function ( MediaWikiServices $services ): ValueOnlyChecker {
179        return new ValueOnlyChecker();
180    },
181
182    ConstraintCheckerServices::REFERENCE_CHECKER => static function ( MediaWikiServices $services ): ReferenceChecker {
183        return new ReferenceChecker();
184    },
185
186    ConstraintCheckerServices::NO_BOUNDS_CHECKER => static function ( MediaWikiServices $services ): NoBoundsChecker {
187        return new NoBoundsChecker();
188    },
189
190    ConstraintCheckerServices::ALLOWED_UNITS_CHECKER => static function ( MediaWikiServices $services ): AllowedUnitsChecker {
191        return new AllowedUnitsChecker(
192            ConstraintsServices::getConstraintParameterParser( $services ),
193            WikibaseRepo::getUnitConverter( $services )
194        );
195    },
196
197    ConstraintCheckerServices::SINGLE_BEST_VALUE_CHECKER => static function (
198        MediaWikiServices $services
199    ): SingleBestValueChecker {
200        return new SingleBestValueChecker(
201            ConstraintsServices::getConstraintParameterParser( $services )
202        );
203    },
204
205    ConstraintCheckerServices::ENTITY_TYPE_CHECKER => static function ( MediaWikiServices $services ): EntityTypeChecker {
206        return new EntityTypeChecker(
207            ConstraintsServices::getConstraintParameterParser( $services )
208        );
209    },
210
211    ConstraintCheckerServices::NONE_OF_CHECKER => static function ( MediaWikiServices $services ): NoneOfChecker {
212        return new NoneOfChecker(
213            ConstraintsServices::getConstraintParameterParser( $services )
214        );
215    },
216
217    ConstraintCheckerServices::INTEGER_CHECKER => static function ( MediaWikiServices $services ): IntegerChecker {
218        return new IntegerChecker();
219    },
220
221    ConstraintCheckerServices::CITATION_NEEDED_CHECKER => static function ( MediaWikiServices $services ): CitationNeededChecker {
222        return new CitationNeededChecker();
223    },
224
225    ConstraintCheckerServices::PROPERTY_SCOPE_CHECKER => static function ( MediaWikiServices $services ): PropertyScopeChecker {
226        return new PropertyScopeChecker(
227            ConstraintsServices::getConstraintParameterParser( $services )
228        );
229    },
230
231    ConstraintCheckerServices::CONTEMPORARY_CHECKER => static function ( MediaWikiServices $services ): ContemporaryChecker {
232        return new ContemporaryChecker(
233            WikibaseServices::getEntityLookup( $services ),
234            ConstraintsServices::getRangeCheckerHelper( $services ),
235            $services->getMainConfig()
236        );
237    },
238
239    ConstraintCheckerServices::LEXEME_LANGUAGE_CHECKER => static function ( MediaWikiServices $services ): LanguageChecker {
240        return new LanguageChecker(
241            ConstraintsServices::getConstraintParameterParser( $services ),
242            WikibaseServices::getEntityLookup( $services )
243        );
244    },
245
246    ConstraintCheckerServices::LABEL_IN_LANGUAGE_CHECKER => static function (
247        MediaWikiServices $services
248    ): LabelInLanguageChecker {
249        return new LabelInLanguageChecker(
250            ConstraintsServices::getConstraintParameterParser( $services )
251        );
252    },
253];