39 private static $validators = [
40 'BraceBalance' => BraceBalanceValidator::class,
41 'EscapeCharacter' => EscapeCharacterValidator::class,
42 'GettextNewline' => GettextNewlineValidator::class,
43 'GettextPlural' => GettextPluralValidator::class,
44 'InsertableRegex' => InsertableRegexValidator::class,
45 'InsertableRubyVariable' => InsertableRubyVariableValidator::class,
46 'IosVariable' => IosVariableValidator::class,
47 'MatchSet' => MatchSetValidator::class,
48 'MediaWikiLink' => MediaWikiLinkValidator::class,
49 'MediaWikiPageName' => MediaWikiPageNameValidator::class,
50 'MediaWikiParameter' => MediaWikiParameterValidator::class,
51 'MediaWikiPlural' => [
52 'class' => MediaWikiPluralValidator::class,
59 'MediaWikiTimeList' => MediaWikiTimeListValidator::class,
60 'Newline' => NewlineValidator::class,
61 'NotEmpty' => NotEmptyValidator::class,
62 'NumericalParameter' => NumericalParameterValidator::class,
63 'Printf' => PrintfValidator::class,
64 'PythonInterpolation' => PythonInterpolationValidator::class,
65 'Replacement' => ReplacementValidator::class,
66 'SmartFormatPlural' => SmartFormatPluralValidator::class,
67 'UnicodePlural' => UnicodePluralValidator::class,
78 public static function get( $id, $params = null ) {
79 if ( !isset( self::$validators[ $id ] ) ) {
80 throw new InvalidArgumentException(
"Could not find validator with id - '$id'. " );
83 $spec = self::$validators[ $id ];
84 if ( is_string( $spec ) ) {
85 $spec = [
'class' => $spec ];
90 $spec[
'args'] = [ $params ];
95 return MediaWikiServices::getInstance()->getObjectFactory()->createObject( $spec );
107 if ( !class_exists( $class ) ) {
108 throw new InvalidArgumentException(
"Could not find validator class - '$class'. " );
111 return new $class( $params );