package org.jboss.cache.aop;
import org.jboss.aop.Advised;
import org.jboss.aop.InstanceAdvisor;
import org.jboss.aop.advice.Interceptor;
import java.io.NotSerializableException;
import java.io.ObjectStreamException;
public class WriteReplacer implements WriteReplaceable
{
Object obj;
public WriteReplacer(Object obj)
{
this.obj = obj;
}
public Object writeReplace() throws ObjectStreamException
{
if (obj instanceof Advised) {
InstanceAdvisor advisor = ((Advised) obj)._getInstanceAdvisor();
org.jboss.aop.advice.Interceptor[] interceptors = advisor.getInterceptors();
CacheInterceptor cacheInterceptor = null;
for (int i = 0; i < interceptors.length; i++) {
if (interceptors[i] instanceof CacheInterceptor) {
cacheInterceptor = (CacheInterceptor) interceptors[i];
break;
}
}
if (cacheInterceptor != null) {
try {
cacheInterceptor.beforeSerialization(obj);
} catch (Exception e) {
e.printStackTrace();
throw new NotSerializableException(e.getMessage());
}
}
}
return obj;
}
}