Samples JDK
Sample5SerializeXStream.java
1 package com.freemindcafe.serialization.sample5;
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 public class Sample5SerializeXStream extends XStream {
11 
12  Sample5SerializeXStream(HierarchicalStreamDriver hierarchicalStreamDriver)
13  {
14  super(new PureJavaReflectionProvider(), hierarchicalStreamDriver);
15 
16  }
17 
18  @Override
19  protected MapperWrapper wrapMapper(MapperWrapper next) {
20  return new ClassMapper(next);
21  }
22 }
23 
24 class ClassMapper extends ClassAliasingMapper
25 {
26 
27  public ClassMapper(Mapper wrapped) {
28  super(wrapped);
29  }
30 
31  @Override
32  public String serializedClass(Class clazz) {
33  String name = super.serializedClass(clazz);
34  if (clazz.getName().equals(name))
35  {
36  return clazz.getSimpleName();
37  } else {
38  return name;
39  }
40  }
41 }
42