1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.ui.form.field.definition.migration;
35
36 import info.magnolia.ui.field.ConfiguredFieldDefinition;
37
38 import java.math.BigDecimal;
39 import java.util.Date;
40 import java.util.HashMap;
41 import java.util.Map;
42
43 import com.vaadin.data.converter.StringToBigDecimalConverter;
44 import com.vaadin.data.converter.StringToBooleanConverter;
45 import com.vaadin.data.converter.StringToDateConverter;
46 import com.vaadin.data.converter.StringToDoubleConverter;
47 import com.vaadin.data.converter.StringToLongConverter;
48
49
50
51
52
53
54
55 public abstract class AbstractTextFieldDefinitionConverter<NEW extends ConfiguredFieldDefinition<String>, OLD extends info.magnolia.ui.form.field.definition.FieldDefinition> extends AbstractConfiguredFieldDefinitionConverter<String, NEW, OLD> {
56
57 private Map<Class, Class> supportedTypes = new HashMap<Class, Class>() {{
58 put(Boolean.class, StringToBooleanConverter.class);
59 put(Double.class, StringToDoubleConverter.class);
60 put(BigDecimal.class, StringToBigDecimalConverter.class);
61 put(Long.class, StringToLongConverter.class);
62 put(Date.class, StringToDateConverter.class);
63 }};
64
65 @Override
66 public NEW convert(OLD oldDefinition) {
67 NEW newDefinition = super.convert(oldDefinition);
68 if (newDefinition.getConverterClass() == null) {
69 newDefinition.setConverterClass(supportedTypes.getOrDefault(convertDefinitionType(oldDefinition.getType()), null));
70 }
71 return newDefinition;
72 }
73
74 @Override
75 String convertDefaultValue(OLD oldDefinition, NEW newDefinition) {
76 return oldDefinition.getDefaultValue();
77 }
78 }