com.feilong.lib.xstream.mapper.DynamicProxyMapper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of feilong Show documentation
Show all versions of feilong Show documentation
feilong is a suite of core and expanded libraries that include utility classes, http, excel,cvs, io classes, and much much more.
/*
* Copyright (C) 2005 Joe Walnes.
* Copyright (C) 2006, 2007, 2009 XStream Committers.
* All rights reserved.
*
* The software in this package is published under the terms of the BSD
* style license a copy of which has been included with this distribution in
* the LICENSE.txt file.
*
* Created on 22. January 2005 by Joe Walnes
*/
package com.feilong.lib.xstream.mapper;
import java.lang.reflect.Proxy;
/**
* Mapper for handling special cases of aliasing dynamic proxies. The alias property specifies the name an instance
* of a dynamic proxy should be serialized with.
*
* @author Joe Walnes
*/
public class DynamicProxyMapper extends MapperWrapper{
private String alias;
public DynamicProxyMapper(Mapper wrapped){
this(wrapped, "dynamic-proxy");
}
public DynamicProxyMapper(Mapper wrapped, String alias){
super(wrapped);
this.alias = alias;
}
public String getAlias(){
return alias;
}
public void setAlias(String alias){
this.alias = alias;
}
@Override
public String serializedClass(Class type){
if (Proxy.isProxyClass(type)){
return alias;
}else{
return super.serializedClass(type);
}
}
@Override
public Class realClass(String elementName){
if (elementName.equals(alias)){
return DynamicProxy.class;
}else{
return super.realClass(elementName);
}
}
/**
* Place holder type used for dynamic proxies.
*/
public static class DynamicProxy{
}
}