From c07b628ea121b48524631d873ea70927ea1ec387 Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Fri, 7 Sep 2018 10:21:48 +0800 Subject: [PATCH] =?UTF-8?q?FilterNode=E5=A2=9E=E5=8A=A0readonly=E5=B1=9E?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/org/redkale/source/FilterNode.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/org/redkale/source/FilterNode.java b/src/org/redkale/source/FilterNode.java index e76a565cb..94060d626 100644 --- a/src/org/redkale/source/FilterNode.java +++ b/src/org/redkale/source/FilterNode.java @@ -25,6 +25,8 @@ import org.redkale.util.*; */ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则DataSource很多重载接口会出现冲突 + protected boolean readOnly; + protected String column; protected FilterExpress express; @@ -80,6 +82,16 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 this.value = val; } + public FilterNode asReadOnly() { + this.readOnly = true; + return this; + } + + public FilterNode readOnly(boolean readOnly) { + this.readOnly = readOnly; + return this; + } + public long findLongValue(final String col, long defValue) { Serializable val = findValue(col); return val == null ? defValue : ((Number) val).longValue(); @@ -138,6 +150,7 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 } protected FilterNode any(FilterNode node, boolean signor) { + if (this.readOnly) throw new RuntimeException("FilterNode(" + this + ") is ReadOnly"); Objects.requireNonNull(node); if (this.column == null) { this.column = node.column; @@ -1861,6 +1874,14 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 this.value = value; } + public boolean isReadOnly() { + return readOnly; + } + + public void setReadOnly(boolean readOnly) { + this.readOnly = readOnly; + } + public final boolean isOr() { return or; }