From f6a855b6bfd84693bef1b7ccaae9850b1b44bef8 Mon Sep 17 00:00:00 2001 From: James Date: Tue, 21 May 2019 22:52:26 +0800 Subject: [PATCH] enjoy 4.0 release ^_^ --- pom.xml | 2 +- src/main/java/com/jfinal/kit/Kv.java | 67 ------------------- src/main/java/com/jfinal/kit/ReflectKit.java | 42 ++++++++++++ .../com/jfinal/template/expr/ast/Field.java | 8 +-- .../jfinal/template/expr/ast/FieldKit.java | 5 +- 5 files changed, 51 insertions(+), 73 deletions(-) diff --git a/pom.xml b/pom.xml index 812a8b8..9f7c1cf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ enjoy jar enjoy - 3.9-SNAPSHOT + 4.0-SNAPSHOT http://www.jfinal.com Enjoy is a simple, light, rapid, independent, extensible Java Template Engine. diff --git a/src/main/java/com/jfinal/kit/Kv.java b/src/main/java/com/jfinal/kit/Kv.java index a0d3edb..366e1a0 100644 --- a/src/main/java/com/jfinal/kit/Kv.java +++ b/src/main/java/com/jfinal/kit/Kv.java @@ -30,11 +30,6 @@ import java.util.Map; @SuppressWarnings({"serial", "rawtypes", "unchecked"}) public class Kv extends HashMap { - @Deprecated - private static final String STATE_OK = "isOk"; - @Deprecated - private static final String STATE_FAIL = "isFail"; - public Kv() { } @@ -46,68 +41,6 @@ public class Kv extends HashMap { return new Kv(); } - @Deprecated - public static Kv ok() { - return new Kv().setOk(); - } - - @Deprecated - public static Kv ok(Object key, Object value) { - return ok().set(key, value); - } - - @Deprecated - public static Kv fail() { - return new Kv().setFail(); - } - - @Deprecated - public static Kv fail(Object key, Object value) { - return fail().set(key, value); - } - - @Deprecated - public Kv setOk() { - super.put(STATE_OK, Boolean.TRUE); - super.put(STATE_FAIL, Boolean.FALSE); - return this; - } - - @Deprecated - public Kv setFail() { - super.put(STATE_FAIL, Boolean.TRUE); - super.put(STATE_OK, Boolean.FALSE); - return this; - } - - @Deprecated - public boolean isOk() { - Boolean isOk = (Boolean)get(STATE_OK); - if (isOk != null) { - return isOk; - } - Boolean isFail = (Boolean)get(STATE_FAIL); - if (isFail != null) { - return !isFail; - } - - throw new IllegalStateException("调用 isOk() 之前,必须先调用 ok()、fail() 或者 setOk()、setFail() 方法"); - } - - @Deprecated - public boolean isFail() { - Boolean isFail = (Boolean)get(STATE_FAIL); - if (isFail != null) { - return isFail; - } - Boolean isOk = (Boolean)get(STATE_OK); - if (isOk != null) { - return !isOk; - } - - throw new IllegalStateException("调用 isFail() 之前,必须先调用 ok()、fail() 或者 setOk()、setFail() 方法"); - } - public Kv set(Object key, Object value) { super.put(key, value); return this; diff --git a/src/main/java/com/jfinal/kit/ReflectKit.java b/src/main/java/com/jfinal/kit/ReflectKit.java index 3d1fd2c..87dfe30 100644 --- a/src/main/java/com/jfinal/kit/ReflectKit.java +++ b/src/main/java/com/jfinal/kit/ReflectKit.java @@ -16,6 +16,9 @@ package com.jfinal.kit; +import java.lang.reflect.Method; +import java.lang.reflect.Parameter; + /** * 反射工具类 */ @@ -29,6 +32,45 @@ public class ReflectKit { } } + public static String getMethodSignature(Method method) { + StringBuilder ret = new StringBuilder() + .append(method.getDeclaringClass().getName()) + .append(".") + .append(method.getName()) + .append("("); + + int index = 0; + Parameter[] paras = method.getParameters(); + for (Parameter p : paras) { + if (index++ > 0) { + ret.append(", "); + } + ret.append(p.getParameterizedType().getTypeName()); + } + + return ret.append(")").toString(); + } + + /* + public static String getMethodSignature(Method method) { + StringBuilder ret = new StringBuilder() + .append(method.getDeclaringClass().getName()) + .append(".") + .append(method.getName()) + .append("("); + + int index = 0; + java.lang.reflect.Type[] paraTypes = method.getGenericParameterTypes(); + for (java.lang.reflect.Type type : paraTypes) { + if (index++ > 0) { + ret.append(", "); + } + ret.append(type.getTypeName()); + } + + return ret.append(")").toString(); + }*/ + } diff --git a/src/main/java/com/jfinal/template/expr/ast/Field.java b/src/main/java/com/jfinal/template/expr/ast/Field.java index 6da9705..4650335 100644 --- a/src/main/java/com/jfinal/template/expr/ast/Field.java +++ b/src/main/java/com/jfinal/template/expr/ast/Field.java @@ -28,10 +28,10 @@ import com.jfinal.template.stat.Scope; * * field 表达式取值优先次序,以 user.name 为例 * 1:假如 user.getName() 存在,则优先调用 - * 2:假如 user 为 Model 子类,则调用 user.get("name") - * 3:假如 user 为 Record,则调用 user.get("name") - * 4:假如 user 为 Map,则调用 user.get("name") - * 5:假如 user 具有 public name 属性,则取 user.name 属性值 + * 2:假如 user 具有 public name 属性,则取 user.name 属性值 + * 3:假如 user 为 Model 子类,则调用 user.get("name") + * 4:假如 user 为 Record,则调用 user.get("name") + * 5:假如 user 为 Map,则调用 user.get("name") */ public class Field extends Expr { diff --git a/src/main/java/com/jfinal/template/expr/ast/FieldKit.java b/src/main/java/com/jfinal/template/expr/ast/FieldKit.java index 10df81d..fab3fc7 100644 --- a/src/main/java/com/jfinal/template/expr/ast/FieldKit.java +++ b/src/main/java/com/jfinal/template/expr/ast/FieldKit.java @@ -44,10 +44,13 @@ public class FieldKit { LinkedList ret = new LinkedList(); ret.addLast(new GetterMethodFieldGetter(null)); + ret.addLast(new RealFieldGetter(null)); // ret.addLast(new ModelFieldGetter()); // ret.addLast(new RecordFieldGetter()); ret.addLast(new MapFieldGetter()); - ret.addLast(new RealFieldGetter(null)); + + // 挪到第二的位置,addSharedObject(..., modelObj) 用法可以获取到 model 中的 public 属性 + // ret.addLast(new RealFieldGetter(null)); ret.addLast(new ArrayLengthGetter()); // ret.addLast(new IsMethodFieldGetter());