1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.morph.reflect.reflectors;
17
18 import java.util.ArrayList;
19 import java.util.List;
20
21 import net.sf.morph.reflect.BeanReflector;
22 import net.sf.morph.reflect.GrowableContainerReflector;
23 import net.sf.morph.reflect.IndexedContainerReflector;
24 import net.sf.morph.reflect.InstantiatingReflector;
25 import net.sf.morph.reflect.MutableIndexedContainerReflector;
26
27 /**
28 * A reflector for {@link java.util.List}s.
29 *
30 * @author Matt Sgarlata
31 * @since Nov 26, 2004
32 */
33 public class ListReflector
34 extends SortedSetReflector
35 implements IndexedContainerReflector, MutableIndexedContainerReflector, GrowableContainerReflector,
36 InstantiatingReflector, BeanReflector {
37
38 private static final Class[] REFLECTABLE_TYPES = new Class[] { List.class };
39
40 protected Object newInstanceImpl(Class interfaceClass, Object parameters) throws Exception {
41 return interfaceClass == List.class ? new ArrayList() : super.newInstanceImpl(interfaceClass, parameters);
42 }
43
44 public Class[] getReflectableClassesImpl() {
45 return REFLECTABLE_TYPES;
46 }
47
48 protected Object setImpl(Object container, int index, Object propertyValue)
49 throws Exception {
50 return ((List) container).set(index, propertyValue);
51 }
52
53 }