Search in sources :

Example 1 with Interceptor

use of org.eweb4j.mvc.interceptor.Interceptor in project eweb4j-framework by laiweiwei.

the class InterceptorAnnotationConfig method handleClass.

/**
	 * handle class
	 * 
	 * @param clsName
	 */
public boolean handleClass(final String clsName) {
    Class<?> cls = null;
    try {
        cls = Thread.currentThread().getContextClassLoader().loadClass(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 (Throwable e) {
        log.warn("the interceptor class new instance failued -> " + clsName + " | " + e.toString(), e);
        return false;
    }
    return true;
}
Also used : ArrayList(java.util.ArrayList) InterConfigBean(org.eweb4j.mvc.config.bean.InterConfigBean) Uri(org.eweb4j.mvc.interceptor.Uri) Singleton(org.eweb4j.mvc.action.annotation.Singleton) Interceptor(org.eweb4j.mvc.interceptor.Interceptor)

Aggregations

ArrayList (java.util.ArrayList)1 Singleton (org.eweb4j.mvc.action.annotation.Singleton)1 InterConfigBean (org.eweb4j.mvc.config.bean.InterConfigBean)1 Interceptor (org.eweb4j.mvc.interceptor.Interceptor)1 Uri (org.eweb4j.mvc.interceptor.Uri)1