Browse Source

Merge branch 'master' into jfinal-java8

James 8 years ago
parent
commit
654488d1aa

+ 29 - 9
src/main/java/com/jfinal/kit/Kv.java

@@ -22,7 +22,7 @@ import com.jfinal.json.Json;
 
 /**
  * Kv ---> Key Value 
- * Kv 用于取代 JMap,前者输入量少,且输入更顺滑
+ * 注意:与 Ret 唯一的不同在于 stateLinkage 属性默认值为 false,而 Ret 为 true
  * 
  * 参数或者返回值封装,常用于业务层传参与返回值
  * 
@@ -39,8 +39,24 @@ import com.jfinal.json.Json;
 @SuppressWarnings({"serial", "rawtypes", "unchecked"})
 public class Kv extends HashMap {
 
-	private static final String STATUS_OK = "isOk";
-	private static final String STATUS_FAIL = "isFail";
+	private static final String STATE_OK = "isOk";
+	private static final String STATE_FAIL = "isFail";
+	
+	// 状态联动,与 Ret 不同,这里的默认值为 false
+	private static boolean stateLinkage = false;
+	
+	/**
+	 * 设置状态联动
+	 * <pre>
+	 * 1:设置为 true,则在 setOk() 与 setFail() 中,同时处理 isOk 与 isFail 两个状态
+	 * 2:设置为 false,则 setOk() 与 setFile() 只处理与其相关的一个状态
+	 * 3:设置为联动状态,有利于 javascript 中 if(isOk) 与 if(isFail) 的判断逻辑
+	 * 4:设置为非联动状态,有利于通信数据为 json 的 API 服务端项目,节省一个键值对的生成
+	 * </pre>
+	 */
+	public static void setStateLinkage(boolean stateLinkage) {
+		Kv.stateLinkage = stateLinkage;
+	}
 	
 	public Kv() {
 	}
@@ -70,24 +86,28 @@ public class Kv extends HashMap {
 	}
 	
 	public Kv setOk() {
-		super.put(STATUS_OK, Boolean.TRUE);
-		super.put(STATUS_FAIL, Boolean.FALSE);
+		super.put(STATE_OK, Boolean.TRUE);
+		if (stateLinkage) {
+			super.put(STATE_FAIL, Boolean.FALSE);
+		}
 		return this;
 	}
 	
 	public Kv setFail() {
-		super.put(STATUS_OK, Boolean.FALSE);
-		super.put(STATUS_FAIL, Boolean.TRUE);
+		super.put(STATE_FAIL, Boolean.TRUE);
+		if (stateLinkage) {
+			super.put(STATE_OK, Boolean.FALSE);
+		}
 		return this;
 	}
 	
 	public boolean isOk() {
-		Boolean isOk = (Boolean)get(STATUS_OK);
+		Boolean isOk = (Boolean)get(STATE_OK);
 		return isOk != null && isOk;
 	}
 	
 	public boolean isFail() {
-		Boolean isFail = (Boolean)get(STATUS_FAIL);
+		Boolean isFail = (Boolean)get(STATE_FAIL);
 		return isFail != null && isFail;
 	}
 	

+ 28 - 8
src/main/java/com/jfinal/kit/Okv.java

@@ -41,8 +41,24 @@ import com.jfinal.json.Json;
 @SuppressWarnings({"serial", "rawtypes", "unchecked"})
 public class Okv extends LinkedHashMap {
 
-	private static final String STATUS_OK = "isOk";
-	private static final String STATUS_FAIL = "isFail";
+	private static final String STATE_OK = "isOk";
+	private static final String STATE_FAIL = "isFail";
+	
+	// 状态联动,与 Ret 不同,这里的默认值为 false
+	private static boolean stateLinkage = false;
+	
+	/**
+	 * 设置状态联动
+	 * <pre>
+	 * 1:设置为 true,则在 setOk() 与 setFail() 中,同时处理 isOk 与 isFail 两个状态
+	 * 2:设置为 false,则 setOk() 与 setFile() 只处理与其相关的一个状态
+	 * 3:设置为联动状态,有利于 javascript 中 if(isOk) 与 if(isFail) 的判断逻辑
+	 * 4:设置为非联动状态,有利于通信数据为 json 的 API 服务端项目,节省一个键值对的生成
+	 * </pre>
+	 */
+	public static void setStateLinkage(boolean stateLinkage) {
+		Okv.stateLinkage = stateLinkage;
+	}
 	
 	public Okv() {
 	}
@@ -72,24 +88,28 @@ public class Okv extends LinkedHashMap {
 	}
 	
 	public Okv setOk() {
-		super.put(STATUS_OK, Boolean.TRUE);
-		super.put(STATUS_FAIL, Boolean.FALSE);
+		super.put(STATE_OK, Boolean.TRUE);
+		if (stateLinkage) {
+			super.put(STATE_FAIL, Boolean.FALSE);
+		}
 		return this;
 	}
 	
 	public Okv setFail() {
-		super.put(STATUS_OK, Boolean.FALSE);
-		super.put(STATUS_FAIL, Boolean.TRUE);
+		super.put(STATE_FAIL, Boolean.TRUE);
+		if (stateLinkage) {
+			super.put(STATE_OK, Boolean.FALSE);
+		}
 		return this;
 	}
 	
 	public boolean isOk() {
-		Boolean isOk = (Boolean)get(STATUS_OK);
+		Boolean isOk = (Boolean)get(STATE_OK);
 		return isOk != null && isOk;
 	}
 	
 	public boolean isFail() {
-		Boolean isFail = (Boolean)get(STATUS_FAIL);
+		Boolean isFail = (Boolean)get(STATE_FAIL);
 		return isFail != null && isFail;
 	}
 	

+ 28 - 8
src/main/java/com/jfinal/kit/Ret.java

@@ -26,8 +26,24 @@ import com.jfinal.json.Json;
 @SuppressWarnings({"serial", "rawtypes", "unchecked"})
 public class Ret extends HashMap {
 
-	private static final String STATUS_OK = "isOk";
-	private static final String STATUS_FAIL = "isFail";
+	private static final String STATE_OK = "isOk";
+	private static final String STATE_FAIL = "isFail";
+	
+	// 状态联动
+	private static boolean stateLinkage = true;
+	
+	/**
+	 * 设置状态联动
+	 * <pre>
+	 * 1:设置为 true,则在 setOk() 与 setFail() 中,同时处理 isOk 与 isFail 两个状态
+	 * 2:设置为 false,则 setOk() 与 setFile() 只处理与其相关的一个状态
+	 * 3:设置为联动状态,有利于 javascript 中 if(isOk) 与 if(isFail) 的判断逻辑
+	 * 4:设置为非联动状态,有利于通信数据为 json 的 API 服务端项目,节省一个键值对的生成
+	 * </pre>
+	 */
+	public static void setStateLinkage(boolean stateLinkage) {
+		Ret.stateLinkage = stateLinkage;
+	}
 	
 	public Ret() {
 	}
@@ -61,24 +77,28 @@ public class Ret extends HashMap {
 	}
 	
 	public Ret setOk() {
-		super.put(STATUS_OK, Boolean.TRUE);
-		super.put(STATUS_FAIL, Boolean.FALSE);
+		super.put(STATE_OK, Boolean.TRUE);
+		if (stateLinkage) {
+			super.put(STATE_FAIL, Boolean.FALSE);
+		}
 		return this;
 	}
 	
 	public Ret setFail() {
-		super.put(STATUS_OK, Boolean.FALSE);
-		super.put(STATUS_FAIL, Boolean.TRUE);
+		super.put(STATE_FAIL, Boolean.TRUE);
+		if (stateLinkage) {
+			super.put(STATE_OK, Boolean.FALSE);
+		}
 		return this;
 	}
 	
 	public boolean isOk() {
-		Boolean isOk = (Boolean)get(STATUS_OK);
+		Boolean isOk = (Boolean)get(STATE_OK);
 		return isOk != null && isOk;
 	}
 	
 	public boolean isFail() {
-		Boolean isFail = (Boolean)get(STATUS_FAIL);
+		Boolean isFail = (Boolean)get(STATE_FAIL);
 		return isFail != null && isFail;
 	}