Completed
Push — master ( 8aa0e6...89168a )
by Thomas
05:06
created

GeneratorFactory::createPayloadGenerator()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 9
ccs 0
cts 0
cp 0
rs 9.6666
cc 3
eloc 6
nc 3
nop 2
crap 12
1
<?php
2
namespace keeko\tools\generator;
3
4
use keeko\tools\generator\action\AbstractModelActionGenerator;
5
use keeko\tools\generator\action\ModelCreateActionGenerator;
6
use keeko\tools\generator\action\ModelDeleteActionGenerator;
7
use keeko\tools\generator\action\ModelListActionGenerator;
8
use keeko\tools\generator\action\ModelReadActionGenerator;
9
use keeko\tools\generator\action\ModelUpdateActionGenerator;
10
use keeko\tools\generator\responder\AbstractPayloadJsonResponderGenerator;
11
use keeko\tools\generator\responder\ModelCreateJsonResponderGenerator;
12
use keeko\tools\generator\responder\ModelDeleteJsonResponderGenerator;
13
use keeko\tools\generator\responder\ModelListJsonResponderGenerator;
14 5
use keeko\tools\generator\responder\ModelReadJsonResponderGenerator;
15
use keeko\tools\generator\responder\ModelUpdateJsonResponderGenerator;
16 5
use keeko\tools\services\CommandService;
17 4
use keeko\tools\generator\package\AppPackageGenerator;
18
use keeko\tools\generator\package\ModulePackageGenerator;
19 5
use keeko\tools\generator\package\AbstractPackageGenerator;
20 5
use keeko\tools\generator\responder\PayloadJsonResponderGenerator;
21
use keeko\tools\generator\responder\PayloadHtmlResponderGenerator;
22 3
23 3
class GeneratorFactory {
24
	
25 3
	/**
26 3
	 * Creates a generator for the given trait type
27
	 * 
28 3
	 * @param string $type
29 3
	 * @return AbstractModelActionGenerator
30
	 */
31
	public static function createModelActionGenerator($type, CommandService $service) {
32
		switch ($type) {
33
			case 'list':
34
				return new ModelListActionGenerator($service);
35
				
36
			case 'create':
37
				return new ModelCreateActionGenerator($service);
38
				
39 2
			case 'update':
40
				return new ModelUpdateActionGenerator($service);
41 2
				
42 1
			case 'read':
43
				return new ModelReadActionGenerator($service);
44 2
				
45 2
			case 'delete':
46
				return new ModelDeleteActionGenerator($service);
47 1
		}
48 1
	}
49
	
50 1
	/**
51 1
	 * Creates a generator for the given json respose
52
	 * 
53 1
	 * @param string $type
54 1
	 * @param CommandService $service
55
	 * @return AbstractPayloadJsonResponderGenerator
56
	 */
57
	public static function createModelJsonResponderGenerator($type, CommandService $service) {
58
		switch ($type) {
59
			case 'list':
60
				return new ModelListJsonResponderGenerator($service);
61
62
			case 'create':
63
				return new ModelCreateJsonResponderGenerator($service);
64
		
65
			case 'update':
66
				return new ModelUpdateJsonResponderGenerator($service);
67
		
68
			case 'read':
69
				return new ModelReadJsonResponderGenerator($service);
70
		
71
			case 'delete':
72
				return new ModelDeleteJsonResponderGenerator($service);
73
		}
74
	}
75
76
	/**
77
	 * Creates a new package generator
78
	 * 
79
	 * @param string $type
80
	 * @param CommandService $serivce
0 ignored issues
show
Bug introduced by
There is no parameter named $serivce. Was it maybe removed?

This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.

Consider the following example. The parameter $italy is not defined by the method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
81
	 * @return AbstractPackageGenerator
82
	 */
83
	public static function createPackageGenerator($type, CommandService $service) {
84
		switch ($type) {
85
			case 'app':
86
				return new AppPackageGenerator($service);
87
				
88
			case 'module':
89
				return new ModulePackageGenerator($service);
90
		}
91
	}
92
	
93
	public static function createPayloadGenerator($format, CommandService $service) {
94
		switch ($format) {
95
			case 'json':
96
				return new PayloadJsonResponderGenerator($service);
97
				
98
			case 'html':
99
				return new PayloadHtmlResponderGenerator($service);
100
		}
101
	}
102
}
103