package br.com.doctors.util.converter; import java.util.Map; import java.util.Map.Entry; import javax.servlet.http.HttpServletResponse; import br.com.caelum.vraptor.interceptor.TypeNameExtractor; import br.com.caelum.vraptor.ioc.Component; import br.com.caelum.vraptor.serialization.JSONSerialization; import br.com.caelum.vraptor.serialization.ProxyInitializer; import br.com.caelum.vraptor.serialization.xstream.XStreamBuilder; import br.com.caelum.vraptor.serialization.xstream.XStreamJSONSerialization; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.converters.MarshallingContext; import com.thoughtworks.xstream.converters.UnmarshallingContext; import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; @Component public class JSONMapSerialization extends XStreamJSONSerialization { public JSONMapSerialization(HttpServletResponse response, TypeNameExtractor extractor, ProxyInitializer initializer, XStreamBuilder builder) { super(response, extractor, initializer, builder); } @Override protected XStream getXStream() { XStream xStream = super.getXStream(); xStream.registerConverter(new JSONMapConverter()); return xStream; } public boolean canConvert(Class type) { return Map.class.isAssignableFrom(type); } /* public void marshal(Object obj, HierarchicalStreamWriter writer, MarshallingContext context) { writer.startNode("map"); Map<?,?> map = (Map<?,?>) obj; for (Entry<?,?> entry : map.entrySet()) { writer.addAttribute(entry.getKey().toString(), entry.getValue().toString()); System.out.printf("%s, %s\n", entry.getKey().toString(), entry.getValue().toString()); } writer.endNode(); } */ public Object unmarshal(HierarchicalStreamReader arg0, UnmarshallingContext arg1) { return null; // n�o precisa } }