Search code examples
javadynamicautomationaliasxstream

XStream short dynamic aliases


I want to have short names for classes, now i can do it with aliases

XStream x = new XStream();
x.alias("dic", Dic.class);

but i have to define alias manually for every class, is there any way to configure xstream to do it automatically?


Solution

  • Internally, XStream uses its Mapper interface to handle the mapping of classes and fields to their corresponding names in the XML. There are a large number of implementations of this interface. The XStream class itself can take a Mapper in its constructor. You might want to check out the source code of that class to see which Mapper implementation it uses by default, and then write your own implementation that automatically does your aliasing for you. ClassAliasingMapper looks useful, for example.