diff options
Diffstat (limited to 'MLEB/Translate/src/TranslatorInterface/Insertable/CombinedInsertablesSuggester.php')
-rw-r--r-- | MLEB/Translate/src/TranslatorInterface/Insertable/CombinedInsertablesSuggester.php | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/MLEB/Translate/src/TranslatorInterface/Insertable/CombinedInsertablesSuggester.php b/MLEB/Translate/src/TranslatorInterface/Insertable/CombinedInsertablesSuggester.php new file mode 100644 index 00000000..4f42d033 --- /dev/null +++ b/MLEB/Translate/src/TranslatorInterface/Insertable/CombinedInsertablesSuggester.php @@ -0,0 +1,33 @@ +<?php +declare( strict_types = 1 ); + +namespace MediaWiki\Extension\Translate\TranslatorInterface\Insertable; + +/** + * A class to combine multiple insertables suggesters. + * @author Geoffrey Mon + * @license GPL-2.0-or-later + * @since 2020.12 + */ +class CombinedInsertablesSuggester implements InsertablesSuggester { + + /** @var InsertablesSuggester[] */ + protected $suggesters = []; + + /** @param InsertablesSuggester[] $suggesters Array of InsertablesSuggester objects to combine. */ + public function __construct( array $suggesters = [] ) { + $this->suggesters = $suggesters; + } + + public function getInsertables( string $text ): array { + $insertables = []; + foreach ( $this->suggesters as $suggester ) { + $new = $suggester->getInsertables( $text ); + $insertables = array_merge( $insertables, $new ); + } + + return array_unique( $insertables, SORT_REGULAR ); + } +} + +class_alias( CombinedInsertablesSuggester::class, '\MediaWiki\Extensions\Translate\CombinedInsertablesSuggester' ); |