[MediaWiki-commits] [Gerrit] Rework and clean up badge related code - change (mediawiki...Wikibase)
jenkins-bot has submitted this change and it was merged. Change subject: Rework and clean up badge related code .. Rework and clean up badge related code Change-Id: I268f60f5c9376016b7e8e982a4c2388da730f3c0 --- M lib/includes/serializers/SiteLinkSerializer.php M repo/includes/ChangeOp/SiteLinkChangeOpFactory.php M repo/includes/View/SiteLinksView.php 3 files changed, 33 insertions(+), 24 deletions(-) Approvals: Hoo man: Looks good to me, approved jenkins-bot: Verified diff --git a/lib/includes/serializers/SiteLinkSerializer.php b/lib/includes/serializers/SiteLinkSerializer.php index 9773753..5f48885 100644 --- a/lib/includes/serializers/SiteLinkSerializer.php +++ b/lib/includes/serializers/SiteLinkSerializer.php @@ -87,11 +87,12 @@ } if ( !$setRemoved ) { - $badges = array(); - - foreach ( $siteLink-getBadges() as $badge ) { - $badges[] = $badge-getSerialization(); - } + $badges = array_map( + function( ItemId $id ) { + return $id-getSerialization(); + }, + $siteLink-getBadges() + ); if ( $this-options-shouldIndexTags() ) { $this-setIndexedTagName( $badges, 'badge' ); diff --git a/repo/includes/ChangeOp/SiteLinkChangeOpFactory.php b/repo/includes/ChangeOp/SiteLinkChangeOpFactory.php index 66914f0..186fa79 100644 --- a/repo/includes/ChangeOp/SiteLinkChangeOpFactory.php +++ b/repo/includes/ChangeOp/SiteLinkChangeOpFactory.php @@ -3,6 +3,7 @@ namespace Wikibase\ChangeOp; use InvalidArgumentException; +use Wikibase\DataModel\Entity\ItemId; /** * Factory for ChangeOps that modify SiteLinks. @@ -15,12 +16,12 @@ /** * @param string $siteId * @param string $pageName -* @param array|null $badges +* @param ItemId[]|null $badges * * @throws InvalidArgumentException * @return ChangeOp */ - public function newSetSiteLinkOp( $siteId, $pageName, $badges = array() ) { + public function newSetSiteLinkOp( $siteId, $pageName, $badges = null ) { return new ChangeOpSiteLink( $siteId, $pageName, $badges ); } diff --git a/repo/includes/View/SiteLinksView.php b/repo/includes/View/SiteLinksView.php index ae1a932..d7fb2c9 100644 --- a/repo/includes/View/SiteLinksView.php +++ b/repo/includes/View/SiteLinksView.php @@ -7,9 +7,9 @@ use Sanitizer; use Site; use SiteList; -use Wikibase\DataModel\Entity\EntityId; use Wikibase\DataModel\Entity\ItemId; use Wikibase\DataModel\SiteLink; +use Wikibase\DataModel\Term\FingerprintProvider; use Wikibase\Lib\Store\EntityLookup; use Wikibase\Utils; @@ -40,9 +40,9 @@ private $entityLookup; /** -* @var string +* @var string[] */ - private $languageCode; + private $badgeItems; /** * @var string[] @@ -50,10 +50,18 @@ private $specialSiteLinkGroups; /** -* @var array +* @var string */ - private $badgeItems; + private $languageCode; + /** +* @param SiteList $sites +* @param SectionEditLinkGenerator $sectionEditLinkGenerator +* @param EntityLookup $entityLookup +* @param string[] $badgeItems +* @param string[] $specialSiteLinkGroups +* @param string $languageCode +*/ public function __construct( SiteList $sites, SectionEditLinkGenerator $sectionEditLinkGenerator, @@ -317,7 +325,6 @@ private function getHtmlForBadges( SiteLink $siteLink ) { $html = ''; - /** @var ItemId $badge */ foreach ( $siteLink-getBadges() as $badge ) { $serialization = $badge-getSerialization(); $classes = Sanitizer::escapeClass( $serialization ); @@ -339,22 +346,22 @@ * Returns the title for the given badge id. * @todo use TermLookup when we have one * -* @param EntityId $badgeId +* @param ItemId $badgeId * * @return string */ - private function getTitleForBadge( EntityId $badgeId ) { - $entity = $this-entityLookup-getEntity( $badgeId ); - if ( $entity === null ) { - return $badgeId-getSerialization(); + private function getTitleForBadge( ItemId $badgeId ) { + $badge = $this-entityLookup-getEntity( $badgeId ); + + if ( $badge instanceof FingerprintProvider ) { +
[MediaWiki-commits] [Gerrit] Rework and clean up badge related code - change (mediawiki...Wikibase)
Thiemo Mättig (WMDE) has uploaded a new change for review. https://gerrit.wikimedia.org/r/180760 Change subject: Rework and clean up badge related code .. Rework and clean up badge related code Change-Id: I268f60f5c9376016b7e8e982a4c2388da730f3c0 --- M lib/includes/serializers/SiteLinkSerializer.php M repo/includes/ChangeOp/SiteLinkChangeOpFactory.php M repo/includes/View/SiteLinksView.php 3 files changed, 33 insertions(+), 24 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/60/180760/1 diff --git a/lib/includes/serializers/SiteLinkSerializer.php b/lib/includes/serializers/SiteLinkSerializer.php index 9773753..5f48885 100644 --- a/lib/includes/serializers/SiteLinkSerializer.php +++ b/lib/includes/serializers/SiteLinkSerializer.php @@ -87,11 +87,12 @@ } if ( !$setRemoved ) { - $badges = array(); - - foreach ( $siteLink-getBadges() as $badge ) { - $badges[] = $badge-getSerialization(); - } + $badges = array_map( + function( ItemId $id ) { + return $id-getSerialization(); + }, + $siteLink-getBadges() + ); if ( $this-options-shouldIndexTags() ) { $this-setIndexedTagName( $badges, 'badge' ); diff --git a/repo/includes/ChangeOp/SiteLinkChangeOpFactory.php b/repo/includes/ChangeOp/SiteLinkChangeOpFactory.php index 66914f0..186fa79 100644 --- a/repo/includes/ChangeOp/SiteLinkChangeOpFactory.php +++ b/repo/includes/ChangeOp/SiteLinkChangeOpFactory.php @@ -3,6 +3,7 @@ namespace Wikibase\ChangeOp; use InvalidArgumentException; +use Wikibase\DataModel\Entity\ItemId; /** * Factory for ChangeOps that modify SiteLinks. @@ -15,12 +16,12 @@ /** * @param string $siteId * @param string $pageName -* @param array|null $badges +* @param ItemId[]|null $badges * * @throws InvalidArgumentException * @return ChangeOp */ - public function newSetSiteLinkOp( $siteId, $pageName, $badges = array() ) { + public function newSetSiteLinkOp( $siteId, $pageName, $badges = null ) { return new ChangeOpSiteLink( $siteId, $pageName, $badges ); } diff --git a/repo/includes/View/SiteLinksView.php b/repo/includes/View/SiteLinksView.php index ae1a932..d7fb2c9 100644 --- a/repo/includes/View/SiteLinksView.php +++ b/repo/includes/View/SiteLinksView.php @@ -7,9 +7,9 @@ use Sanitizer; use Site; use SiteList; -use Wikibase\DataModel\Entity\EntityId; use Wikibase\DataModel\Entity\ItemId; use Wikibase\DataModel\SiteLink; +use Wikibase\DataModel\Term\FingerprintProvider; use Wikibase\Lib\Store\EntityLookup; use Wikibase\Utils; @@ -40,9 +40,9 @@ private $entityLookup; /** -* @var string +* @var string[] */ - private $languageCode; + private $badgeItems; /** * @var string[] @@ -50,10 +50,18 @@ private $specialSiteLinkGroups; /** -* @var array +* @var string */ - private $badgeItems; + private $languageCode; + /** +* @param SiteList $sites +* @param SectionEditLinkGenerator $sectionEditLinkGenerator +* @param EntityLookup $entityLookup +* @param string[] $badgeItems +* @param string[] $specialSiteLinkGroups +* @param string $languageCode +*/ public function __construct( SiteList $sites, SectionEditLinkGenerator $sectionEditLinkGenerator, @@ -317,7 +325,6 @@ private function getHtmlForBadges( SiteLink $siteLink ) { $html = ''; - /** @var ItemId $badge */ foreach ( $siteLink-getBadges() as $badge ) { $serialization = $badge-getSerialization(); $classes = Sanitizer::escapeClass( $serialization ); @@ -339,22 +346,22 @@ * Returns the title for the given badge id. * @todo use TermLookup when we have one * -* @param EntityId $badgeId +* @param ItemId $badgeId * * @return string */ - private function getTitleForBadge( EntityId $badgeId ) { - $entity = $this-entityLookup-getEntity( $badgeId ); - if ( $entity === null ) { - return $badgeId-getSerialization(); + private function getTitleForBadge( ItemId $badgeId ) { + $badge = $this-entityLookup-getEntity( $badgeId ); + +