[MediaWiki-commits] [Gerrit] mediawiki...WikibaseLexeme[master]: Introduce and start using LexemeViewFactory
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/343920 ) Change subject: Introduce and start using LexemeViewFactory .. Introduce and start using LexemeViewFactory This is, at this point, doing nothing but moving existing code around. Note that this moves the dependency on WikibaseRepo into the new factory. I believe we should avoid this but do not wanted to do this in the same patch, making it more complicated. Bug: T161092 Change-Id: Ie3dd7b3b0d2809c30606051e338ff2f415300f8b --- M WikibaseLexeme.entitytypes.php A src/View/LexemeViewFactory.php A tests/phpunit/mediawiki/View/LexemeViewFactoryTest.php 3 files changed, 153 insertions(+), 41 deletions(-) Approvals: Jonas Kress (WMDE): Looks good to me, approved Aleksey Bekh-Ivanov (WMDE): Looks good to me, but someone else must approve jenkins-bot: Verified Thiemo Mättig (WMDE): Looks good to me, approved diff --git a/WikibaseLexeme.entitytypes.php b/WikibaseLexeme.entitytypes.php index 714ebd6..3e2ff7f 100644 --- a/WikibaseLexeme.entitytypes.php +++ b/WikibaseLexeme.entitytypes.php @@ -12,26 +12,15 @@ * @author Amir Sarabadani*/ -use Wikibase\DataModel\Entity\EntityId; -use Wikibase\Lexeme\ChangeOp\Deserialization\LemmaChangeOpDeserializer; -use Wikibase\Lexeme\ChangeOp\Deserialization\LanguageChangeOpDeserializer; -use Wikibase\Lexeme\ChangeOp\Deserialization\LexicalCategoryChangeOpDeserializer; -use Wikibase\Lexeme\Rdf\LexemeRdfBuilder; -use Wikibase\Lexeme\Validators\LexemeValidatorFactory; -use Wikibase\Lexeme\View\LexemeFormsView; -use Wikibase\Rdf\RdfVocabulary; -use Wikibase\Repo\ChangeOp\Deserialization\ClaimsChangeOpDeserializer; -use Wikibase\Repo\ChangeOp\Deserialization\TermChangeOpSerializationValidator; -use Wikibase\Repo\MediaWikiLanguageDirectionalityLookup; -use Wikibase\Repo\MediaWikiLocalizedTextProvider; -use Wikibase\Repo\ParserOutput\FallbackHintHtmlTermRenderer; -use Wikibase\Repo\WikibaseRepo; use Wikibase\DataModel\DeserializerFactory; +use Wikibase\DataModel\Entity\EntityId; use Wikibase\DataModel\SerializerFactory; use Wikibase\DataModel\Services\Lookup\LabelDescriptionLookup; -use Wikibase\Lib\LanguageNameLookup; use Wikibase\LanguageFallbackChain; +use Wikibase\Lexeme\ChangeOp\Deserialization\LanguageChangeOpDeserializer; +use Wikibase\Lexeme\ChangeOp\Deserialization\LemmaChangeOpDeserializer; use Wikibase\Lexeme\ChangeOp\Deserialization\LexemeChangeOpDeserializer; +use Wikibase\Lexeme\ChangeOp\Deserialization\LexicalCategoryChangeOpDeserializer; use Wikibase\Lexeme\Content\LexemeContent; use Wikibase\Lexeme\Content\LexemeHandler; use Wikibase\Lexeme\DataModel\Lexeme; @@ -40,10 +29,15 @@ use Wikibase\Lexeme\DataModel\Serialization\LexemeSerializer; use Wikibase\Lexeme\DataModel\Services\Diff\LexemeDiffer; use Wikibase\Lexeme\DataModel\Services\Diff\LexemePatcher; -use Wikibase\Lexeme\View\LexemeView; +use Wikibase\Lexeme\Rdf\LexemeRdfBuilder; +use Wikibase\Lexeme\Validators\LexemeValidatorFactory; +use Wikibase\Lexeme\View\LexemeViewFactory; +use Wikibase\Rdf\RdfVocabulary; +use Wikibase\Repo\ChangeOp\Deserialization\ClaimsChangeOpDeserializer; +use Wikibase\Repo\ChangeOp\Deserialization\TermChangeOpSerializationValidator; +use Wikibase\Repo\WikibaseRepo; use Wikibase\View\EditSectionGenerator; use Wikibase\View\EntityTermsView; -use Wikibase\View\Template\TemplateFactory; use Wikimedia\Purtle\RdfWriter; return [ @@ -68,32 +62,15 @@ EditSectionGenerator $editSectionGenerator, EntityTermsView $entityTermsView ) { - $wikibaseRepo = WikibaseRepo::getDefaultInstance(); - $userLanguage = $wikibaseRepo->getUserLanguage(); - $textProvider = new MediaWikiLocalizedTextProvider( $userLanguage->getCode() ); - $viewFactory = $wikibaseRepo->getViewFactory(); - $languageDirectionalityLookup = new MediaWikiLanguageDirectionalityLookup(); - $htmlTermRenderer = new FallbackHintHtmlTermRenderer( - $languageDirectionalityLookup, - new LanguageNameLookup( $languageCode ) + $factory = new LexemeViewFactory( + $languageCode, + $labelDescriptionLookup, + $fallbackChain, + $editSectionGenerator, + $entityTermsView ); - // TODO: One of the next steps should be to extract this to a LexemeViewFactory. - return new LexemeView( - TemplateFactory::getDefaultInstance(), - $entityTermsView, -
[MediaWiki-commits] [Gerrit] mediawiki...WikibaseLexeme[master]: Introduce and start using LexemeViewFactory
Thiemo Mättig (WMDE) has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/343920 ) Change subject: Introduce and start using LexemeViewFactory .. Introduce and start using LexemeViewFactory This is, at this point, doing nothing but moving existing code around. Note that this moves the dependency on WikibaseRepo into the new factory. I believe we should avoid this but do not wanted to do this in the same patch, making it more complicated. Change-Id: Ie3dd7b3b0d2809c30606051e338ff2f415300f8b --- M WikibaseLexeme.entitytypes.php A src/View/LexemeViewFactory.php A tests/phpunit/mediawiki/View/LexemeViewFactoryTest.php 3 files changed, 153 insertions(+), 41 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseLexeme refs/changes/20/343920/1 diff --git a/WikibaseLexeme.entitytypes.php b/WikibaseLexeme.entitytypes.php index 714ebd6..3e2ff7f 100644 --- a/WikibaseLexeme.entitytypes.php +++ b/WikibaseLexeme.entitytypes.php @@ -12,26 +12,15 @@ * @author Amir Sarabadani*/ -use Wikibase\DataModel\Entity\EntityId; -use Wikibase\Lexeme\ChangeOp\Deserialization\LemmaChangeOpDeserializer; -use Wikibase\Lexeme\ChangeOp\Deserialization\LanguageChangeOpDeserializer; -use Wikibase\Lexeme\ChangeOp\Deserialization\LexicalCategoryChangeOpDeserializer; -use Wikibase\Lexeme\Rdf\LexemeRdfBuilder; -use Wikibase\Lexeme\Validators\LexemeValidatorFactory; -use Wikibase\Lexeme\View\LexemeFormsView; -use Wikibase\Rdf\RdfVocabulary; -use Wikibase\Repo\ChangeOp\Deserialization\ClaimsChangeOpDeserializer; -use Wikibase\Repo\ChangeOp\Deserialization\TermChangeOpSerializationValidator; -use Wikibase\Repo\MediaWikiLanguageDirectionalityLookup; -use Wikibase\Repo\MediaWikiLocalizedTextProvider; -use Wikibase\Repo\ParserOutput\FallbackHintHtmlTermRenderer; -use Wikibase\Repo\WikibaseRepo; use Wikibase\DataModel\DeserializerFactory; +use Wikibase\DataModel\Entity\EntityId; use Wikibase\DataModel\SerializerFactory; use Wikibase\DataModel\Services\Lookup\LabelDescriptionLookup; -use Wikibase\Lib\LanguageNameLookup; use Wikibase\LanguageFallbackChain; +use Wikibase\Lexeme\ChangeOp\Deserialization\LanguageChangeOpDeserializer; +use Wikibase\Lexeme\ChangeOp\Deserialization\LemmaChangeOpDeserializer; use Wikibase\Lexeme\ChangeOp\Deserialization\LexemeChangeOpDeserializer; +use Wikibase\Lexeme\ChangeOp\Deserialization\LexicalCategoryChangeOpDeserializer; use Wikibase\Lexeme\Content\LexemeContent; use Wikibase\Lexeme\Content\LexemeHandler; use Wikibase\Lexeme\DataModel\Lexeme; @@ -40,10 +29,15 @@ use Wikibase\Lexeme\DataModel\Serialization\LexemeSerializer; use Wikibase\Lexeme\DataModel\Services\Diff\LexemeDiffer; use Wikibase\Lexeme\DataModel\Services\Diff\LexemePatcher; -use Wikibase\Lexeme\View\LexemeView; +use Wikibase\Lexeme\Rdf\LexemeRdfBuilder; +use Wikibase\Lexeme\Validators\LexemeValidatorFactory; +use Wikibase\Lexeme\View\LexemeViewFactory; +use Wikibase\Rdf\RdfVocabulary; +use Wikibase\Repo\ChangeOp\Deserialization\ClaimsChangeOpDeserializer; +use Wikibase\Repo\ChangeOp\Deserialization\TermChangeOpSerializationValidator; +use Wikibase\Repo\WikibaseRepo; use Wikibase\View\EditSectionGenerator; use Wikibase\View\EntityTermsView; -use Wikibase\View\Template\TemplateFactory; use Wikimedia\Purtle\RdfWriter; return [ @@ -68,32 +62,15 @@ EditSectionGenerator $editSectionGenerator, EntityTermsView $entityTermsView ) { - $wikibaseRepo = WikibaseRepo::getDefaultInstance(); - $userLanguage = $wikibaseRepo->getUserLanguage(); - $textProvider = new MediaWikiLocalizedTextProvider( $userLanguage->getCode() ); - $viewFactory = $wikibaseRepo->getViewFactory(); - $languageDirectionalityLookup = new MediaWikiLanguageDirectionalityLookup(); - $htmlTermRenderer = new FallbackHintHtmlTermRenderer( - $languageDirectionalityLookup, - new LanguageNameLookup( $languageCode ) + $factory = new LexemeViewFactory( + $languageCode, + $labelDescriptionLookup, + $fallbackChain, + $editSectionGenerator, + $entityTermsView ); - // TODO: One of the next steps should be to extract this to a LexemeViewFactory. - return new LexemeView( - TemplateFactory::getDefaultInstance(), - $entityTermsView, - $languageDirectionalityLookup, - $languageCode, - new LexemeFormsView(