Adrian Heine has uploaded a new change for review.
https://gerrit.wikimedia.org/r/291863
Change subject: WIP
......................................................................
WIP
Change-Id: Id821e4525de4380f9933d429d90751e0954bc0f5
---
M repo/WikibaseRepo.entitytypes.php
M repo/includes/ParserOutput/DispatchingEntityViewFactory.php
M repo/includes/ParserOutput/EntityParserOutputGenerator.php
M repo/tests/phpunit/includes/EntityTypesTest.php
M repo/tests/phpunit/includes/ParserOutput/DispatchingEntityViewFactoryTest.php
5 files changed, 24 insertions(+), 53 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/63/291863/1
diff --git a/repo/WikibaseRepo.entitytypes.php
b/repo/WikibaseRepo.entitytypes.php
index 1fbe0d2..c739fa6 100644
--- a/repo/WikibaseRepo.entitytypes.php
+++ b/repo/WikibaseRepo.entitytypes.php
@@ -22,7 +22,6 @@
use Wikibase\LanguageFallbackChain;
use Wikibase\Repo\WikibaseRepo;
use Wikibase\View\EditSectionGenerator;
-use Wikibase\View\EntityTermsView;
return array(
'item' => array(
@@ -30,16 +29,14 @@
$languageCode,
LabelDescriptionLookup $labelDescriptionLookup,
LanguageFallbackChain $fallbackChain,
- EditSectionGenerator $editSectionGenerator,
- EntityTermsView $entityTermsView
+ EditSectionGenerator $editSectionGenerator
) {
$viewFactory =
WikibaseRepo::getDefaultInstance()->getViewFactory();
return $viewFactory->newItemView(
$languageCode,
$labelDescriptionLookup,
$fallbackChain,
- $editSectionGenerator,
- $entityTermsView
+ $editSectionGenerator
);
},
'content-model-id' => CONTENT_MODEL_WIKIBASE_ITEM,
@@ -57,15 +54,13 @@
LabelDescriptionLookup $labelDescriptionLookup,
LanguageFallbackChain $fallbackChain,
EditSectionGenerator $editSectionGenerator,
- EntityTermsView $entityTermsView
) {
$viewFactory =
WikibaseRepo::getDefaultInstance()->getViewFactory();
return $viewFactory->newPropertyView(
$languageCode,
$labelDescriptionLookup,
$fallbackChain,
- $editSectionGenerator,
- $entityTermsView
+ $editSectionGenerator
);
},
'content-model-id' => CONTENT_MODEL_WIKIBASE_PROPERTY,
diff --git a/repo/includes/ParserOutput/DispatchingEntityViewFactory.php
b/repo/includes/ParserOutput/DispatchingEntityViewFactory.php
index 2c40517..8b654dc 100644
--- a/repo/includes/ParserOutput/DispatchingEntityViewFactory.php
+++ b/repo/includes/ParserOutput/DispatchingEntityViewFactory.php
@@ -7,7 +7,6 @@
use Wikibase\LanguageFallbackChain;
use Wikibase\View\EditSectionGenerator;
use Wikibase\View\EntityView;
-use Wikibase\View\EntityTermsView;
use Wikimedia\Assert\Assert;
/**
@@ -42,7 +41,6 @@
* @param LabelDescriptionLookup $labelDescriptionLookup
* @param LanguageFallbackChain $languageFallbackChain
* @param EditSectionGenerator $editSectionGenerator
- * @param EntityTermsView $entityTermsView
*
* @throws OutOfBoundsException
* @return EntityView
@@ -52,8 +50,7 @@
$languageCode,
LabelDescriptionLookup $labelDescriptionLookup,
LanguageFallbackChain $languageFallbackChain,
- EditSectionGenerator $editSectionGenerator,
- EntityTermsView $entityTermsView
+ EditSectionGenerator $editSectionGenerator
) {
if ( !isset( $this->entityViewFactoryCallbacks[$entityType] ) )
{
throw new OutOfBoundsException( "No EntityView is
registered for entity type '$entityType'" );
@@ -64,8 +61,7 @@
$languageCode,
$labelDescriptionLookup,
$languageFallbackChain,
- $editSectionGenerator,
- $entityTermsView
+ $editSectionGenerator
);
Assert::postcondition(
diff --git a/repo/includes/ParserOutput/EntityParserOutputGenerator.php
b/repo/includes/ParserOutput/EntityParserOutputGenerator.php
index 0944154..cc039c4 100644
--- a/repo/includes/ParserOutput/EntityParserOutputGenerator.php
+++ b/repo/includes/ParserOutput/EntityParserOutputGenerator.php
@@ -283,36 +283,29 @@
$this->textProvider
) : new EmptyEditSectionGenerator();
- $languageDirectionalityLookup = new
MediaWikiLanguageDirectionalityLookup();
- $languageNameLookup = new LanguageNameLookup(
$this->languageCode );
- $termsListView = new TermsListView(
- TemplateFactory::getDefaultInstance(),
- $languageNameLookup,
- new MediaWikiLocalizedTextProvider( $this->languageCode
),
- $languageDirectionalityLookup
- );
-
$textInjector = new TextInjector();
- $entityTermsView = new PlaceholderEmittingEntityTermsView(
- new FallbackHintHtmlTermRenderer(
- $languageDirectionalityLookup,
- $languageNameLookup
- ),
- $labelDescriptionLookup,
- $this->templateFactory,
- $editSectionGenerator,
- $this->textProvider,
- $termsListView,
- $textInjector
- );
+
+ /**
+ * TextInjector needs to be created here
+ * WBRepo/DispatchingEntityViewFactory should not know about it
+ * EntityType::view-factory-callback should not know about it
+ * WBView/ViewFactory must not know about it
+ * TextInjector is used in PlaceholderEmittingEntityTermsView
+
+ * Make DispatchingEntityViewFactory extend ViewFactory
+ * Add ViewFactory::newEntityTermsView
+ * Make DispatchingEntityViewFactory::newEntityTermsView return
a PlaceholderEmittingEntityTermsView
+ * Make DispatchingEntityViewFactory::newEntityView take a
textInjector
+ * Make it pass $this to the builder functions
+ * Let the builders use $this->newEntityTermsView
+ */
$entityView = $this->entityViewFactory->newEntityView(
$entity->getType(),
$this->languageCode,
$labelDescriptionLookup,
$this->languageFallbackChain,
- $editSectionGenerator,
- $entityTermsView
+ $editSectionGenerator
);
// Set the display title to display the label together with the
item's id
diff --git a/repo/tests/phpunit/includes/EntityTypesTest.php
b/repo/tests/phpunit/includes/EntityTypesTest.php
index 855f1f1..62257ea 100644
--- a/repo/tests/phpunit/includes/EntityTypesTest.php
+++ b/repo/tests/phpunit/includes/EntityTypesTest.php
@@ -7,7 +7,6 @@
use Wikibase\LanguageFallbackChain;
use Wikibase\Repo\Content\EntityHandler;
use Wikibase\View\EditSectionGenerator;
-use Wikibase\View\EntityTermsView;
use Wikibase\View\EntityView;
/**
@@ -51,15 +50,12 @@
$this->assertInternalType( 'callable', $callback );
- $entityTermsView = $this->getMock( EntityTermsView::class );
-
$entityView = call_user_func(
$callback,
'en',
$this->getMock( LabelDescriptionLookup::class ),
new LanguageFallbackChain( [] ),
- $this->getMock( EditSectionGenerator::class ),
- $entityTermsView
+ $this->getMock( EditSectionGenerator::class )
);
$this->assertInstanceOf( EntityView::class, $entityView );
diff --git
a/repo/tests/phpunit/includes/ParserOutput/DispatchingEntityViewFactoryTest.php
b/repo/tests/phpunit/includes/ParserOutput/DispatchingEntityViewFactoryTest.php
index cd81a3f..e05f29d 100644
---
a/repo/tests/phpunit/includes/ParserOutput/DispatchingEntityViewFactoryTest.php
+++
b/repo/tests/phpunit/includes/ParserOutput/DispatchingEntityViewFactoryTest.php
@@ -10,7 +10,6 @@
use Wikibase\LanguageFallbackChain;
use Wikibase\Repo\ParserOutput\DispatchingEntityViewFactory;
use Wikibase\View\EditSectionGenerator;
-use Wikibase\View\EntityTermsView;
use Wikibase\View\EntityView;
/**
@@ -37,15 +36,13 @@
$factory = new DispatchingEntityViewFactory(
array()
);
- $entityTermsView = $this->getMock( EntityTermsView::class );
$factory->newEntityView(
'unknown',
'en',
$this->getMock( LabelDescriptionLookup::class ),
new LanguageFallbackChain( array() ),
- $this->getMock( EditSectionGenerator::class ),
- $entityTermsView
+ $this->getMock( EditSectionGenerator::class )
);
}
@@ -60,15 +57,13 @@
}
)
);
- $entityTermsView = $this->getMock( EntityTermsView::class );
$factory->newEntityView(
'foo',
'en',
$this->getMock( LabelDescriptionLookup::class ),
new LanguageFallbackChain( array() ),
- $this->getMock( EditSectionGenerator::class ),
- $entityTermsView
+ $this->getMock( EditSectionGenerator::class )
);
}
@@ -76,7 +71,6 @@
$labelDescriptionLookup = $this->getMock(
LabelDescriptionLookup::class );
$languageFallbackChain = new LanguageFallbackChain( array() );
$editSectionGenerator = $this->getMock(
EditSectionGenerator::class );
- $entityTermsView = $this->getMock( EntityTermsView::class );
$entityView = $this->getMockBuilder( EntityView::class )
->disableOriginalConstructor()
->getMockForAbstractClass();
@@ -88,19 +82,16 @@
LabelDescriptionLookup
$labelDescriptionLookupParam,
LanguageFallbackChain
$languageFallbackChainParam,
EditSectionGenerator
$editSectionGeneratorParam,
- EntityTermsView $entityTermsViewParam
) use(
$labelDescriptionLookup,
$languageFallbackChain,
$editSectionGenerator,
- $entityTermsView,
$entityView
) {
$this->assertEquals( 'en',
$languageCodeParam );
$this->assertSame(
$labelDescriptionLookup, $labelDescriptionLookupParam );
$this->assertSame(
$languageFallbackChain, $languageFallbackChainParam );
$this->assertSame(
$editSectionGenerator, $editSectionGeneratorParam );
- $this->assertSame( $entityTermsView,
$entityTermsViewParam );
return $entityView;
}
--
To view, visit https://gerrit.wikimedia.org/r/291863
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Id821e4525de4380f9933d429d90751e0954bc0f5
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Heine <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits