Browse Source

enjoy 开启静态方法/字段表达式

James 1 year ago
parent
commit
33e4eba639

+ 22 - 20
src/main/java/com/jfinal/plugin/activerecord/generator/ModelGenerator.java

@@ -29,15 +29,15 @@ import com.jfinal.template.Engine;
  * Model 生成器
  */
 public class ModelGenerator {
-	
+
 	protected Engine engine;
 	protected String template = "/com/jfinal/plugin/activerecord/generator/model_template.jf";
-	
+
 	protected String modelPackageName;
 	protected String baseModelPackageName;
 	protected String modelOutputDir;
 	protected boolean generateDaoInModel = false;
-	
+
 	public ModelGenerator(String modelPackageName, String baseModelPackageName, String modelOutputDir) {
 		if (StrKit.isBlank(modelPackageName)) {
 			throw new IllegalArgumentException("modelPackageName can not be blank.");
@@ -54,51 +54,53 @@ public class ModelGenerator {
 		if (StrKit.isBlank(modelOutputDir)) {
 			throw new IllegalArgumentException("modelOutputDir can not be blank.");
 		}
-		
+
 		this.modelPackageName = modelPackageName;
 		this.baseModelPackageName = baseModelPackageName;
 		this.modelOutputDir = modelOutputDir;
-		
+
 		initEngine();
 	}
-	
+
 	protected void initEngine() {
 		engine = new Engine();
 		engine.setToClassPathSourceFactory();
 		engine.addSharedMethod(new StrKit());
+		engine.setStaticFieldExpression(true);
+		engine.setStaticMethodExpression(true);
 	}
-	
+
 	/**
 	 * 使用自定义模板生成 model
 	 */
 	public void setTemplate(String template) {
 		this.template = template;
 	}
-	
+
 	public void setGenerateDaoInModel(boolean generateDaoInModel) {
 		this.generateDaoInModel = generateDaoInModel;
 	}
-	
+
 	public void generate(List<TableMeta> tableMetas) {
 		System.out.println("Generate model ...");
 		System.out.println("Model Output Dir: " + modelOutputDir);
-		
+
 		for (TableMeta tableMeta : tableMetas) {
 			genModelContent(tableMeta);
 		}
 		writeToFile(tableMetas);
 	}
-	
+
 	protected void genModelContent(TableMeta tableMeta) {
 		Kv data = Kv.by("modelPackageName", modelPackageName);
 		data.set("baseModelPackageName", baseModelPackageName);
 		data.set("generateDaoInModel", generateDaoInModel);
 		data.set("tableMeta", tableMeta);
-		
+
 		String ret = engine.getTemplate(template).renderToString(data);
 		tableMeta.modelContent = ret;
 	}
-	
+
 	protected void writeToFile(List<TableMeta> tableMetas) {
 		try {
 			for (TableMeta tableMeta : tableMetas) {
@@ -108,7 +110,7 @@ public class ModelGenerator {
 			throw new RuntimeException(e);
 		}
 	}
-	
+
 	/**
 	 * 若 model 文件存在,则不生成,以免覆盖用户手写的代码
 	 */
@@ -117,27 +119,27 @@ public class ModelGenerator {
 		if (!dir.exists()) {
 			dir.mkdirs();
 		}
-		
+
 		String target = modelOutputDir + File.separator + tableMeta.modelName + ".java";
-		
+
 		File file = new File(target);
 		if (file.exists()) {
 			return ;	// 若 Model 存在,不覆盖
 		}
-		
+
 		try (OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(file), "UTF-8")) {
 			osw.write(tableMeta.modelContent);
 		}
 	}
-	
+
 	public String getModelPackageName() {
 		return modelPackageName;
 	}
-	
+
 	public String getBaseModelPackageName() {
 		return baseModelPackageName;
 	}
-	
+
 	public String getModelOutputDir() {
 		return modelOutputDir;
 	}