Package org.nutz.mvc

Examples of org.nutz.mvc.ActionInfo


public abstract class Loadings {

  private static final Log log = Logs.get();

  public static ActionInfo createInfo(Class<?> type) {
    ActionInfo ai = new ActionInfo();
    evalEncoding(ai, type.getAnnotation(Encoding.class));
    evalHttpAdaptor(ai, type.getAnnotation(AdaptBy.class));
    evalActionFilters(ai, type.getAnnotation(Filters.class));
    evalPathMap(ai, type.getAnnotation(PathMap.class));
    evalOk(ai, type.getAnnotation(Ok.class));
View Full Code Here


    evalModule(ai, type);
    return ai;
  }

  public static ActionInfo createInfo(Method method) {
    ActionInfo ai = new ActionInfo();
    evalEncoding(ai, method.getAnnotation(Encoding.class));
    evalHttpAdaptor(ai, method.getAnnotation(AdaptBy.class));
    evalActionFilters(ai, method.getAnnotation(Filters.class));
    evalOk(ai, method.getAnnotation(Ok.class));
    evalFail(ai, method.getAnnotation(Fail.class));
    evalAt(ai, method.getAnnotation(At.class), method.getName());
    evalActionChainMaker(ai, method.getAnnotation(Chain.class));
    evalHttpMethod(ai, method);
    ai.setMethod(method);
    return ai;
  }
View Full Code Here

    ActionChainMaker maker = createChainMaker(config, mainModule);

    /*
     * 创建主模块的配置信息
     */
    ActionInfo mainInfo = Loadings.createInfo(mainModule);

    /*
     * 准备要加载的模块列表
     */
    //TODO 为什么用Set呢? 用List不是更快吗?
    Set<Class<?>> modules = Loadings.scanModules(mainModule);

    /*
     * 分析所有的子模块
     */
    for (Class<?> module : modules) {
      ActionInfo moduleInfo = Loadings.createInfo(module).mergeWith(mainInfo);
      for (Method method : module.getMethods()) {
        /*
         * public 并且声明了 @At 的函数,才是入口函数
         */
        if (!Modifier.isPublic(method.getModifiers())
          || !method.isAnnotationPresent(At.class))
          continue;
        // 增加到映射中
        ActionInfo info = Loadings.createInfo(method).mergeWith(moduleInfo);
        info.setViewMakers(makers);
        mapping.add(maker, info, config);
      }
     
      //记录pathMap
      if(null != moduleInfo.getPathMap()){
View Full Code Here

        ActionChainMaker maker = createChainMaker(config, mainModule);

        /*
         * 创建主模块的配置信息
         */
        ActionInfo mainInfo = Loadings.createInfo(mainModule);

        /*
         * 准备要加载的模块列表
         */
        // TODO 为什么用Set呢? 用List不是更快吗?
        Set<Class<?>> modules = Loadings.scanModules(mainModule);

        if (modules.isEmpty())
            if (log.isWarnEnabled())
                log.warn("None module classes found!!!");

        boolean hasAtMethod = false;
        /*
         * 分析所有的子模块
         */
        for (Class<?> module : modules) {
            ActionInfo moduleInfo = Loadings.createInfo(module).mergeWith(mainInfo);
            for (Method method : module.getMethods()) {
                /*
                 * public 并且声明了 @At 的函数,才是入口函数
                 */
                if (!Modifier.isPublic(method.getModifiers())
                    || !method.isAnnotationPresent(At.class))
                    continue;
                // 增加到映射中
                ActionInfo info = Loadings.createInfo(method).mergeWith(moduleInfo);
                info.setViewMakers(makers);
                mapping.add(maker, info, config);
                hasAtMethod = true;
            }

            // 记录pathMap
View Full Code Here

public abstract class Loadings {

    private static final Log log = Logs.get();

    public static ActionInfo createInfo(Class<?> type) {
        ActionInfo ai = new ActionInfo();
        evalEncoding(ai, type.getAnnotation(Encoding.class));
        evalHttpAdaptor(ai, type.getAnnotation(AdaptBy.class));
        evalActionFilters(ai, type.getAnnotation(Filters.class));
        evalPathMap(ai, type.getAnnotation(PathMap.class));
        evalOk(ai, type.getAnnotation(Ok.class));
View Full Code Here

        evalModule(ai, type);
        return ai;
    }

    public static ActionInfo createInfo(Method method) {
        ActionInfo ai = new ActionInfo();
        evalEncoding(ai, method.getAnnotation(Encoding.class));
        evalHttpAdaptor(ai, method.getAnnotation(AdaptBy.class));
        evalActionFilters(ai, method.getAnnotation(Filters.class));
        evalOk(ai, method.getAnnotation(Ok.class));
        evalFail(ai, method.getAnnotation(Fail.class));
        evalAt(ai, method.getAnnotation(At.class), method.getName());
        evalActionChainMaker(ai, method.getAnnotation(Chain.class));
        evalHttpMethod(ai, method);
        ai.setMethod(method);
        return ai;
    }
View Full Code Here

        ActionChainMaker maker = createChainMaker(config, mainModule);

        /*
         * 创建主模块的配置信息
         */
        ActionInfo mainInfo = Loadings.createInfo(mainModule);

        /*
         * 准备要加载的模块列表
         */
        // TODO 为什么用Set呢? 用List不是更快吗?
        Set<Class<?>> modules = Loadings.scanModules(mainModule);

        if (modules.isEmpty()) {
            if (log.isWarnEnabled())
                log.warn("None module classes found!!!");
        }

        int atMethods = 0;
        /*
         * 分析所有的子模块
         */
        for (Class<?> module : modules) {
            ActionInfo moduleInfo = Loadings.createInfo(module).mergeWith(mainInfo);
            for (Method method : module.getMethods()) {
                /*
                 * public 并且声明了 @At 的函数,才是入口函数
                 */
                if (!Modifier.isPublic(method.getModifiers())
                    || !method.isAnnotationPresent(At.class))
                    continue;
                // 增加到映射中
                ActionInfo info = Loadings.createInfo(method).mergeWith(moduleInfo);
                info.setViewMakers(makers);
                mapping.add(maker, info, config);
                atMethods ++;
            }

            // 记录pathMap
View Full Code Here

TOP

Related Classes of org.nutz.mvc.ActionInfo

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.