1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package org.org.usurper.handlers.additional;
24
25 import java.util.Map;
26
27 import org.org.usurper.UsurperGenerator;
28 import org.org.usurper.handlers.IHandler;
29 import org.org.usurper.handlers.basic.AbstractPropertyTypeHandler;
30 import org.org.usurper.model.HandledBeanProperty;
31 import org.org.usurper.model.HandledConstructorArg;
32 import org.org.usurper.model.ITargetDefinition;
33 import org.org.usurper.model.PropertyTypeDefinition;
34 import org.org.usurper.setup.UsurperGeneratorSetup;
35
36
37
38
39
40
41
42 public class ValueObjectPropertyTypeHandler extends AbstractPropertyTypeHandler {
43
44
45
46
47 public ValueObjectPropertyTypeHandler(PropertyTypeDefinition... supportedTypes) {
48 super(supportedTypes);
49 }
50
51
52
53
54
55 public ValueObjectPropertyTypeHandler(Class<?>... supportedTypes) {
56 super(supportedTypes);
57 }
58
59
60
61
62 public Object handle(HandledBeanProperty handledBeanProperty) {
63 return doHandle(handledBeanProperty.getPropertyClass(), handledBeanProperty.getUsurperGeneratorSetup().getAllHandlers());
64 }
65
66
67
68
69 public Object handle(HandledConstructorArg handledConstructorArg) {
70 return doHandle(handledConstructorArg.getConstructorArgClass(), handledConstructorArg.getUsurperGeneratorSetup().getAllHandlers());
71 }
72
73
74
75
76
77 @SuppressWarnings("unchecked")
78 private Object doHandle(Class<?> entityClass, Map<ITargetDefinition, IHandler> parentHandlers) {
79 UsurperGeneratorSetup usurperGeneratorSetup = new UsurperGeneratorSetup();
80 usurperGeneratorSetup.setAllHandlers(parentHandlers);
81 UsurperGenerator usurper = new UsurperGenerator(entityClass, usurperGeneratorSetup);
82 return usurper.generateUsurper();
83 }
84
85 }