X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=application%2Fhub%2Fmain%2Ffactories%2Fstates%2Fminer%2Fclass_MinerStateFactory.php;fp=application%2Fhub%2Fmain%2Ffactories%2Fstates%2Fminer%2Fclass_MinerStateFactory.php;h=5120f3da1d0104731ca935cd1464764ab52ad5ee;hb=2f4667d20de8529f941eb7267e1497f05669c5b8;hp=0000000000000000000000000000000000000000;hpb=0f6ca728117cd91171aed79af515b52009570ced;p=hub.git diff --git a/application/hub/main/factories/states/miner/class_MinerStateFactory.php b/application/hub/main/factories/states/miner/class_MinerStateFactory.php new file mode 100644 index 000000000..5120f3da1 --- /dev/null +++ b/application/hub/main/factories/states/miner/class_MinerStateFactory.php @@ -0,0 +1,59 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2014 Miner Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.shipsimu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class MinerStateFactory extends ObjectFactory { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of a configurable miner state and sets it in the + * given miner instance. + * + * @param $stateName Name of the state + * @param $minerInstance A MinerHelper class instance + * @return $stateInstance A Stateable class instance + */ + public static final function createMinerStateInstanceByName ($stateName, MinerHelper $minerInstance) { + // Then construct the class' configuraton entry + $className = 'miner_' . $stateName . '_state_class'; + + // Get a class from that configuration entry + $stateInstance = self::createObjectByConfiguredName($className, array($minerInstance)); + + // Once we have that state, set it in the miner instance + $minerInstance->setStateInstance($stateInstance); + + // For any purposes, return the state instance + return $stateInstance; + } +} + +// [EOF] +?>