Completed
Push — master ( 56265b...886536 )
by Thomas
09:04
created

ActionSerializerGenerator   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 31
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 31
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A generate() 0 9 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 ActionSerializerGenerator extends AbstractSerializerGenerator {
11
	
12
	public function generate(ActionSchema $action) {
13
		$class = new PhpClass(str_replace(['Action', 'action'], ['Serializer', 'serializer'], $action->getClass()));
14
		$class->setParentClassName('AbstractSerializer');
15
		$class->addUseStatement('keeko\\framework\\model\\AbstractSerializer');
16
		
17
		$this->generateIdentifyingMethods($class);
18
		
19
		return $class;
20
	}
21
	
22
	protected function generateIdentifyingMethods(PhpClass $class) {
23
		if (!$class->hasMethod('getType')) {
24
			$class->setMethod(PhpMethod::create('getType')
25
				->addParameter(PhpParameter::create('model'))
26
				->setBody($this->twig->render('getType.twig', [
27
					'type' => '@TODO'
28
				]))
29
			);
30
		}
31
		
32
		if (!$class->hasMethod('getId')) {
33
			$class->setMethod(PhpMethod::create('getId')
34
				->addParameter(PhpParameter::create('model'))
35
				->setBody($this->twig->render('getId.twig'))
36
			);
37
		}
38
	}
39
	
40
}