target === null ) { $this->target = $this->getTargetPage(); } } /** * Magic function that proxies function calls to the target object * * @param string $method Method name being called * @param array $args Array of arguments * * @return mixed */ public function __call( $method, $args ) { $this->init(); return call_user_func_array( [ $this->target, $method ], $args ); } /** * @return string */ public function getName() { $this->init(); return $this->target->getName(); } /** * @param string|bool $subpage * @return Title */ public function getPageTitle( $subpage = false ) { $this->init(); return $this->target->getPageTitle( $subpage ); } /** * @return string */ public function getLocalName() { $this->init(); return $this->target->getLocalName(); } /** * @return string */ public function getRestriction() { $this->init(); return $this->target->getRestriction(); } /** * @return bool */ public function isListed() { $this->init(); return $this->target->isListed(); } /** * @param bool $listed * @return bool */ public function setListed( $listed ) { $this->init(); return $this->target->setListed( $listed ); } /** * @param bool|null $x * @return bool */ public function listed( $x = null ) { $this->init(); return $this->target->listed( $x ); } /** * @return bool */ public function isIncludable() { $this->init(); return $this->target->isIncludable(); } /** * @param bool|null $x * @return bool */ public function including( $x = null ) { $this->init(); return $this->target->including( $x ); } /** * @return bool */ public function isRestricted() { $this->init(); return $this->target->isRestricted(); } /** * @param User $user * @return bool */ public function userCanExecute( User $user ) { $this->init(); return $this->target->userCanExecute( $user ); } /** * @throws PermissionsError */ public function displayRestrictionError() { $this->init(); $this->target->displayRestrictionError(); } /** * @return void * @throws PermissionsError */ public function checkPermissions() { $this->init(); $this->target->checkPermissions(); } /** * @param string|null $subPage */ protected function beforeExecute( $subPage ) { $this->init(); $this->target->beforeExecute( $subPage ); } /** * @param string|null $subPage */ protected function afterExecute( $subPage ) { $this->init(); $this->target->afterExecute( $subPage ); } /** * @param string|null $subPage */ public function execute( $subPage ) { $this->init(); $this->target->execute( $subPage ); } /** * @return string */ public function getDescription() { $this->init(); return $this->target->getDescription(); } /** * @param IContextSource $context */ public function setContext( $context ) { $this->init(); $this->target->setContext( $context ); parent::setContext( $context ); } /** * @return string */ protected function getRobotPolicy() { $this->init(); return $this->target->getRobotPolicy(); } /** * @return string */ protected function getGroupName() { $this->init(); return $this->target->getGroupName(); } }