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.dynamic.MagnoliaProxy;
37 import info.magnolia.ui.field.StaticFieldViewDefinition;
38 import info.magnolia.ui.form.field.definition.FieldDefinition;
39
40 import org.slf4j.Logger;
41 import org.slf4j.LoggerFactory;
42
43 import net.sf.cglib.proxy.Enhancer;
44
45
46
47
48
49
50 public class FallbackFieldDefinitionConverter<T> extends AbstractComplexFieldDefinitionConverter<T, StaticFieldViewDefinition<T>, FieldDefinition> {
51
52 private final Logger log = LoggerFactory.getLogger(FallbackFieldDefinitionConverter.class);
53
54 @Override
55 public StaticFieldViewDefinition<T> convert(FieldDefinition oldDefinition) {
56 StaticFieldViewDefinition<T> newDefinition = createNewDefinition(oldDefinition);
57 newDefinition.setName(oldDefinition.getName());
58 newDefinition.setLabel(oldDefinition.getLabel());
59
60 Class oldDefinitionClass = Enhancer.isEnhanced(oldDefinition.getClass()) || MagnoliaProxy.class.isAssignableFrom(oldDefinition.getClass()) ? oldDefinition.getClass().getSuperclass() : oldDefinition.getClass();
61 String message = "No converter for old " + oldDefinitionClass + ". Falling back to " + StaticFieldViewDefinition.class + ".";
62 log.error(message);
63 newDefinition.setValue("Conversion not supported.");
64 newDefinition.setDescription(message);
65 return newDefinition;
66 }
67
68 @Override
69 StaticFieldViewDefinition<T> createNewDefinition(FieldDefinition oldDefinition) {
70 return new StaticFieldViewDefinition<>();
71 }
72 }