package cc.smtweb.framework.core.mvc.controller.scan;

import cc.smtweb.framework.core.mvc.controller.IActionManager;
import cc.smtweb.framework.core.mvc.controller.access.IMethodAccess;

/**
 * 实现自定义@SwAction的拦截器，需要配合@SwAction继承注解配置到函数上使用
 *
 * @author kevin
 */
public interface IScanAction<T> {
    Class<T> actionType();

    /**
     * 一种@SwAction子类型只能声明一个SwActionPointcut
     *
     * @param module        模块名称
     * @param actionManager action管理器，用以注册API服务
     */
    void load(IActionManager actionManager, String module, T anno, IMethodAccess methodAccess);
}
