1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.morph.transform.transformers;
17
18 import net.sf.composite.util.CompositeUtils;
19 import net.sf.morph.reflect.BeanReflector;
20 import net.sf.morph.reflect.ContainerReflector;
21 import net.sf.morph.reflect.GrowableContainerReflector;
22 import net.sf.morph.reflect.IndexedContainerReflector;
23 import net.sf.morph.reflect.MutableIndexedContainerReflector;
24
25 /**
26 * A base class for transformers that are implemented using a Reflector.
27 *
28 * @author Matt Sgarlata
29 * @since Dec 24, 2004
30 */
31 public class BaseReflectorTransformer extends BaseTransformer {
32
33 public BaseReflectorTransformer() {
34 super();
35 }
36
37 protected Class[] getDestinationClassesImpl() throws Exception {
38 return getReflector().getReflectableClasses();
39 }
40 protected Class[] getSourceClassesImpl() throws Exception {
41 return getReflector().getReflectableClasses();
42 }
43
44 protected BeanReflector getBeanReflector() {
45 return (BeanReflector) getReflector(BeanReflector.class);
46 }
47
48 protected ContainerReflector getContainerReflector() {
49 return (ContainerReflector) getReflector(ContainerReflector.class);
50 }
51
52 protected MutableIndexedContainerReflector getMutableIndexedContainerReflector() {
53 return (MutableIndexedContainerReflector) getReflector(MutableIndexedContainerReflector.class);
54 }
55
56 protected IndexedContainerReflector getIndexedContainerReflector() {
57 return (IndexedContainerReflector) getReflector(IndexedContainerReflector.class);
58 }
59
60 protected GrowableContainerReflector getGrowableContainerReflector() {
61 return (GrowableContainerReflector) getReflector(GrowableContainerReflector.class);
62 }
63
64 protected boolean hasReflector(Class reflectorType) {
65 return CompositeUtils.isSpecializable(getReflector(), reflectorType);
66 }
67 }