jenkins-bot has submitted this change and it was merged.

Change subject: Refactor DataAccessSnakFormatterFactory
......................................................................


Refactor DataAccessSnakFormatterFactory

This is split from If613ac0 to make it easier to review. The goal is to
reduce duplication. Otherwise there would be the same if-else in multiple
places in the code base, just to call these two methods that don't do
anything but turning their name into a string parameter.

Bug: T113955
Change-Id: I1308fb883af64d8e9df3d27dba0b044f19f40cc5
---
M client/includes/DataAccess/DataAccessSnakFormatterFactory.php
M 
client/includes/DataAccess/PropertyParserFunction/StatementGroupRendererFactory.php
M client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php
M client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php
M 
client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php
M 
client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterOutputFormatTest.php
6 files changed, 24 insertions(+), 56 deletions(-)

Approvals:
  Hoo man: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/client/includes/DataAccess/DataAccessSnakFormatterFactory.php 
b/client/includes/DataAccess/DataAccessSnakFormatterFactory.php
index 703e47c..d5a2797 100644
--- a/client/includes/DataAccess/DataAccessSnakFormatterFactory.php
+++ b/client/includes/DataAccess/DataAccessSnakFormatterFactory.php
@@ -57,48 +57,19 @@
        }
 
        /**
-        * This returns a SnakFormatter that will return wikitext escaped plain 
text.
-        * The only exception are URLs, these are plain text, but not escaped 
in any
-        * way.
+        * This returns a SnakFormatter that will return either "rich" 
wikitext, or wikitext escaped
+        * plain text. The only exception are URLs, these are not escaped but 
plain text.
         *
         * @param Language $language
         * @param UsageAccumulator $usageAccumulator
+        * @param string $type Either "escaped-plaintext" or "rich-wikitext".
         *
         * @return SnakFormatter
         */
-       public function newEscapedPlainTextSnakFormatter(
+       public function newWikitextSnakFormatter(
                Language $language,
-               UsageAccumulator $usageAccumulator
-       ) {
-               return $this->newSnakFormatter( 'escaped-plaintext', $language, 
$usageAccumulator );
-       }
-
-       /**
-        * This returns a SnakFormatter that will return "rich" wikitext.
-        *
-        * @param Language $language
-        * @param UsageAccumulator $usageAccumulator
-        *
-        * @return SnakFormatter
-        */
-       public function newRichWikitextSnakFormatter(
-               Language $language,
-               UsageAccumulator $usageAccumulator
-       ) {
-               return $this->newSnakFormatter( 'rich-wikitext', $language, 
$usageAccumulator );
-       }
-
-       /**
-        * @param string $type
-        * @param Language $language
-        * @param UsageAccumulator $usageAccumulator
-        *
-        * @return SnakFormatter
-        */
-       private function newSnakFormatter(
-               $type,
-               Language $language,
-               UsageAccumulator $usageAccumulator
+               UsageAccumulator $usageAccumulator,
+               $type = 'escaped-plaintext'
        ) {
                $fallbackChain = 
$this->languageFallbackChainFactory->newFromLanguage(
                        $language,
diff --git 
a/client/includes/DataAccess/PropertyParserFunction/StatementGroupRendererFactory.php
 
b/client/includes/DataAccess/PropertyParserFunction/StatementGroupRendererFactory.php
index 1187d26..224eac1 100644
--- 
a/client/includes/DataAccess/PropertyParserFunction/StatementGroupRendererFactory.php
+++ 
b/client/includes/DataAccess/PropertyParserFunction/StatementGroupRendererFactory.php
@@ -109,17 +109,11 @@
                Language $language,
                UsageAccumulator $usageAccumulator
        ) {
-               if ( $type === 'rich-wikitext' ) {
-                       $snakFormatter = 
$this->dataAccessSnakFormatterFactory->newRichWikitextSnakFormatter(
-                               $language,
-                               $usageAccumulator
-                       );
-               } else {
-                       $snakFormatter = 
$this->dataAccessSnakFormatterFactory->newEscapedPlainTextSnakFormatter(
-                               $language,
-                               $usageAccumulator
-                       );
-               }
+               $snakFormatter = 
$this->dataAccessSnakFormatterFactory->newWikitextSnakFormatter(
+                       $language,
+                       $usageAccumulator,
+                       $type
+               );
 
                $entityStatementsRenderer = new StatementTransclusionInteractor(
                        $language,
diff --git 
a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php 
b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php
index 2fc0cfc..92b7ab6 100644
--- 
a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php
+++ 
b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php
@@ -41,13 +41,14 @@
 
                $wikibaseClient = WikibaseClient::getDefaultInstance();
                $snakFormatterFactory = 
$wikibaseClient->getDataAccessSnakFormatterFactory();
-               $plainTextSnakFormatter = 
$snakFormatterFactory->newEscapedPlainTextSnakFormatter(
+               $plainTextSnakFormatter = 
$snakFormatterFactory->newWikitextSnakFormatter(
                        $lang,
                        $this->getUsageAccumulator()
                );
-               $richWikitextSnakFormatter = 
$snakFormatterFactory->newRichWikitextSnakFormatter(
+               $richWikitextSnakFormatter = 
$snakFormatterFactory->newWikitextSnakFormatter(
                        $lang,
-                       $this->getUsageAccumulator()
+                       $this->getUsageAccumulator(),
+                       'rich-wikitext'
                );
 
                $entityLookup = $wikibaseClient->getRestrictedEntityLookup();
diff --git 
a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php 
b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php
index 18c23e2..bfae22e 100644
--- a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php
+++ b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php
@@ -221,7 +221,7 @@
                $wikibaseClient = WikibaseClient::getDefaultInstance();
 
                $snakFormatterFactory = 
$wikibaseClient->getDataAccessSnakFormatterFactory();
-               $snakFormatter = 
$snakFormatterFactory->newEscapedPlainTextSnakFormatter(
+               $snakFormatter = 
$snakFormatterFactory->newWikitextSnakFormatter(
                        $this->getLanguage(),
                        $this->getUsageAccumulator()
                );
diff --git 
a/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php
 
b/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php
index 331342f..c92b9f9 100644
--- 
a/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php
+++ 
b/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php
@@ -84,7 +84,7 @@
 
        public function testNewEscapedPlainTextSnakFormatter() {
                $factory = $this->getDataAccessSnakFormatterFactory( 
SnakFormatter::FORMAT_PLAIN );
-               $snakFormatter = $factory->newEscapedPlainTextSnakFormatter(
+               $snakFormatter = $factory->newWikitextSnakFormatter(
                        Language::factory( 'fr' ),
                        $this->getMock( UsageAccumulator::class )
                );
@@ -107,9 +107,10 @@
         */
        public function testRichWikitextSnakFormatter( Snak $snak, $expected ) {
                $factory = $this->getDataAccessSnakFormatterFactory( 
SnakFormatter::FORMAT_WIKI );
-               $snakFormatter = $factory->newRichWikitextSnakFormatter(
+               $snakFormatter = $factory->newWikitextSnakFormatter(
                        Language::factory( 'fr' ),
-                       $this->getMock( UsageAccumulator::class )
+                       $this->getMock( UsageAccumulator::class ),
+                       'rich-wikitext'
                );
 
                $this->assertSame( $expected, $snakFormatter->formatSnak( $snak 
) );
diff --git 
a/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterOutputFormatTest.php
 
b/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterOutputFormatTest.php
index 3d36bda..744b1b8 100644
--- 
a/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterOutputFormatTest.php
+++ 
b/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterOutputFormatTest.php
@@ -235,9 +235,10 @@
        public function testRichWikitextOutput( $expected, $snak ) {
                // This is an integration test, use the global factory
                $factory = 
WikibaseClient::getDefaultInstance()->getDataAccessSnakFormatterFactory();
-               $formatter = $factory->newRichWikitextSnakFormatter(
+               $formatter = $factory->newWikitextSnakFormatter(
                        Language::factory( 'en' ),
-                       $this->getMock( UsageAccumulator::class )
+                       $this->getMock( UsageAccumulator::class ),
+                       'rich-wikitext'
                );
 
                $this->assertSame( $expected, $formatter->formatSnak( $snak ) );
@@ -286,7 +287,7 @@
        public function testEscapedPlainTextOutput( $expected, $snak ) {
                // This is an integration test, use the global factory
                $factory = 
WikibaseClient::getDefaultInstance()->getDataAccessSnakFormatterFactory();
-               $formatter = $factory->newEscapedPlainTextSnakFormatter(
+               $formatter = $factory->newWikitextSnakFormatter(
                        Language::factory( 'en' ),
                        $this->getMock( UsageAccumulator::class )
                );

-- 
To view, visit https://gerrit.wikimedia.org/r/320790
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I1308fb883af64d8e9df3d27dba0b044f19f40cc5
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de>
Gerrit-Reviewer: Hoo man <h...@online.de>
Gerrit-Reviewer: Jackmcbarn <jackmcb...@gmail.com>
Gerrit-Reviewer: Jonas Kress (WMDE) <jonas.kr...@wikimedia.de>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to