public class CatchAllConverter
extends java.lang.Object
implements com.thoughtworks.xstream.converters.Converter
Converter
that supports all classes but throws exceptions
for (un)marshalling.
Main purpose of this class is to register this converter as a catch-all converter with a normal or higher priority, in addition to converters that explicitly support the domain classes that should be supported. As a result, default XStream converters with lower priorities and possible security vulnerabilities do not get invoked.
For instance:
XStreamMarshaller unmarshaller = new XStreamMarshaller(); unmarshaller.getXStream().registerConverter(new MyDomainClassConverter(), XStream.PRIORITY_VERY_HIGH); unmarshaller.getXStream().registerConverter(new CatchAllConverter(), XStream.PRIORITY_NORMAL); MyDomainClass o = unmarshaller.unmarshal(source);
Constructor and Description |
---|
CatchAllConverter() |
Modifier and Type | Method and Description |
---|---|
boolean |
canConvert(java.lang.Class type) |
void |
marshal(java.lang.Object source,
com.thoughtworks.xstream.io.HierarchicalStreamWriter writer,
com.thoughtworks.xstream.converters.MarshallingContext context) |
java.lang.Object |
unmarshal(com.thoughtworks.xstream.io.HierarchicalStreamReader reader,
com.thoughtworks.xstream.converters.UnmarshallingContext context) |
public boolean canConvert(java.lang.Class type)
canConvert
in interface com.thoughtworks.xstream.converters.ConverterMatcher
public void marshal(java.lang.Object source, com.thoughtworks.xstream.io.HierarchicalStreamWriter writer, com.thoughtworks.xstream.converters.MarshallingContext context)
marshal
in interface com.thoughtworks.xstream.converters.Converter
public java.lang.Object unmarshal(com.thoughtworks.xstream.io.HierarchicalStreamReader reader, com.thoughtworks.xstream.converters.UnmarshallingContext context)
unmarshal
in interface com.thoughtworks.xstream.converters.Converter