FinderIntroductionAspect Aop

来源:互联网 发布:日本变态杀人犯知乎 编辑:程序博客网 时间:2024/06/17 11:32

package com.msong.dao.aop;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;

public class FinderIntroductionAspect
{
  public Object countByExecutor(ProceedingJoinPoint jp)  throws Throwable {
    FinderExecutor executor = (FinderExecutor)jp.getTarget();

    String methodName = jp.getSignature().getName();
    Object[] arguments = jp.getArgs();
    return executor.executeCounter(methodName, arguments);
  }

  public Object findByExecutor(ProceedingJoinPoint jp) throws Throwable {
    FinderExecutor executor = (FinderExecutor)jp.getTarget();

    String methodName = jp.getSignature().getName();
    Object[] arguments = jp.getArgs();
    return executor.executeFinder(methodName, arguments);
  }

  public Object listByExecutor(ProceedingJoinPoint jp) throws Throwable {
    FinderExecutor executor = (FinderExecutor)jp.getTarget();

    String methodName = "findBy" + jp.getSignature().getName().substring(6);
    Object[] arguments = jp.getArgs();
    return executor.executeLister(methodName, arguments);
  }

  public Object loadByExecutor(ProceedingJoinPoint jp) throws Throwable {
    FinderExecutor executor = (FinderExecutor)jp.getTarget();

    String methodName = jp.getSignature().getName();
    Object[] arguments = jp.getArgs();
    return executor.exceuteLoader(methodName, arguments);
  }

  public Object iteraterByExecutor(ProceedingJoinPoint jp) throws Throwable {
    FinderExecutor executor = (FinderExecutor)jp.getTarget();

    String methodName = "findBy" + jp.getSignature().getName().substring(10);
    Object[] arguments = jp.getArgs();
    return executor.exceuteIterater(methodName, arguments);
  }

  public Object scrollByExecutor(ProceedingJoinPoint jp) throws Throwable {
    FinderExecutor executor = (FinderExecutor)jp.getTarget();

    String methodName = "findBy" + jp.getSignature().getName().substring(8);
    Object[] arguments = jp.getArgs();
    return executor.exceuteScroller(methodName, arguments);
  }

  public Object pageByExecutor(ProceedingJoinPoint jp) throws Throwable {
    FinderExecutor executor = (FinderExecutor)jp.getTarget();

    String methodName = "findBy" + jp.getSignature().getName().substring(6);
    Object[] arguments = jp.getArgs();
    return executor.exceutePager(methodName, arguments);
  }
}

原创粉丝点击