Package com.quickwebframework.stereotype

Examples of com.quickwebframework.stereotype.FilterSetting


    filterList.add(filter);

    // 过滤器的类
    Class<?> filterClass = filter.getClass();
    // 过滤器的FilterSetting实例
    FilterSetting filterSetting = filterClass
        .getAnnotation(FilterSetting.class);
    // 如果此过滤器的类上有FilterSetting注解,则全部过滤器根据FilterSetting注解的index的值进行排序
    if (filterSetting != null) {
      // 有属性的过滤器列表
      List<Filter> hasSettingFilterList = new ArrayList<Filter>();
      // 没有属性的过滤器列表
      List<Filter> noSettingFilterList = new ArrayList<Filter>();
      // 设置与过滤器的Map
      Map<FilterSetting, Filter> settingFilterMap = new HashMap<FilterSetting, Filter>();

      // 分离
      for (Filter tmpFilter : filterList) {
        Class<?> tmpFilterClass = tmpFilter.getClass();
        FilterSetting tmpFilterSetting = tmpFilterClass
            .getAnnotation(FilterSetting.class);
        // 如果没有设置
        if (tmpFilterSetting == null) {
          noSettingFilterList.add(tmpFilter);
        }// 否则有设置
        else {
          hasSettingFilterList.add(tmpFilter);
          settingFilterMap.put(tmpFilterSetting, tmpFilter);
        }
      }
      // 根据index排序
      FilterSetting[] filterSettings = settingFilterMap.keySet().toArray(
          new FilterSetting[0]);
      for (int j = 0; j < filterSettings.length; j++) {
        for (int i = 0; i < filterSettings.length; i++) {
          if (i == 0)
            continue;
          // 如果前面的index大于后面的index,则交换
          if (filterSettings[i - 1].index() > filterSettings[i]
              .index()) {
            FilterSetting tmpExchangeObject = filterSettings[i - 1];
            filterSettings[i - 1] = filterSettings[i];
            filterSettings[i] = tmpExchangeObject;
          }
        }
      }
View Full Code Here


    if (arrayFilterChain.isContinueFilterChain())
      shouldPostToServlet = true;
    else {
      Filter lastFilter = arrayFilterChain.lastFilter;
      Class<?> lastFilterClass = lastFilter.getClass();
      FilterSetting lastFilterSetting = lastFilterClass
          .getAnnotation(FilterSetting.class);
      if (lastFilterSetting != null
          && lastFilterSetting.returnToController()) {
        shouldPostToServlet = true;
      } else {
        shouldPostToServlet = false;
        log.info("过滤器链未全部执行完成,在执行完过滤器[" + arrayFilterChain.lastFilter
            + "]后断开。");
View Full Code Here

TOP

Related Classes of com.quickwebframework.stereotype.FilterSetting

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.