21 public function __construct(
30 return TranslatablePage::newFromTitle( $page );
31 } elseif ( MessageBundle::isSourcePage( $page ) ) {
40 $bundle = $this->getBundle( $page );
45 throw new InvalidArgumentException(
"$page is not a TranslatableBundle" );
48 public function getBundleFromClass( PageIdentity $page,
string $bundleType ): TranslatableBundle {
49 if ( $bundleType === MessageBundle::class ) {
50 return new MessageBundle( $page );
52 return TranslatablePage::newFromTitle( $page );
56 public function getPageMoveLogger( TranslatableBundle $bundle ): PageMoveLogger {
57 if ( $bundle instanceof TranslatablePage ) {
58 return new PageMoveLogger( $bundle->getTitle(),
'pagetranslation' );
59 } elseif ( $bundle instanceof MessageBundle ) {
60 return new PageMoveLogger( $bundle->getTitle(),
'messagebundle' );
63 throw new InvalidArgumentException(
'Unknown TranslatableBundle type: ' . get_class( $bundle ) );
66 public function getPageDeleteLogger( TranslatableBundle $bundle ): PageDeleteLogger {
67 if ( $bundle instanceof TranslatablePage ) {
68 return new PageDeleteLogger( $bundle->getTitle(),
'pagetranslation' );
69 } elseif ( $bundle instanceof MessageBundle ) {
70 return new PageDeleteLogger( $bundle->getTitle(),
'messagebundle' );
73 throw new InvalidArgumentException(
'Unknown TranslatableBundle type: ' . get_class( $bundle ) );
76 public function getStore( TranslatableBundle $bundle ): TranslatableBundleStore {
77 if ( $bundle instanceof TranslatablePage ) {
78 return $this->translatablePageStore;
79 } elseif ( $bundle instanceof MessageBundle ) {
80 return $this->messageBundleStore;
83 throw new InvalidArgumentException(
"Unknown TranslatableBundle type: " . get_class( $bundle ) );