Samples JDK
SerializeXStream.java
1 package com.freemindcafe.serialization;
2 
3 import com.thoughtworks.xstream.XStream;
4 import com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider;
5 import com.thoughtworks.xstream.io.HierarchicalStreamDriver;
6 import com.thoughtworks.xstream.mapper.ClassAliasingMapper;
7 import com.thoughtworks.xstream.mapper.Mapper;
8 import com.thoughtworks.xstream.mapper.MapperWrapper;
9 
10 /**
11  * extends xstream and over rides mapper to use simple classname if the alias is not used.
12  * @author KANAG00R
13  *
14  */
15 public class SerializeXStream extends XStream
16 {
17 
18  SerializeXStream(HierarchicalStreamDriver hierarchicalStreamDriver)
19  {
20  super(hierarchicalStreamDriver);
21 
22  }
23 
24  @Override
25  protected MapperWrapper wrapMapper(MapperWrapper next) {
26  return new ClassMapper(next);
27  }
28 
29 }
30 
31 class ClassMapper extends ClassAliasingMapper
32 {
33 
34  public ClassMapper(Mapper wrapped) {
35  super(wrapped);
36  }
37 
38  @Override
39  public String serializedClass(Class clazz) {
40  String name = super.serializedClass(clazz);
41  if (clazz.getName().equals(name))
42  {
43  return clazz.getSimpleName();
44  } else {
45  return name;
46  }
47  }
48 }