Java源码示例:com.jfinal.template.Directive

示例1
private void addDirectives(AddonInfo addonInfo) {
    List<Class<? extends Directive>> directives = addonInfo.getDirectives();
    if (directives != null) {
        for (Class<? extends Directive> c : directives) {
            JFinalDirective ann = c.getAnnotation(JFinalDirective.class);
            String directiveName = AnnotationUtil.get(ann.value());
            // 先移除,后添加,若有相同指令的情况下,
            // 后安装的插件会替换掉已经存在的指令
            RenderManager.me().getEngine().removeDirective(directiveName);
            RenderManager.me().getEngine().addDirective(directiveName, c);
        }
    }
}
 
示例2
private void deleteDirectives(AddonInfo addonInfo) {
    List<Class<? extends Directive>> directives = addonInfo.getDirectives();
    if (directives != null) {
        for (Class<? extends Directive> c : directives) {
            JFinalDirective ann = c.getAnnotation(JFinalDirective.class);
            RenderManager.me().getEngine().removeDirective(AnnotationUtil.get(ann.value()));
        }
    }
}
 
示例3
public void addDirective(Class<? extends Directive> clazz) {
    JFinalDirective directive = clazz.getAnnotation(JFinalDirective.class);
    if (directive == null) {
        return;
    }
    if (directives == null) {
        directives = new ArrayList<>();
    }
    directives.add(clazz);
}
 
示例4
public void addDirective(String name, Class<? extends Directive> clz){
    try {
        engine.addDirective(name, clz);
    }catch (Exception ex){
        ex.printStackTrace();
    }
}
 
示例5
public List<Class<? extends Directive>> getDirectives() {
    return directives;
}
 
示例6
public void setDirectives(List<Class<? extends Directive>> directives) {
    this.directives = directives;
}
 
示例7
public void load() {
    for (String className : classNameList) {
        try {

            Class loadedClass = loadClass(className);

            Bean bean = (Bean) loadedClass.getDeclaredAnnotation(Bean.class);
            if (bean != null) {
                initBeanMapping(loadedClass);
            }

            // controllers
            if (Controller.class.isAssignableFrom(loadedClass)) {
                addonInfo.addController(loadedClass);
            }
            // interceptors
            else if (Interceptor.class.isAssignableFrom(loadedClass)) {
                if (loadedClass.getAnnotation(GlobalInterceptor.class) != null) {
                    addonInfo.addInterceptor(loadedClass);
                }
            }
            // handlers
            else if (Handler.class.isAssignableFrom(loadedClass)) {
                addonInfo.addHandler(loadedClass);
            }
            // models
            else if (JbootModel.class.isAssignableFrom(loadedClass)) {
                addonInfo.addModel(loadedClass);
            }
            // directives
            else if (Directive.class.isAssignableFrom(loadedClass)) {
                addonInfo.addDirective(loadedClass);
            }
            // wechatAddons
            else if (WechatAddon.class.isAssignableFrom(loadedClass)) {
                addonInfo.addWechatAddon(loadedClass);
            }
            // addonClass
            else if (Addon.class.isAssignableFrom(loadedClass)) {
                addonInfo.setAddonClass(loadedClass);
            }
            // upgraderClass
            else if (AddonUpgrader.class.isAssignableFrom(loadedClass)) {
                addonInfo.setUpgraderClass(loadedClass);
            }

        } catch (Exception ex) {
            LOG.error(ex.toString(), ex);
        }
    }
}