package cn.org.rapid_framework.generator; import java.util.HashMap; import java.util.Map; import java.util.Properties; /** * 生成器的上下文,两个功能 * 1. 存放在context中的变量将可以在模板中直接引用 * 2. 通过 GeneratorContext.setGeneratorProperties() 可以覆盖GeneratorProperties中的属性设置,如果为空,则不覆盖 * */ public class GeneratorContext { /** * 生成器模板的上下文,存放在context中的变量,模板可以直接引用 **/ static ThreadLocal<Map> context = new ThreadLocal<Map>(); /** * GeneratorProperties可以引用的上下文 **/ static ThreadLocal<Properties> generatorProperties = new ThreadLocal<Properties>(); public static void clear() { context.set(null); generatorProperties.set(null); } public static Map getContext() { Map map = context.get(); if(map == null) { setContext(new HashMap()); } return context.get(); } public static void setContext(Map map) { context.set(map); } public static void put(String key,Object value) { getContext().put(key, value); } public static Properties getGeneratorProperties() { return generatorProperties.get(); } public static void setGeneratorProperties(Properties props) { generatorProperties.set(props); } }