DebounceTask.java 837 B

123456789101112131415161718192021222324252627282930313233
  1. package com.izouma.nineth.aspect.debounce;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.aspectj.lang.ProceedingJoinPoint;
  4. import java.util.concurrent.Callable;
  5. import java.util.function.Function;
  6. @Slf4j
  7. public class DebounceTask implements Callable<Void> {
  8. private final ProceedingJoinPoint joinPoint;
  9. private final Function<Void, Void> callback;
  10. public DebounceTask(ProceedingJoinPoint joinPoint, Function<Void, Void> callback) {
  11. this.joinPoint = joinPoint;
  12. this.callback = callback;
  13. }
  14. @Override
  15. public Void call() throws Exception {
  16. try {
  17. this.joinPoint.proceed();
  18. if (this.callback != null) {
  19. this.callback.apply(null);
  20. }
  21. } catch (Throwable e) {
  22. e.printStackTrace();
  23. }
  24. return null;
  25. }
  26. }