Specially handle Title objects in Title::newFromLinkTarget()
authorKunal Mehta <legoktm@member.fsf.org>
Wed, 20 Apr 2016 05:21:09 +0000 (22:21 -0700)
committerKunal Mehta <legoktm@member.fsf.org>
Wed, 20 Apr 2016 05:21:09 +0000 (22:21 -0700)
Every single caller of Title::newFromLinkTarget() already special cases
when the LinkTarget object is already a Title, so move that logic into
one function.

Change-Id: Iba5432ae01c87850e5b34893092427c5b1629188

includes/Title.php
includes/WatchedItem.php
includes/WatchedItemStore.php
includes/title/MediaWikiPageLinkRenderer.php

index 95588a2..3fd4631 100644 (file)
@@ -248,6 +248,10 @@ class Title implements LinkTarget {
         * @return Title
         */
        public static function newFromLinkTarget( LinkTarget $linkTarget ) {
+               if ( $linkTarget instanceof Title ) {
+                       // Special case if it's already a Title object
+                       return $linkTarget;
+               }
                return self::makeTitle(
                        $linkTarget->getNamespace(),
                        $linkTarget->getText(),
index 0495536..4dbe0f6 100644 (file)
@@ -140,11 +140,7 @@ class WatchedItem {
         */
        public function getTitle() {
                if ( !$this->title ) {
-                       if ( $this->linkTarget instanceof Title ) {
-                               $this->title = $this->linkTarget;
-                       } else {
-                               $this->title = Title::newFromLinkTarget( $this->linkTarget );
-                       }
+                       $this->title = Title::newFromLinkTarget( $this->linkTarget );
                }
                return $this->title;
        }
index 8ae7932..5e99f8e 100644 (file)
@@ -905,12 +905,8 @@ class WatchedItemStore implements StatsdAwareInterface {
         * @param LinkTarget $newTarget
         */
        public function duplicateAllAssociatedEntries( LinkTarget $oldTarget, LinkTarget $newTarget ) {
-               if ( !$oldTarget instanceof Title ) {
-                       $oldTarget = Title::newFromLinkTarget( $oldTarget );
-               }
-               if ( !$newTarget instanceof Title ) {
-                       $newTarget = Title::newFromLinkTarget( $newTarget );
-               }
+               $oldTarget = Title::newFromLinkTarget( $oldTarget );
+               $newTarget = Title::newFromLinkTarget( $newTarget );
 
                $this->duplicateEntry( $oldTarget->getSubjectPage(), $newTarget->getSubjectPage() );
                $this->duplicateEntry( $oldTarget->getTalkPage(), $newTarget->getTalkPage() );
index 302c9e8..b458578 100644 (file)
@@ -106,11 +106,8 @@ class MediaWikiPageLinkRenderer implements PageLinkRenderer {
                // TODO: move the logic implemented by Linker here,
                // using $this->formatter and $this->baseUrl, and
                // re-implement Linker to use a HtmlPageLinkRenderer.
-               if ( $linkTarget instanceof Title ) {
-                       $title = $linkTarget;
-               } else {
-                       $title = Title::newFromLinkTarget( $linkTarget );
-               }
+
+               $title = Title::newFromLinkTarget( $linkTarget );
                $link = Linker::link( $title, htmlspecialchars( $text ) );
 
                return $link;