diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/Runners/RunnerFactory.php')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/Runners/RunnerFactory.php | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/Runners/RunnerFactory.php b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/Runners/RunnerFactory.php new file mode 100644 index 00000000..efa8d8ce --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/Runners/RunnerFactory.php @@ -0,0 +1,81 @@ +<?php + +namespace SMW\Tests\Utils\Runners; + +/** + * @license GNU GPL v2+ + * @since 2.1 + * + * @author mwjames + */ +class RunnerFactory { + + /** + * @var RunnerFactory + */ + private static $instance = null; + + /** + * @since 2.1 + * + * @return RunnerFactory + */ + public static function getInstance() { + + if ( self::$instance === null ) { + self::$instance = new self(); + } + + return self::$instance; + } + + /** + * @since 2.1 + * + * @param string $maintenanceClass + * + * @return MaintenanceRunner + */ + public function newMaintenanceRunner( $maintenanceClass ) { + + switch ( $maintenanceClass ) { + case 'rebuildPropertyStatistics': + $maintenanceClass = 'SMW\Maintenance\RebuildPropertyStatistics'; + break; + case 'rebuildData': + $maintenanceClass = 'SMW\Maintenance\RebuildData'; + break; + case 'rebuildConceptCache'; + $maintenanceClass = 'SMW\Maintenance\RebuildConceptCache'; + break; + case 'setupStore'; + $maintenanceClass = 'SMW\Maintenance\SetupStore'; + break; + } + + return new MaintenanceRunner( $maintenanceClass ); + } + + /** + * @since 2.1 + * + * @param string|null $jobType + * + * @return JobQueueRunner + */ + public function newJobQueueRunner( $jobType = null ) { + return new JobQueueRunner( $jobType ); + } + + /** + * @since 2.1 + * + * @param string|null $source + * + * @return XmlImportRunner + */ + public function newXmlImportRunner( $source = null ) { + return new XmlImportRunner( $source ); + } + +} |