1 package com.thoughtworks.xstream.converters.collections;
2
3 import com.thoughtworks.xstream.alias.ClassMapper;
4 import com.thoughtworks.xstream.converters.ConverterLookup;
5 import com.thoughtworks.xstream.objecttree.ObjectTree;
6 import com.thoughtworks.xstream.xml.XMLReader;
7 import com.thoughtworks.xstream.xml.XMLWriter;
8
9 import java.lang.reflect.Array;
10
11 public class ArrayConverter extends AbstractCollectionConverter {
12
13 public ArrayConverter(ClassMapper classMapper) {
14 super(classMapper);
15 }
16
17 public boolean canConvert(Class type) {
18 return type.isArray();
19 }
20
21 public void toXML(ObjectTree objectGraph, XMLWriter xmlWriter, ConverterLookup converterLookup) {
22 Object array = objectGraph.get();
23 int length = Array.getLength(array);
24 for (int i = 0; i < length; i++) {
25 Object item = Array.get(array, i);
26 writeItem(item, xmlWriter, converterLookup, objectGraph);
27 }
28 }
29
30 public void fromXML(ObjectTree objectGraph, XMLReader xmlReader, ConverterLookup converterLookup, Class requiredType) {
31 int size = xmlReader.childCount();
32 Class type = classMapper.lookupType(xmlReader.name());
33 Object array = Array.newInstance(type.getComponentType(), size);
34 for (int i = 0; i < size; i++) {
35 Object item = readItem(xmlReader, i, objectGraph, converterLookup);
36 Array.set(array, i, item);
37 }
38 objectGraph.set(array);
39 }
40
41
42 }
This page was automatically generated by Maven