package student.web.internal.converters; import student.web.AbstractPersistentMap; import student.web.ApplicationPersistentMap; import student.web.SessionPersistentMap; import student.web.SharedPersistentMap; import com.thoughtworks.xstream.converters.Converter; import com.thoughtworks.xstream.converters.MarshallingContext; import com.thoughtworks.xstream.converters.UnmarshallingContext; import com.thoughtworks.xstream.converters.reflection.ReflectionConverter; import com.thoughtworks.xstream.converters.reflection.ReflectionProvider; import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; import com.thoughtworks.xstream.mapper.Mapper; public class PersistentMapConverter implements Converter { @SuppressWarnings("rawtypes") public boolean canConvert(Class type) { return type != null && AbstractPersistentMap.class.isAssignableFrom(type); } public void marshal( Object source, HierarchicalStreamWriter writer, MarshallingContext context) { throw new IllegalArgumentException( "You cannot store an object that contains a reference to a " + source.getClass().getSimpleName() + "."); } public Object unmarshal( HierarchicalStreamReader reader, UnmarshallingContext context) { throw new IllegalArgumentException( "You cannot load an object that contains a reference to a " + "persistent map."); } }