package tryanderror.xstream;
import org.junit.Test;
import com.github.signed.xml.xstream.converter.ToAttributedValueConverter;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.converters.ConverterLookup;
import com.thoughtworks.xstream.converters.SingleValueConverter;
import com.thoughtworks.xstream.converters.reflection.ReflectionProvider;
import com.thoughtworks.xstream.mapper.Mapper;
import com.thoughtworks.xstream.mapper.MapperWrapper;
public class EntsoeStyleConverter_Test {
public static class AClass{
public String value = "This should be in an attribute";
public CompositeClass anotherValue = new CompositeClass();
}
public static class CompositeClass {
public Integer value = 42;
}
public static class ToSingleValue implements SingleValueConverter{
@Override
public boolean canConvert(Class type) {
return CompositeClass.class == type;
}
@Override
public String toString(Object obj) {
CompositeClass cCompositeClass = (CompositeClass)obj;
return cCompositeClass.value.toString();
}
@Override
public Object fromString(String str) {
return new CompositeClass();
}
}
@Test
public void testName() throws Exception {
XStream xStream = new XStream();
xStream.registerConverter(new ToSingleValue());
Mapper mapper = xStream.getMapper();
ReflectionProvider reflectionProvider = xStream.getReflectionProvider();
ConverterLookup converterLookup = xStream.getConverterLookup();
String valueField = null;
ToAttributedValueConverter converter = new ToAttributedValueConverter(AClass.class, mapper, reflectionProvider, converterLookup, valueField );
xStream.registerConverter(converter);
System.out.println(xStream.toXML(new AClass()));
}
protected MapperWrapper wrapMapper(MapperWrapper next) {
return next;
}
}