Aude has uploaded a new change for review.

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

Change subject: Split getLabelLookup method in FormatterLabelLookupFactory
......................................................................

Split getLabelLookup method in FormatterLabelLookupFactory

Change-Id: Idf6b3eaa7bf6864d39212211520ea4b1fbc1e9a3
---
M lib/includes/formatters/FormatterLabelLookupFactory.php
1 file changed, 32 insertions(+), 23 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/77/177077/1

diff --git a/lib/includes/formatters/FormatterLabelLookupFactory.php 
b/lib/includes/formatters/FormatterLabelLookupFactory.php
index f855a68..f8e891d 100644
--- a/lib/includes/formatters/FormatterLabelLookupFactory.php
+++ b/lib/includes/formatters/FormatterLabelLookupFactory.php
@@ -39,17 +39,6 @@
                $this->termLookup = $termLookup;
        }
 
-       private function getOption( FormatterOptions $options, $key, $type ) {
-               $value = $options->getOption( $key );
-
-               if ( !( $value instanceof $type ) && gettype( $value ) !== 
$type ) {
-                       throw new InvalidArgumentException( 'Option ' . $key . 
' must be used ' .
-                               'with an instance of ' . $type . '.' );
-               }
-
-               return $value;
-       }
-
        /**
         * @param FormatterOptions $options
         *
@@ -58,24 +47,44 @@
         */
        public function getLabelLookup( FormatterOptions $options ) {
                if ( $options->hasOption( 'LabelLookup' ) ) {
-                       $labelLookup = $this->getOption( $options, 
'LabelLookup', 'Wikibase\Lib\Store\LabelLookup' );
-
+                       return $this->getLabelLookupFromOptions( $options );
                } elseif ( $options->hasOption( 'languages' ) ) {
-                       $fallbackChain = $this->getOption( $options, 
'languages', 'Wikibase\LanguageFallbackChain' );
-                       $labelLookup = new LanguageFallbackLabelLookup( 
$this->termLookup, $fallbackChain );
-
+                       return $this->newLanguageFallbackLabelLookup( $options 
);
                } elseif ( $options->hasOption( ValueFormatter::OPT_LANG ) ) {
-                       $language = $this->getOption( $options, 
ValueFormatter::OPT_LANG, 'string' );
-                       $labelLookup = new LanguageLabelLookup( 
$this->termLookup, $language );
-
+                       return $this->newLanguageLabelLookup( $options );
                } else {
-                       throw new InvalidArgumentException(
-                               'OPT_LANG, languages (fallback chain), or 
LabelLookup ' .
-                               'must be set in FormatterOptions.'
-                       );
+                       throw new InvalidArgumentException( 'OPT_LANG or 
languages (fallback chain) '
+                               . 'must be set in FormatterOptions.' );
+               }
+       }
+
+       private function getLabelLookupFromOptions( FormatterOptions $options ) 
{
+               $labelLookup = $options->getOption( 'LabelLookup' );
+
+               if ( !( $labelLookup instanceof LabelLookup ) ) {
+                       throw new InvalidArgumentException( 'Option LabelLookup 
must be used ' .
+                               'with an instance of LabelLookup.' );
                }
 
                return $labelLookup;
        }
 
+       private function newLanguageFallbackLabelLookup( FormatterOptions 
$options ) {
+               $fallbackChain = $options->getOption( 'languages' );
+
+               if ( !( $fallbackChain instanceof LanguageFallbackChain ) ) {
+                       throw new InvalidArgumentException( 'Option `languages` 
must be used ' .
+                               'with an instance of LanguageFallbackChain.' );
+               }
+
+               return new LanguageFallbackLabelLookup( $this->termLookup, 
$fallbackChain );
+       }
+
+       private function newLanguageLabelLookup( FormatterOptions $options ) {
+               return new LanguageLabelLookup(
+                       $this->termLookup,
+                       $options->getOption( ValueFormatter::OPT_LANG )
+               );
+       }
+
 }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idf6b3eaa7bf6864d39212211520ea4b1fbc1e9a3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Aude <[email protected]>

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

Reply via email to