com.gitee.qdbp.staticize.common.IContext Maven / Gradle / Ivy
package com.gitee.qdbp.staticize.common;
import java.io.IOException;
import java.util.Collection;
import java.util.Map;
import com.gitee.qdbp.staticize.exception.TagException;
import com.gitee.qdbp.staticize.tags.base.Taglib;
/**
* 上下文处理接口
*
* @author zhaohuihua
* @version 140523
*/
public interface IContext {
/**
* 根据表达式从环境变量中获取值
* ${xxx}, 从值栈环境变量中获取值, 如${title}, ${image.src}
* #{xxx}, 从预置环境变量中获取值, 如#{site.id}, #{column.title}
* #{site}=站点信息,
* #{column}=栏目信息
*
* @author zhaohuihua
* @param expression 表达式
* @return 环境变量中的值
* @throws TagException 表达式错误, 表达式取值错误
*/
Object getValue(String expression) throws TagException;
/**
* 获取预置环境变量容器, 通过#{xxx}取值
*
* @return 预置环境变量容器
*/
Map preset();
/**
* 获取值栈环境变量容器, 通过${xxx}取值
*
* @return 值栈环境变量容器
*/
Map stack();
/**
* 增加类的导入信息
*
* @param classFullName 类名全称, 如: com.qdbp.xxx.EntityTools
*/
void addImportClass(String classFullName) throws TagException;
/**
* 获取类的导入信息列表
*
* @return 导入信息列表
*/
Collection getImportClasses();
/**
* 获取类的导入信息
*
* @param shortName @类名简称, 如: @EntityTools
* @return fullName 类名全称, 如: com.qdbp.xxx.EntityTools
*/
String getImportClass(String shortName);
/**
* 判断是否存在类的导入信息
*
* @param shortName @类名简称, 如: @EntityTools
* @return 是否存在
*/
boolean containsImportClass(String shortName);
/**
* 向Writer中写入内容
*
* @param content 内容
* @throws IOException 写入失败
*/
void write(Object content) throws IOException;
/**
* 某些标签需要根据子标签内容决定处理方式
* 就需要将子标签内容保存到缓冲区, 而不是直接输出到目标Writer
* 可以在初始化时将context的writer替换为缓冲容器, 在标签结束时再替换回原Writer
*
* @param writer 新的Writer
* @return 原Writer
*/
IWriter resetWriter(IWriter writer);
/**
* 获取标签库, 从而获得标签库中的一些配置信息
*
* @return 标签库
*/
Taglib getTaglib();
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy