Package org.eweb4j.mvc.config

Source Code of org.eweb4j.mvc.config.InterceptorAnnotationConfig

package org.eweb4j.mvc.config;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.eweb4j.cache.InterConfigBeanCache;
import org.eweb4j.config.ScanPackage;
import org.eweb4j.mvc.action.annotation.Singleton;
import org.eweb4j.mvc.config.bean.InterConfigBean;
import org.eweb4j.mvc.interceptor.Interceptor;
import org.eweb4j.mvc.interceptor.Uri;

public class InterceptorAnnotationConfig extends ScanPackage{
 

  /**
   * handle class
   *
   * @param clsName
   */
  public boolean handleClass(String clsName) {

    Class<?> cls = null;
    try {
      cls = Class.forName(clsName);

      if (cls == null)
        return false;

      Interceptor interAnn = cls.getAnnotation(Interceptor.class);
      if (interAnn == null)
        return false;
      Uri[] uris = interAnn.uri();
      if (uris == null || uris.length == 0)
        return false;
     
      InterConfigBean inter = new InterConfigBean();
      String name = "".equals(interAnn.name()) ? cls.getSimpleName() : interAnn.name();
      inter.setName(name);
      inter.setClazz(cls.getName());
      inter.setMethod(interAnn.method());
      String[] except = interAnn.except();
      if (except != null && except.length > 0){
        List<String> list = Arrays.asList(except);
        inter.setExcept(new ArrayList<String>(list));
      }
     
      inter.setPolicy(interAnn.policy());
      inter.setType(interAnn.type());
      inter.setPriority(String.valueOf(interAnn.priority()));
      Singleton sin = cls.getAnnotation(Singleton.class);
      if (sin != null)
        inter.setScope("singleton");
      else
        inter.setScope("prototype");
     
      List<org.eweb4j.mvc.config.bean.Uri> uriList = new ArrayList<org.eweb4j.mvc.config.bean.Uri>();
      for (Uri u : uris){
        org.eweb4j.mvc.config.bean.Uri uri = new org.eweb4j.mvc.config.bean.Uri();
        uri.setType(u.type());
        uri.setValue(u.value());
        uriList.add(uri);
      }
      inter.setUri(uriList);
      InterConfigBeanCache.add(inter);
    catch (Error er) {
      log.debug("the interceptor class new instance failued -> " + clsName + " | " + er.toString());
      return false;
    } catch (Exception e) {
      log.debug("the terceptor class new instance failued -> " + clsName + " | " + e.toString());
      return false;
    }
   
    return true;
  }
}
TOP

Related Classes of org.eweb4j.mvc.config.InterceptorAnnotationConfig

TOP
Copyright © 2018 www.massapi.com. 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.