You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TaskHistoryAspect.aj 941B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package xxx.util;
  2. import java.util.List;
  3. import org.aspectj.lang.JoinPoint;
  4. import org.aspectj.lang.ProceedingJoinPoint;
  5. import org.aspectj.lang.annotation.Around;
  6. import org.aspectj.lang.annotation.Aspect;
  7. @Aspect
  8. public class TaskHistoryAspect {
  9. @Around("execution(@xxx.util.TaskModification * *.*(..))")
  10. public Object aroundModification(ProceedingJoinPoint joinPoint) throws Throwable {
  11. Task task = null;
  12. List<Task> list = null;
  13. for (Object arg : joinPoint.getArgs()) {
  14. if (arg instanceof Task) {
  15. task = (Task) arg;
  16. } else if (arg instanceof List) {
  17. list = (List) arg;
  18. }
  19. }
  20. Object result = joinPoint.proceed(joinPoint.getArgs());
  21. if (task != null) {
  22. logModification(joinPoint, task);
  23. } else {
  24. logModification(joinPoint, list);
  25. }
  26. return result;
  27. }
  28. private void logModification(JoinPoint joinPoint, Task task) {
  29. }
  30. private void logModification(JoinPoint joinPoint, List<Task> tasks) {
  31. }
  32. }