1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.rblasch.convert.converters.collections;
17
18 import org.rblasch.convert.MetaConverter;
19 import org.rblasch.convert.converters.AbstractConverter;
20 import org.rblasch.convert.type.Type;
21 import org.rblasch.convert.type.Types;
22
23 import java.util.ArrayList;
24 import java.util.List;
25
26 /***
27 * @author Ronald Blaschke
28 */
29 public class ArrayToArrayListConverter extends AbstractConverter {
30 private final Type sourceCType, destinationCType;
31 private final MetaConverter cConverter;
32
33 public ArrayToArrayListConverter(final Type sourceCType, final Type destinationCType, final MetaConverter cConverter) {
34 this.sourceCType = sourceCType;
35 this.destinationCType = destinationCType;
36 this.cConverter = cConverter;
37 }
38
39 public Type getSourceType() {
40 return Types.findPTypeByType(Types.primitiveArrayType(), sourceCType);
41 }
42
43 public Type getDestinationType() {
44 return Types.findPTypeByType(Types.findTypeByClass(ArrayList.class), destinationCType);
45 }
46
47 public int getWeight() {
48 return 100;
49 }
50
51 public Object convert(final Object obj) throws Exception {
52 final Object[] array = (Object[]) obj;
53 final List l = new ArrayList(array.length);
54 for (int i = 0; i < array.length; ++i) {
55 l.add(cConverter.getConverter().convert(array[i]));
56 }
57 return l;
58 }
59 }