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);
}
}
}