MediaWiki  master
ApiQueryGeneratorBase.php
Go to the documentation of this file.
1 <?php
26 abstract class ApiQueryGeneratorBase extends ApiQueryBase {
27 
28  private $mGeneratorPageSet = null;
29 
37  public function setGeneratorMode( ApiPageSet $generatorPageSet ) {
38  if ( $generatorPageSet === null ) {
39  ApiBase::dieDebug( __METHOD__, 'Required parameter missing - $generatorPageSet' );
40  }
41  $this->mGeneratorPageSet = $generatorPageSet;
42  }
43 
49  public function isInGeneratorMode() {
50  return $this->mGeneratorPageSet !== null;
51  }
52 
58  protected function getPageSet() {
59  if ( $this->mGeneratorPageSet !== null ) {
61  }
62 
63  return parent::getPageSet();
64  }
65 
71  public function encodeParamName( $paramName ) {
72  if ( $this->mGeneratorPageSet !== null ) {
73  return 'g' . parent::encodeParamName( $paramName );
74  } else {
75  return parent::encodeParamName( $paramName );
76  }
77  }
78 
84  protected function setContinueEnumParameter( $paramName, $paramValue ) {
85  if ( $this->mGeneratorPageSet !== null ) {
86  $this->getContinuationManager()->addGeneratorContinueParam( $this, $paramName, $paramValue );
87  } else {
88  parent::setContinueEnumParameter( $paramName, $paramValue );
89  }
90  }
91 
93  protected function getHelpFlags() {
94  // Corresponding messages: api-help-flag-generator
95  $flags = parent::getHelpFlags();
96  $flags[] = 'generator';
97  return $flags;
98  }
99 
104  abstract public function executeGenerator( $resultPageSet );
105 }
ApiQueryGeneratorBase\encodeParamName
encodeParamName( $paramName)
Overrides ApiBase to prepend 'g' to every generator parameter.
Definition: ApiQueryGeneratorBase.php:71
ApiQueryGeneratorBase\$mGeneratorPageSet
$mGeneratorPageSet
Definition: ApiQueryGeneratorBase.php:28
ApiQueryGeneratorBase\executeGenerator
executeGenerator( $resultPageSet)
Execute this module as a generator.
ApiQueryGeneratorBase\setGeneratorMode
setGeneratorMode(ApiPageSet $generatorPageSet)
Switch this module to generator mode.
Definition: ApiQueryGeneratorBase.php:37
ApiPageSet
This class contains a list of pages that the client has requested.
Definition: ApiPageSet.php:40
ApiQueryGeneratorBase\setContinueEnumParameter
setContinueEnumParameter( $paramName, $paramValue)
Overridden to set the generator param if in generator mode.
Definition: ApiQueryGeneratorBase.php:84
ApiQueryGeneratorBase\isInGeneratorMode
isInGeneratorMode()
Indicate whether the module is in generator mode.
Definition: ApiQueryGeneratorBase.php:49
ApiQueryGeneratorBase\getPageSet
getPageSet()
Get the PageSet object to work on.
Definition: ApiQueryGeneratorBase.php:58
ApiQueryBase
This is a base class for all Query modules.
Definition: ApiQueryBase.php:34
ApiBase\getContinuationManager
getContinuationManager()
Get the continuation manager.
Definition: ApiBase.php:680
ApiQueryGeneratorBase
Definition: ApiQueryGeneratorBase.php:26
ApiBase\dieDebug
static dieDebug( $method, $message)
Internal code errors should be reported with this method.
Definition: ApiBase.php:2212
ApiQueryGeneratorBase\getHelpFlags
getHelpFlags()
Generates the list of flags for the help screen and for action=paraminfo.Corresponding messages: api-...
Definition: ApiQueryGeneratorBase.php:93