I'm developing an aspect that checks arguments of setter methods and overwrites empty strings with null value. This is my state so far:
@Before("execution(* de.foo.entity.*.set*(..)) && args(java.lang.String)")
public void check(final JoinPoint jp) {
LOGGER.debug(jp.getSignature().toLongString());
Object[] args = jp.getArgs();
for (int i = 0; i < args.length; i++) {
if (args[i] instanceof String && ((String) args[i]).isEmpty()) {
args[i] = null;
}
}
}
Unfortunately the overwrite statement args[i] = null;
does now work! Do anyone know how should I overwrite it?
Cheers,
Kevin
I believe you have to implement an around advice, instead of a before advice.
Because you can use proceed with your new arguments:
proceed(newArgs);