| 
									
										
										
										
											2011-11-23 04:17:06 +01:00
										 |  |  | <?php | 
					
						
							|  |  |  | class Mage_Task_Factory | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      *  | 
					
						
							|  |  |  |      *  | 
					
						
							|  |  |  |      * @param string $taskName | 
					
						
							| 
									
										
										
										
											2012-01-04 02:25:42 +01:00
										 |  |  |      * @param boolean $inRollback | 
					
						
							| 
									
										
										
										
											2011-11-23 04:17:06 +01:00
										 |  |  |      * @return Mage_Task_TaskAbstract | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2012-01-04 02:25:42 +01:00
										 |  |  |     public static function get($taskName, Mage_Config $taskConfig, $inRollback = false) | 
					
						
							| 
									
										
										
										
											2011-11-23 04:17:06 +01:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2011-11-23 12:38:52 +01:00
										 |  |  |         $instance = null; | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         if (strpos($taskName, '/') === false) { | 
					
						
							|  |  |  |             Mage_Autoload::loadUserTask($taskName); | 
					
						
							|  |  |  |             $className = 'Task_' . ucfirst($taskName); | 
					
						
							| 
									
										
										
										
											2012-01-04 02:25:42 +01:00
										 |  |  |             $instance = new $className($taskConfig, $inRollback); | 
					
						
							| 
									
										
										
										
											2011-11-23 12:38:52 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $taskName = str_replace(' ', '_', ucwords(str_replace('/', ' ', $taskName))); | 
					
						
							|  |  |  |             $className = 'Mage_Task_BuiltIn_' . $taskName; | 
					
						
							| 
									
										
										
										
											2012-01-04 02:25:42 +01:00
										 |  |  |             $instance = new $className($taskConfig, $inRollback); | 
					
						
							| 
									
										
										
										
											2011-11-23 12:38:52 +01:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         assert($instance instanceOf Mage_Task_TaskAbstract); | 
					
						
							|  |  |  |         return $instance; | 
					
						
							| 
									
										
										
										
											2011-11-23 04:17:06 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | } |