[MediaWiki-commits] [Gerrit] Rework and clean up badge related code - change (mediawiki...Wikibase)

2014-12-24 Thread jenkins-bot (Code Review)
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)

2014-12-18 Thread WMDE
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 );
+
+