| 
10 | 10 | 
 
  | 
11 | 11 | namespace OpenCodeModeling\CodeGenerator\Console;  | 
12 | 12 | 
 
  | 
13 |  | -use OpenCodeModeling\CodeGenerator\Config\Component;  | 
14 |  | -use OpenCodeModeling\CodeGenerator\Config\ComponentCollection;  | 
15 |  | -use OpenCodeModeling\CodeGenerator\Config\Config;  | 
16 |  | -use OpenCodeModeling\CodeGenerator\Config\WorkflowCollection;  | 
 | 13 | +use OpenCodeModeling\CodeGenerator\Config;  | 
17 | 14 | use OpenCodeModeling\CodeGenerator\Config\WorkflowConfig;  | 
 | 15 | +use OpenCodeModeling\CodeGenerator\Console;  | 
18 | 16 | use OpenCodeModeling\CodeGenerator\Exception\RuntimeException;  | 
19 | 17 | use OpenCodeModeling\CodeGenerator\Workflow\WorkflowContext;  | 
20 | 18 | use OpenCodeModeling\CodeGenerator\Workflow\WorkflowEngine;  | 
 | 
27 | 25 |  */  | 
28 | 26 | final class WorkflowCommand extends Command  | 
29 | 27 | {  | 
30 |  | -    protected function configure()  | 
 | 28 | +    protected function configure(): void  | 
31 | 29 |     {  | 
32 | 30 |         $this  | 
33 | 31 |             ->setName('ocmcg:workflow:run')  | 
34 | 32 |             ->setDescription('Executes workflow from configuration file to generate code');  | 
35 | 33 |     }  | 
36 | 34 | 
 
  | 
37 |  | -    protected function execute(InputInterface $input, OutputInterface $output)  | 
 | 35 | +    protected function execute(InputInterface $input, OutputInterface $output): int  | 
38 | 36 |     {  | 
39 | 37 |         /** @var WorkflowContext $workflowContext */  | 
40 |  | -        $workflowContext = $this->getHelper(\OpenCodeModeling\CodeGenerator\Console\WorkflowContext::class)->context();  | 
 | 38 | +        $workflowContext = $this->getHelper(Console\WorkflowContext::class)->context();  | 
41 | 39 | 
 
  | 
42 | 40 |         $config = $this->loadConfig($workflowContext);  | 
43 | 41 | 
 
  | 
44 |  | -        if ($config instanceof WorkflowConfig  | 
45 |  | -            || $config instanceof Component  | 
46 |  | -        ) {  | 
 | 42 | +        if ($config instanceof Config\WorkflowConfig) {  | 
47 | 43 |             $this->executeWorkflow($config, $workflowContext);  | 
48 |  | -        } elseif ($config instanceof WorkflowCollection  | 
49 |  | -            || $config instanceof ComponentCollection  | 
50 |  | -        ) {  | 
 | 44 | +        } elseif ($config instanceof Config\WorkflowCollection) {  | 
51 | 45 |             foreach ($config as $workflowConfig) {  | 
52 | 46 |                 $this->executeWorkflow($workflowConfig, $workflowContext);  | 
53 | 47 |             }  | 
54 | 48 |         } else {  | 
55 | 49 |             throw new RuntimeException(  | 
56 |  | -                \sprintf('$config must implement %s or %s', WorkflowConfig::class, WorkflowCollection::class)  | 
 | 50 | +                \sprintf(  | 
 | 51 | +                    '$config must implement %s or %s', Config\WorkflowConfig::class,  | 
 | 52 | +                    Config\WorkflowCollection::class  | 
 | 53 | +                )  | 
57 | 54 |             );  | 
58 | 55 |         }  | 
59 | 56 | 
 
  | 
60 | 57 |         return 0;  | 
61 | 58 |     }  | 
62 | 59 | 
 
  | 
63 |  | -    private function loadConfig(WorkflowContext $workflowContext): Config  | 
 | 60 | +    private function loadConfig(WorkflowContext $workflowContext): Config\Config  | 
64 | 61 |     {  | 
65 |  | -        return $this->getHelper(\OpenCodeModeling\CodeGenerator\Console\Config::class)->resolver()->resolve($workflowContext);  | 
 | 62 | +        return $this->getHelper(Console\Config::class)->resolver()->resolve($workflowContext);  | 
66 | 63 |     }  | 
67 | 64 | 
 
  | 
68 |  | -    /**  | 
69 |  | -     * @param WorkflowConfig|Component $config  | 
70 |  | -     * @param WorkflowContext $workflowContext  | 
71 |  | -     */  | 
72 |  | -    private function executeWorkflow($config, WorkflowContext $workflowContext): void  | 
 | 65 | +    private function executeWorkflow(WorkflowConfig $config, WorkflowContext $workflowContext): void  | 
73 | 66 |     {  | 
74 | 67 |         $workflowEngine = new WorkflowEngine();  | 
75 | 68 |         $workflowEngine->run($workflowContext, ...$config->componentDescriptions());  | 
 | 
0 commit comments