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