Completed
Push — master ( f1c264...f58245 )
by Thomas
04:22
created

SkeletonSerializerGenerator   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
c 1
b 0
f 0
lcom 1
cbo 5
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 gossi\codegen\model\PhpMethod;
6
use gossi\codegen\model\PhpParameter;
7
use keeko\tools\generator\serializer\AbstractSerializerGenerator;
8
9
class SkeletonSerializerGenerator extends AbstractSerializerGenerator {
10
	
11
	public function generate($className) {
12
		$class = new PhpClass($className);
13
		$class->setParentClassName('AbstractSerializer');
14
		$class->addUseStatement('keeko\\framework\\model\\AbstractSerializer');
15
		
16
		$this->generateIdentifyingMethods($class);
17
		
18
		return $class;
19
	}
20
	
21
	protected function generateIdentifyingMethods(PhpClass $class) {
22
		if (!$class->hasMethod('getType')) {
23
			$class->setMethod(PhpMethod::create('getType')
24
				->addParameter(PhpParameter::create('model'))
25
				->setBody($this->twig->render('getType.twig', [
26
					'type' => '@TODO'
27
				]))
28
			);
29
		}
30
		
31
		if (!$class->hasMethod('getId')) {
32
			$class->setMethod(PhpMethod::create('getId')
33
				->addParameter(PhpParameter::create('model'))
34
				->setBody($this->twig->render('getId.twig'))
35
			);
36
		}
37
	}
38
	
39
}