45 private static $validators = [
46 'BraceBalance' => BraceBalanceValidator::class,
47 'EscapeCharacter' => EscapeCharacterValidator::class,
48 'FluentVariable' => FluentVariableValidator::class,
49 'GettextNewline' => GettextNewlineValidator::class,
50 'GettextPlural' => GettextPluralValidator::class,
51 'InsertableRegex' => InsertableRegexValidator::class,
52 'InsertableRubyVariable' => InsertableRubyVariableValidator::class,
53 'IosVariable' => IosVariableValidator::class,
54 'MatchSet' => MatchSetValidator::class,
55 'MediaWikiGender' => [
56 'class' => MediaWikiGenderValidator::class,
63 'MediaWikiLink' => MediaWikiLinkValidator::class,
64 'MediaWikiPageName' => MediaWikiPageNameValidator::class,
65 'MediaWikiParameter' => MediaWikiParameterValidator::class,
66 'MediaWikiPlural' => [
67 'class' => MediaWikiPluralValidator::class,
74 'MediaWikiTimeList' => MediaWikiTimeListValidator::class,
75 'Newline' => NewlineValidator::class,
76 'NotEmpty' => NotEmptyValidator::class,
77 'NotSupported' => NotSupportedValidator::class,
78 'NumericalParameter' => NumericalParameterValidator::class,
79 'PercentEscape' => PercentEscapeValidator::class,
80 'Printf' => PrintfValidator::class,
81 'PrintfIndexedParameter' => PrintfIndexedParameterValidator::class,
82 'PythonInterpolation' => PythonInterpolationValidator::class,
83 'PythonNamedParameter' => PythonNamedParameterValidator::class,
84 'Replacement' => ReplacementValidator::class,
85 'SmartFormatPlural' => SmartFormatPluralValidator::class,
86 'UnicodePlural' => UnicodePluralValidator::class,
97 public static function get( $id, $params = null ) {
98 if ( !isset( self::$validators[ $id ] ) ) {
99 throw new InvalidArgumentException(
"Could not find validator with id - '$id'. " );
102 $spec = self::$validators[ $id ];
103 if ( is_string( $spec ) ) {
104 $spec = [
'class' => $spec ];
109 $spec[
'args'] = [ $params ];
112 return MediaWikiServices::getInstance()->getObjectFactory()->createObject( $spec );
124 if ( !class_exists( $class ) ) {
125 throw new InvalidArgumentException(
"Could not find validator class - '$class'. " );
128 return new $class( $params );