Skip to content

Commit 4057f88

Browse files
jenkins-botGerrit Code Review
authored andcommitted
Merge "Remove LanguageWithConversion methods returning Language"
2 parents d2604d6 + 58056bb commit 4057f88

File tree

7 files changed

+27
-64
lines changed

7 files changed

+27
-64
lines changed

extension-repo.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,7 @@
500500
"MyLanguageFallbackChain": {
501501
"class": "Wikibase\\Repo\\Specials\\SpecialMyLanguageFallbackChain",
502502
"services": [
503+
"LanguageFactory",
503504
"LanguageNameUtils",
504505
"WikibaseRepo.LanguageFallbackChainFactory"
505506
]

lib/includes/LanguageWithConversion.php

Lines changed: 2 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,11 @@ class LanguageWithConversion {
2020
*/
2121
private static $objectCache = [];
2222

23-
/**
24-
* @var Language|null
25-
*/
26-
private $language;
27-
2823
/**
2924
* @var string
3025
*/
3126
private $languageCode;
3227

33-
/**
34-
* @var Language|null
35-
*/
36-
private $sourceLanguage;
37-
3828
/**
3929
* @var string|null
4030
*/
@@ -56,22 +46,16 @@ class LanguageWithConversion {
5646
private $translatePool = [];
5747

5848
/**
59-
* @param null|Language $language
6049
* @param string $languageCode
61-
* @param null|Language $sourceLanguage
6250
* @param null|string $sourceLanguageCode
6351
* @param null|Language $parentLanguage
6452
*/
6553
private function __construct(
66-
?Language $language,
6754
$languageCode,
68-
Language $sourceLanguage = null,
6955
$sourceLanguageCode = null,
7056
Language $parentLanguage = null
7157
) {
72-
$this->language = $language;
7358
$this->languageCode = $languageCode;
74-
$this->sourceLanguage = $sourceLanguage;
7559
$this->sourceLanguageCode = $sourceLanguageCode;
7660
$this->parentLanguage = $parentLanguage;
7761
}
@@ -113,14 +97,12 @@ public static function validateLanguageCode( $code ) {
11397
public static function factory( $language, $sourceLanguage = null ) {
11498
if ( is_string( $language ) ) {
11599
$languageCode = self::validateLanguageCode( $language );
116-
$language = null;
117100
} else {
118101
$languageCode = $language->getCode();
119102
}
120103

121104
if ( is_string( $sourceLanguage ) ) {
122105
$sourceLanguageCode = self::validateLanguageCode( $sourceLanguage );
123-
$sourceLanguage = null;
124106
} elseif ( $sourceLanguage === null ) {
125107
$sourceLanguageCode = null;
126108
} else {
@@ -136,10 +118,7 @@ public static function factory( $language, $sourceLanguage = null ) {
136118
$services = MediaWikiServices::getInstance();
137119
$langFactory = $services->getLanguageFactory();
138120
$langConvFactory = $services->getLanguageConverterFactory();
139-
if ( !$language ) {
140-
$language = $langFactory->getLanguage( $languageCode );
141-
}
142-
$parentLanguage = $langFactory->getParentLanguage( $language->getCode() );
121+
$parentLanguage = $langFactory->getParentLanguage( $languageCode );
143122

144123
if ( !$parentLanguage ) {
145124
throw new MWException( __METHOD__ . ': $language does not support conversion' );
@@ -152,7 +131,7 @@ public static function factory( $language, $sourceLanguage = null ) {
152131
$parentLanguage = null;
153132
}
154133

155-
$object = new self( $language, $languageCode, $sourceLanguage, $sourceLanguageCode, $parentLanguage );
134+
$object = new self( $languageCode, $sourceLanguageCode, $parentLanguage );
156135
self::$objectCache[$languageCode][$sourceLanguageKey] = $object;
157136
return $object;
158137
}
@@ -166,19 +145,6 @@ public function getLanguageCode() {
166145
return $this->languageCode;
167146
}
168147

169-
/**
170-
* Get the language this object wraps.
171-
*
172-
* @return Language
173-
*/
174-
public function getLanguage() {
175-
if ( !$this->language ) {
176-
$this->language = MediaWikiServices::getInstance()->getLanguageFactory()->getLanguage( $this->languageCode );
177-
}
178-
179-
return $this->language;
180-
}
181-
182148
/**
183149
* Get the code of the source language defined.
184150
*
@@ -188,19 +154,6 @@ public function getSourceLanguageCode() {
188154
return $this->sourceLanguageCode;
189155
}
190156

191-
/**
192-
* Get the source language defined.
193-
*
194-
* @return Language
195-
*/
196-
public function getSourceLanguage() {
197-
if ( $this->sourceLanguageCode !== null && !$this->sourceLanguage ) {
198-
$this->sourceLanguage = MediaWikiServices::getInstance()->getLanguageFactory()->getLanguage( $this->sourceLanguageCode );
199-
}
200-
201-
return $this->sourceLanguage;
202-
}
203-
204157
/**
205158
* Get the code of the language where data should be fetched.
206159
*

lib/tests/phpunit/Formatters/OutputFormatValueFormatterFactoryTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public function testApplyLanguageDefaults( FormatterOptions $options, $expectedL
124124
/** @var TermLanguageFallbackChain $languageFallback */
125125
$languageFallback = $options->getOption( FormatterLabelDescriptionLookupFactory::OPT_LANGUAGE_FALLBACK_CHAIN );
126126
$languages = $languageFallback->getFallbackChain();
127-
$lang = $languages[0]->getLanguage()->getCode();
127+
$lang = $languages[0]->getLanguageCode();
128128

129129
$this->assertEquals( $expectedFallback, $lang, 'OPT_LANGUAGE_FALLBACK_CHAIN' );
130130
}

lib/tests/phpunit/LanguageFallbackChainFactoryTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,11 @@ private function assertChainEquals( array $expectedItems, array $chain ) {
5858
$this->assertSame( count( $expectedItems ), count( $chain ) );
5959
foreach ( $expectedItems as $i => $expected ) {
6060
if ( is_array( $expected ) ) {
61-
$this->assertSame( $expected[0], $chain[$i]->getLanguage()->getCode() );
62-
$this->assertSame( $expected[1], $chain[$i]->getSourceLanguage()->getCode() );
61+
$this->assertSame( $expected[0], $chain[$i]->getLanguageCode() );
62+
$this->assertSame( $expected[1], $chain[$i]->getSourceLanguageCode() );
6363
} else {
64-
$this->assertSame( $expected, $chain[$i]->getLanguage()->getCode() );
65-
$this->assertNull( $chain[$i]->getSourceLanguage() );
64+
$this->assertSame( $expected, $chain[$i]->getLanguageCode() );
65+
$this->assertNull( $chain[$i]->getSourceLanguageCode() );
6666
}
6767
}
6868
}

lib/tests/phpunit/LanguageWithConversionTest.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,10 @@ private function assertLanguageWithConversion(
2828
$expectedSourceLangCode,
2929
$expectedFetchLangCode
3030
) {
31-
$this->assertEquals( $expectedLangCode, $obj->getLanguage()->getCode() );
3231
$this->assertEquals( $expectedLangCode, $obj->getLanguageCode() );
3332
if ( $expectedSourceLangCode === null ) {
34-
$this->assertNull( $obj->getSourceLanguage() );
3533
$this->assertNull( $obj->getSourceLanguageCode() );
3634
} else {
37-
$this->assertEquals( $expectedSourceLangCode, $obj->getSourceLanguage()->getCode() );
3835
$this->assertEquals( $expectedSourceLangCode, $obj->getSourceLanguageCode() );
3936
}
4037
$this->assertEquals( $expectedFetchLangCode, $obj->getFetchLanguageCode() );

repo/includes/Specials/SpecialMyLanguageFallbackChain.php

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use ExtensionRegistry;
88
use Html;
99
use IContextSource;
10+
use MediaWiki\Languages\LanguageFactory;
1011
use MediaWiki\Languages\LanguageNameUtils;
1112
use SpecialPage;
1213
use Wikibase\Lib\LanguageFallbackChainFactory;
@@ -25,6 +26,11 @@ class SpecialMyLanguageFallbackChain extends SpecialPage {
2526
*/
2627
private $chain;
2728

29+
/**
30+
* @var LanguageFactory
31+
*/
32+
private $languageFactory;
33+
2834
/**
2935
* @var LanguageNameUtils
3036
*/
@@ -36,11 +42,13 @@ class SpecialMyLanguageFallbackChain extends SpecialPage {
3642
private $languageFallbackChainFactory;
3743

3844
public function __construct(
45+
LanguageFactory $languageFactory,
3946
LanguageNameUtils $languageNameUtils,
4047
LanguageFallbackChainFactory $languageFallbackChainFactory
4148
) {
4249
parent::__construct( 'MyLanguageFallbackChain' );
4350

51+
$this->languageFactory = $languageFactory;
4452
$this->languageNameUtils = $languageNameUtils;
4553
$this->languageFallbackChainFactory = $languageFallbackChainFactory;
4654
}
@@ -96,13 +104,15 @@ public function execute( $subPage ): void {
96104
$this->getOutput()->addHTML( Html::openElement( 'ul' ) );
97105

98106
foreach ( $this->getLanguageFallbackChain()->getFallbackChain() as $lang ) {
99-
$language = $lang->getLanguage();
100-
$sourceLanguage = $lang->getSourceLanguage();
101-
$languageName = $this->languageNameUtils->getLanguageName( $language->getCode(), $inLanguage );
107+
$languageCode = $lang->getLanguageCode();
108+
$sourceLanguageCode = $lang->getSourceLanguageCode();
109+
$language = $this->languageFactory->getLanguage( $languageCode );
110+
$languageName = $this->languageNameUtils->getLanguageName( $languageCode, $inLanguage );
102111

103-
if ( $sourceLanguage ) {
112+
if ( $sourceLanguageCode ) {
113+
$sourceLanguage = $this->languageFactory->getLanguage( $sourceLanguageCode );
104114
$sourceLanguageName = $this->languageNameUtils
105-
->getLanguageName( $sourceLanguage->getCode(), $inLanguage );
115+
->getLanguageName( $sourceLanguageCode, $inLanguage );
106116
$msgHtml = $this->msg(
107117
'wikibase-mylanguagefallbackchain-converted-item',
108118
$language->getHtmlCode(),

repo/tests/phpunit/includes/Specials/SpecialMyLanguageFallbackChainTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@
2222
class SpecialMyLanguageFallbackChainTest extends SpecialPageTestBase {
2323

2424
protected function newSpecialPage(): SpecialMyLanguageFallbackChain {
25+
$services = $this->getServiceContainer();
2526
return new SpecialMyLanguageFallbackChain(
26-
$this->getServiceContainer()->getLanguageNameUtils(),
27-
WikibaseRepo::getLanguageFallbackChainFactory()
27+
$services->getLanguageFactory(),
28+
$services->getLanguageNameUtils(),
29+
WikibaseRepo::getLanguageFallbackChainFactory( $services )
2830
);
2931
}
3032

0 commit comments

Comments
 (0)