Completed
Push — master ( 98cd2e...56265b )
by Thomas
09:01
created

AbstractActionGenerator   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 5
c 1
b 0
f 1
lcom 0
cbo 5
dl 0
loc 32
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getTemplateFolder() 0 3 1
A generateRunMethod() 0 7 1
A addConfigureParamsMethod() 0 7 1
A ensureUseStatements() 0 3 1
A ensureBasicSetup() 0 4 1
1
<?php
2
namespace keeko\tools\generator\action;
3
4
use gossi\codegen\model\AbstractPhpStruct;
5
use gossi\codegen\model\PhpClass;
6
use gossi\codegen\model\PhpMethod;
7
use gossi\codegen\model\PhpParameter;
8
use keeko\tools\generator\AbstractCodeGenerator;
9
10
class AbstractActionGenerator extends AbstractCodeGenerator {
11
12
	protected function getTemplateFolder() {
13
		return 'actions';
14
	}
15
	
16
	protected function generateRunMethod($body = '') {
17
		return PhpMethod::create('run')
18
			->setDescription('Automatically generated run method')
19
			->setType('Response')
20
			->addParameter(PhpParameter::create('request')->setType('Request'))
21
			->setBody($body);
22
	}
23
24
	protected function addConfigureParamsMethod(AbstractPhpStruct $struct, $body = '') {
25
		$struct->addUseStatement('Symfony\\Component\\OptionsResolver\\OptionsResolver');
26
		$struct->setMethod(PhpMethod::create('configureParams')
27
			->addParameter(PhpParameter::create('resolver')->setType('OptionsResolver'))
28
			->setBody($body)
29
		);
30
	}
31
	
32
	protected function ensureUseStatements(AbstractPhpStruct $struct) {
33
		$struct->addUseStatement('keeko\\framework\\foundation\\AbstractAction');
34
	}
35
	
36
	protected function ensureBasicSetup(PhpClass $class) {
37
		$this->ensureUseStatements($class);
38
		$class->setParentClassName('AbstractAction');
39
	}
40
41
}
42