{
private static final String SET = "set";
private Set changedPropSet;
public DTODataChangeInterceptor()
{
changedPropSet = new HashSet();
}
MethodProxy proxy) throws Throwable
{
String name = method.getName();
{
String s = name.substring(SET.length() - 1);
String propName = StringUtils.firstLowerCase(s);
changedPropSet.add(propName);
}
}
public Set getChangedPropSet()
{
return Collections.unmodifiableSet(changedPropSet);
}
public void reset()
{
changedPropSet.clear();
}
}
enhancer.setSuperclass(destClass);
enhancer.setCallback(new DTODataChangeInterceptor());
IValueObject newBean = (IValueObject) enhancer.create();
// .getDTODataChangeInterceptor(newBean);
interceptor.reset();
public static DTODataChangeInterceptor getDTODataChangeInterceptor(Object obj)
{
if(!(obj instanceof Factory))
{
return null;
}
Factory f = (Factory)obj;
Callback[] callBacks = f.getCallbacks();
for(int i=0,n=callBacks.length;i<n;i++)
{
Callback callBack = callBacks[i];
if(callBack instanceof DTODataChangeInterceptor)
{
return (DTODataChangeInterceptor)callBack;
}
}
return null;
}
既可以得到哪些字段变化了。