Addshore has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/239061

Change subject: Refactor changeTypes in RecentChange
......................................................................

Refactor changeTypes in RecentChange

This is split from:
I03516bb34144d95e5f25c46ae98ab70ce699b31b

Change-Id: I285cdbe3d1a62aa1071a5c174928136c3f59d557
---
M includes/changes/RecentChange.php
1 file changed, 24 insertions(+), 28 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/61/239061/1

diff --git a/includes/changes/RecentChange.php 
b/includes/changes/RecentChange.php
index 54ca2ab..87871f4 100644
--- a/includes/changes/RecentChange.php
+++ b/includes/changes/RecentChange.php
@@ -89,6 +89,16 @@
         */
        public $counter = -1;
 
+       /**
+        * @var array Array of change types
+        */
+       private static $changeTypes = array(
+               'edit' => RC_EDIT,
+               'new' => RC_NEW,
+               'log' => RC_LOG,
+               'external' => RC_EXTERNAL,
+       );
+
        # Factory methods
 
        /**
@@ -119,18 +129,10 @@
                        return $retval;
                }
 
-               switch ( $type ) {
-                       case 'edit':
-                               return RC_EDIT;
-                       case 'new':
-                               return RC_NEW;
-                       case 'log':
-                               return RC_LOG;
-                       case 'external':
-                               return RC_EXTERNAL;
-                       default:
-                               throw new MWException( "Unknown type '$type'" );
+               if ( !array_key_exists( $type, self::$changeTypes ) ) {
+                       throw new MWException( "Unknown type '$type'" );
                }
+               return self::$changeTypes[$type];
        }
 
        /**
@@ -140,24 +142,18 @@
         * @return string $type
         */
        public static function parseFromRCType( $rcType ) {
-               switch ( $rcType ) {
-                       case RC_EDIT:
-                               $type = 'edit';
-                               break;
-                       case RC_NEW:
-                               $type = 'new';
-                               break;
-                       case RC_LOG:
-                               $type = 'log';
-                               break;
-                       case RC_EXTERNAL:
-                               $type = 'external';
-                               break;
-                       default:
-                               $type = "$rcType";
-               }
+               return array_search( $rcType, self::$changeTypes, true ) ?: 
"$rcType";
+       }
 
-               return $type;
+       /**
+        * Get an array of all change types
+        *
+        * @since 1.26
+        *
+        * @return array
+        */
+       public static function getChangeTypes() {
+               return array_keys( self::$changeTypes );
        }
 
        /**

-- 
To view, visit https://gerrit.wikimedia.org/r/239061
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I285cdbe3d1a62aa1071a5c174928136c3f59d557
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to