package br.gov.mj.sislegis.app.parser.senado.xstream; import com.thoughtworks.xstream.converters.Converter; import com.thoughtworks.xstream.converters.MarshallingContext; import com.thoughtworks.xstream.converters.UnmarshallingContext; import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; public class AuthorConverter implements Converter { @Override public boolean canConvert(Class type) { return String.class.equals(type); } @Override public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) { // Desnecessario, somente parseia XML->Objetos } @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { if ("Autoria".equals(reader.getNodeName())) { Autoria au = (Autoria) context.convertAnother(reader, Autoria.class); if (au != null && au.Autor != null && au.Autor.Nome != null) { return au.Autor.Nome; } else { return ""; } } return reader.getValue(); } }