View Javadoc
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.util.Iterator; 10 import java.util.Map; 11 12 public class MapConverter extends AbstractCollectionConverter { 13 14 public MapConverter(ClassMapper classMapper) { 15 super(classMapper); 16 } 17 18 public boolean canConvert(Class type) { 19 return Map.class.isAssignableFrom(type); 20 } 21 22 public void toXML(ObjectTree objectGraph, XMLWriter xmlWriter, ConverterLookup converterLookup) { 23 Map map = (Map) objectGraph.get(); 24 for (Iterator iterator = map.entrySet().iterator(); iterator.hasNext();) { 25 Map.Entry entry = (Map.Entry) iterator.next(); 26 xmlWriter.startElement("entry"); 27 28 writeItem(entry.getKey(), xmlWriter, converterLookup, objectGraph); 29 writeItem(entry.getValue(), xmlWriter, converterLookup, objectGraph); 30 31 xmlWriter.endElement(); 32 } 33 } 34 35 public void fromXML(ObjectTree objectGraph, XMLReader xmlReader, ConverterLookup converterLookup, Class requiredType) { 36 int childCount = xmlReader.childCount(); 37 Map map = (Map) createCollection(requiredType); 38 for (int i = 0; i < childCount; i++) { 39 xmlReader.child(i); 40 41 Object key = readItem(xmlReader, 0, objectGraph, converterLookup); 42 Object value = readItem(xmlReader, 1, objectGraph, converterLookup); 43 map.put(key, value); 44 45 xmlReader.pop(); 46 } 47 objectGraph.set(map); 48 } 49 50 }

This page was automatically generated by Maven