Class CustomMapEntryConverter

  • All Implemented Interfaces:
    com.thoughtworks.xstream.converters.Converter, com.thoughtworks.xstream.converters.ConverterMatcher

    public class CustomMapEntryConverter
    extends com.thoughtworks.xstream.converters.collections.MapConverter
    A custom Map.Entry converter that always uses AbstractMap.SimpleEntry for unmarshalling. This is probably not semantically correct 100% of the time, but it's likely fine for all the cases where we are using marshalling / unmarshalling. The reason for doing this is to avoid XStream causing illegal access issues for internal JDK types
    • Constructor Summary

      Constructors 
      Constructor Description
      CustomMapEntryConverter​(com.thoughtworks.xstream.mapper.Mapper mapper)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean canConvert​(Class type)  
      void marshal​(Object source, com.thoughtworks.xstream.io.HierarchicalStreamWriter writer, com.thoughtworks.xstream.converters.MarshallingContext context)  
      Object unmarshal​(com.thoughtworks.xstream.io.HierarchicalStreamReader reader, com.thoughtworks.xstream.converters.UnmarshallingContext context)  
      • Methods inherited from class com.thoughtworks.xstream.converters.collections.MapConverter

        createCollection, populateMap, populateMap, putCurrentEntryIntoMap
      • Methods inherited from class com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter

        mapper, readBareItem, readCompleteItem, readItem, writeBareItem, writeCompleteItem, writeItem, writeNullItem
    • Constructor Detail

      • CustomMapEntryConverter

        public CustomMapEntryConverter​(com.thoughtworks.xstream.mapper.Mapper mapper)
    • Method Detail

      • canConvert

        public boolean canConvert​(Class type)
        Specified by:
        canConvert in interface com.thoughtworks.xstream.converters.ConverterMatcher
        Overrides:
        canConvert in class com.thoughtworks.xstream.converters.collections.MapConverter
      • marshal

        public void marshal​(Object source,
                            com.thoughtworks.xstream.io.HierarchicalStreamWriter writer,
                            com.thoughtworks.xstream.converters.MarshallingContext context)
        Specified by:
        marshal in interface com.thoughtworks.xstream.converters.Converter
        Overrides:
        marshal in class com.thoughtworks.xstream.converters.collections.MapConverter
      • unmarshal

        public Object unmarshal​(com.thoughtworks.xstream.io.HierarchicalStreamReader reader,
                                com.thoughtworks.xstream.converters.UnmarshallingContext context)
        Specified by:
        unmarshal in interface com.thoughtworks.xstream.converters.Converter
        Overrides:
        unmarshal in class com.thoughtworks.xstream.converters.collections.MapConverter