Completed
Push — master ( 9fef8e...159932 )
by Thomas
04:59
created

BlankSerializerGenerator   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
c 1
b 0
f 0
lcom 1
cbo 6
dl 0
loc 33
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A generate() 0 11 1
A generateIdentifyingMethods() 0 17 3
1
<?php
2
namespace keeko\tools\generator\serializer;
3
4
use gossi\codegen\model\PhpClass;
5
use keeko\framework\schema\ActionSchema;
6
use keeko\tools\generator\serializer\AbstractSerializerGenerator;
7
use gossi\codegen\model\PhpMethod;
8
use gossi\codegen\model\PhpParameter;
9
10
class BlankSerializerGenerator extends AbstractSerializerGenerator {
11
	
12
	public function generate(ActionSchema $action) {
13
		$className = str_replace('action', 'serializer', $action->getClass());
14
		$className = preg_replace('/Action$/', 'Serializer', $className);
15
		$class = new PhpClass($className);
16
		$class->setParentClassName('AbstractSerializer');
17
		$class->addUseStatement('keeko\\framework\\model\\AbstractSerializer');
18
		
19
		$this->generateIdentifyingMethods($class);
20
		
21
		return $class;
22
	}
23
	
24
	protected function generateIdentifyingMethods(PhpClass $class) {
25
		if (!$class->hasMethod('getType')) {
26
			$class->setMethod(PhpMethod::create('getType')
27
				->addParameter(PhpParameter::create('model'))
28
				->setBody($this->twig->render('getType.twig', [
29
					'type' => '@TODO'
30
				]))
31
			);
32
		}
33
		
34
		if (!$class->hasMethod('getId')) {
35
			$class->setMethod(PhpMethod::create('getId')
36
				->addParameter(PhpParameter::create('model'))
37
				->setBody($this->twig->render('getId.twig'))
38
			);
39
		}
40
	}
41
	
42
}