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

Change subject: Inline the instantiation of EntityParserOutputDataUpdater into 
EntityParserOutputGenerator
......................................................................


Inline the instantiation of EntityParserOutputDataUpdater into 
EntityParserOutputGenerator

As said in
https://gerrit.wikimedia.org/r/#/c/244643/3/repo/includes/DataUpdates/EntityParserOutputDataUpdater.php
and other comments, the border between these two classes is not very obvious.
Both are supposed to generate and/or update the parser output. Also what we
currently call "data updater" is so simple that it's barely worth the cost
of an additional class.

This patch removes the injection aspect, but does not remove the 
EntityParserOutputDataUpdater.
Further refactoring is left for later patches.

Bug: T114220
Change-Id: I3dfe8eca6533d37002bdfc6cbd196879d3410632
---
M repo/includes/ParserOutput/EntityParserOutputDataUpdater.php
M repo/includes/ParserOutput/EntityParserOutputGenerator.php
M repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
M repo/tests/phpunit/includes/ParserOutput/EntityParserOutputDataUpdaterTest.php
M repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
5 files changed, 25 insertions(+), 20 deletions(-)

Approvals:
  Daniel Kinzler: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/repo/includes/ParserOutput/EntityParserOutputDataUpdater.php 
b/repo/includes/ParserOutput/EntityParserOutputDataUpdater.php
index 31531c7..3cb694c 100644
--- a/repo/includes/ParserOutput/EntityParserOutputDataUpdater.php
+++ b/repo/includes/ParserOutput/EntityParserOutputDataUpdater.php
@@ -20,6 +20,11 @@
 class EntityParserOutputDataUpdater {
 
        /**
+        * @var ParserOutput
+        */
+       private $parserOutput;
+
+       /**
         * @var ParserOutputDataUpdate[]
         */
        private $dataUpdates;
@@ -35,11 +40,12 @@
        private $siteLinkDataUpdates = array();
 
        /**
+        * @param ParserOutput $parserOutput
         * @param ParserOutputDataUpdate[] $dataUpdates
         *
         * @throws InvalidArgumentException
         */
-       public function __construct( array $dataUpdates ) {
+       public function __construct( ParserOutput $parserOutput, array 
$dataUpdates ) {
                foreach ( $dataUpdates as $dataUpdate ) {
                        if ( $dataUpdate instanceof StatementDataUpdate ) {
                                $this->statementDataUpdates[] = $dataUpdate;
@@ -51,6 +57,7 @@
                        }
                }
 
+               $this->parserOutput = $parserOutput;
                $this->dataUpdates = $dataUpdates;
        }
 
@@ -97,12 +104,9 @@
                }
        }
 
-       /**
-        * @param ParserOutput $parserOutput
-        */
-       public function updateParserOutput( ParserOutput $parserOutput ) {
+       public function finish() {
                foreach ( $this->dataUpdates as $dataUpdate ) {
-                       $dataUpdate->updateParserOutput( $parserOutput );
+                       $dataUpdate->updateParserOutput( $this->parserOutput );
                }
        }
 
diff --git a/repo/includes/ParserOutput/EntityParserOutputGenerator.php 
b/repo/includes/ParserOutput/EntityParserOutputGenerator.php
index f884f9e..e26d06a 100644
--- a/repo/includes/ParserOutput/EntityParserOutputGenerator.php
+++ b/repo/includes/ParserOutput/EntityParserOutputGenerator.php
@@ -76,9 +76,9 @@
        private $entityDataFormatProvider;
 
        /**
-        * @var EntityParserOutputDataUpdater
+        * @var ParserOutputDataUpdate[]
         */
-       private $parserOutputDataUpdater;
+       private $dataUpdates;
 
        /**
         * @var string
@@ -93,7 +93,7 @@
                LanguageFallbackChain $languageFallbackChain,
                TemplateFactory $templateFactory,
                EntityDataFormatProvider $entityDataFormatProvider,
-               EntityParserOutputDataUpdater $parserOutputDataUpdater,
+               array $dataUpdates,
                $languageCode
        ) {
                $this->entityViewFactory = $entityViewFactory;
@@ -104,7 +104,7 @@
                $this->languageCode = $languageCode;
                $this->templateFactory = $templateFactory;
                $this->entityDataFormatProvider = $entityDataFormatProvider;
-               $this->parserOutputDataUpdater = $parserOutputDataUpdater;
+               $this->dataUpdates = $dataUpdates;
                $this->languageCode = $languageCode;
        }
 
@@ -142,8 +142,9 @@
 
                $entity = $entityRevision->getEntity();
 
-               $this->parserOutputDataUpdater->processEntity( $entity );
-               $this->parserOutputDataUpdater->updateParserOutput( 
$parserOutput );
+               $dataUpdater = new EntityParserOutputDataUpdater( 
$parserOutput, $this->dataUpdates );
+               $dataUpdater->processEntity( $entity );
+               $dataUpdater->finish();
 
                $configVars = $this->configBuilder->build( $entity );
                $parserOutput->addJsConfigVars( $configVars );
diff --git a/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php 
b/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
index 96c5231..ef3adbd 100644
--- a/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
+++ b/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
@@ -134,7 +134,7 @@
                        $this->getLanguageFallbackChain( $languageCode ),
                        $this->templateFactory,
                        $this->entityDataFormatProvider,
-                       new EntityParserOutputDataUpdater( 
$this->getDataUpdates() ),
+                       $this->getDataUpdates(),
                        $languageCode
                );
        }
diff --git 
a/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputDataUpdaterTest.php
 
b/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputDataUpdaterTest.php
index 6bb4b72..4a923c1 100644
--- 
a/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputDataUpdaterTest.php
+++ 
b/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputDataUpdaterTest.php
@@ -2,6 +2,7 @@
 
 namespace Wikibase\Repo\Tests\ParserOutput;
 
+use ParserOutput;
 use PHPUnit_Framework_TestCase;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\SiteLinkList;
@@ -40,14 +41,14 @@
                $siteLinkDataUpdate->expects( $this->once() )
                        ->method( 'updateParserOutput' );
 
-               $instance = new EntityParserOutputDataUpdater( array(
+               $instance = new EntityParserOutputDataUpdater( $parserOutput, 
array(
                        $statementDataUpdate,
                        $siteLinkDataUpdate,
                ) );
                foreach ( $entities as $entity ) {
                        $instance->processEntity( $entity );
                }
-               $instance->updateParserOutput( $parserOutput );
+               $instance->finish();
        }
 
        public function entitiesProvider() {
@@ -72,7 +73,7 @@
         */
        public function testGivenInvalidDataUpdate_constructorThrowsException( 
array $argument ) {
                $this->setExpectedException( 'InvalidArgumentException' );
-               new EntityParserOutputDataUpdater( $argument );
+               new EntityParserOutputDataUpdater( new ParserOutput(), 
$argument );
        }
 
        public function invalidConstructorArgumentProvider() {
diff --git 
a/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php 
b/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
index f53a198..220d064 100644
--- 
a/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
+++ 
b/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
@@ -15,15 +15,14 @@
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\DataModel\Services\Lookup\InMemoryDataTypeLookup;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
-use Wikibase\Repo\ParserOutput\EntityParserOutputGenerator;
 use Wikibase\EntityRevision;
 use Wikibase\Lib\Store\PropertyDataTypeMatcher;
 use Wikibase\Lib\Store\Sql\SqlEntityInfoBuilderFactory;
-use Wikibase\Repo\ParserOutput\EntityParserOutputDataUpdater;
+use Wikibase\Repo\LinkedData\EntityDataFormatProvider;
+use Wikibase\Repo\ParserOutput\EntityParserOutputGenerator;
 use Wikibase\Repo\ParserOutput\ExternalLinksDataUpdate;
 use Wikibase\Repo\ParserOutput\ImageLinksDataUpdate;
 use Wikibase\Repo\ParserOutput\ReferencedEntitiesDataUpdate;
-use Wikibase\Repo\LinkedData\EntityDataFormatProvider;
 use Wikibase\View\Template\TemplateFactory;
 
 /**
@@ -161,7 +160,7 @@
                        $this->newLanguageFallbackChain(),
                        TemplateFactory::getDefaultInstance(),
                        $entityDataFormatProvider,
-                       new EntityParserOutputDataUpdater( $dataUpdates ),
+                       $dataUpdates,
                        'en'
                );
        }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I3dfe8eca6533d37002bdfc6cbd196879d3410632
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Hoo man <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to