From 0413d89a9e8cf7a86b0acedd00578d860b8f40ce Mon Sep 17 00:00:00 2001 From: rbygrave Date: Mon, 16 Aug 2021 23:19:02 +1200 Subject: [PATCH] #2318 - Refactor internals - final classes in expression packages --- .../server/expression/AbstractExpression.java | 4 +--- .../expression/AbstractTextExpression.java | 2 +- .../expression/AbstractValueExpression.java | 2 +- .../server/expression/AllEqualsExpression.java | 17 ++--------------- .../expression/ArrayContainsExpression.java | 4 +--- .../expression/ArrayIsEmptyExpression.java | 2 +- .../server/expression/BetweenExpression.java | 3 +-- .../expression/BetweenPropertyExpression.java | 6 ++---- .../server/expression/BitwiseExpression.java | 9 +++------ .../CaseInsensitiveEqualExpression.java | 4 +--- .../expression/DefaultExampleExpression.java | 4 ++-- .../expression/DefaultExpressionList.java | 5 ----- .../expression/DefaultExpressionRequest.java | 11 +---------- .../expression/ExistsQueryExpression.java | 16 +++++----------- .../server/expression/FilterExprPath.java | 2 +- .../server/expression/FilterExpressionList.java | 4 +--- .../server/expression/IdExpression.java | 2 +- .../server/expression/IdInExpression.java | 3 +-- .../server/expression/InExpression.java | 2 +- .../server/expression/InPairsExpression.java | 8 +------- .../server/expression/InQueryExpression.java | 5 +---- .../server/expression/InRangeExpression.java | 3 +-- .../server/expression/IsEmptyExpression.java | 4 +--- .../server/expression/JsonPathExpression.java | 10 +++++----- .../server/expression/JunctionExpression.java | 7 +++---- .../server/expression/LikeExpression.java | 6 +----- .../server/expression/LogicExpression.java | 6 ++---- .../server/expression/NamedParamHelp.java | 2 +- .../expression/NativeILikeExpression.java | 2 +- .../expression/NestedPathWrapperExpression.java | 7 +++---- .../server/expression/NoopExpression.java | 4 ++-- .../server/expression/NullExpression.java | 5 +---- .../server/expression/PrepareDocNested.java | 2 +- .../server/expression/RawExpression.java | 3 +-- .../server/expression/RawExpressionBuilder.java | 2 +- .../ebeaninternal/server/expression/Same.java | 11 +++++------ .../server/expression/SimpleExpression.java | 2 +- .../expression/TextCommonTermsExpression.java | 3 +-- .../server/expression/TextMatchExpression.java | 5 ++--- .../expression/TextMultiMatchExpression.java | 5 ++--- .../expression/TextQueryStringExpression.java | 5 ++--- .../server/expression/TextSimpleExpression.java | 5 ++--- .../expression/platform/BaseDbExpression.java | 2 -- .../expression/platform/BasicDbExpression.java | 2 +- .../platform/DbExpressionHandlerFactory.java | 3 +-- .../expression/platform/H2DbExpression.java | 2 +- .../expression/platform/HanaDbExpression.java | 2 +- .../expression/platform/MariaDbExpression.java | 2 +- .../expression/platform/MySqlDbExpression.java | 2 +- .../expression/platform/OracleDbExpression.java | 3 +-- .../expression/platform/PostgresCast.java | 7 +++---- .../platform/PostgresDbExpression.java | 5 +---- .../platform/SqlServerDbExpression.java | 2 +- 53 files changed, 80 insertions(+), 166 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractExpression.java index c3090e38f..f3c9d5aae 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractExpression.java @@ -14,7 +14,7 @@ import io.ebeaninternal.api.NaturalKeyQueryData; /** * Base class for simple expressions. */ -public abstract class AbstractExpression implements SpiExpression { +abstract class AbstractExpression implements SpiExpression { protected String propName; @@ -66,7 +66,6 @@ public abstract class AbstractExpression implements SpiExpression { @Override public void containsMany(BeanDescriptor desc, ManyWhereJoins manyWhereJoin) { - propertyContainsMany(propName, desc, manyWhereJoin); } @@ -103,7 +102,6 @@ public abstract class AbstractExpression implements SpiExpression { } protected final ElPropertyValue getElProp(SpiExpressionRequest request) { - return request.getBeanDescriptor().getElGetValue(propName); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractTextExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractTextExpression.java index 363bcb08d..272e557d7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractTextExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractTextExpression.java @@ -10,7 +10,7 @@ import io.ebeaninternal.api.SpiExpressionRequest; * This means they can not be part of a SQL query nor do they use the built in query plan cache etc. *

*/ -public abstract class AbstractTextExpression extends AbstractExpression { +abstract class AbstractTextExpression extends AbstractExpression { AbstractTextExpression(String propName) { super(propName); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractValueExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractValueExpression.java index 7adb2729b..a758dcd10 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractValueExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AbstractValueExpression.java @@ -3,7 +3,7 @@ package io.ebeaninternal.server.expression; /** * Abstract expression that helps with named parameter use. */ -public abstract class AbstractValueExpression extends AbstractExpression { +abstract class AbstractValueExpression extends AbstractExpression { protected final Object bindValue; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AllEqualsExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AllEqualsExpression.java index 56761dcf2..fafb3bc96 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/AllEqualsExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/AllEqualsExpression.java @@ -13,7 +13,7 @@ import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; -class AllEqualsExpression extends NonPrepareExpression { +final class AllEqualsExpression extends NonPrepareExpression { private final Map propMap; @@ -21,7 +21,7 @@ class AllEqualsExpression extends NonPrepareExpression { this.propMap = propMap; } - protected String name(String propName) { + String name(String propName) { return propName; } @@ -56,7 +56,6 @@ class AllEqualsExpression extends NonPrepareExpression { @Override public void addBindValues(SpiExpressionRequest request) { - if (propMap.isEmpty()) { return; } @@ -70,23 +69,17 @@ class AllEqualsExpression extends NonPrepareExpression { @Override public void addSql(SpiExpressionRequest request) { - if (propMap.isEmpty()) { return; } - request.append("("); - int count = 0; for (Map.Entry entry : propMap.entrySet()) { - Object value = entry.getValue(); String propName = entry.getKey(); - if (count > 0) { request.append("and "); } - request.append(name(propName)); if (value == null) { request.append(" is null "); @@ -106,7 +99,6 @@ class AllEqualsExpression extends NonPrepareExpression { */ @Override public void queryPlanHash(StringBuilder builder) { - builder.append("AllEquals["); for (Entry entry : propMap.entrySet()) { Object value = entry.getValue(); @@ -135,20 +127,16 @@ class AllEqualsExpression extends NonPrepareExpression { if (!(other instanceof AllEqualsExpression)) { return false; } - AllEqualsExpression that = (AllEqualsExpression) other; return isSameByValue(that, true); } private boolean isSameByValue(AllEqualsExpression that, boolean byValue) { - if (propMap.size() != that.propMap.size()) { return false; } - Iterator> thisIt = propMap.entrySet().iterator(); Iterator> thatIt = that.propMap.entrySet().iterator(); - while (thisIt.hasNext() && thatIt.hasNext()) { Entry thisNext = thisIt.next(); Entry thatNext = thatIt.next(); @@ -160,7 +148,6 @@ class AllEqualsExpression extends NonPrepareExpression { return false; } } - return true; } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayContainsExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayContainsExpression.java index 7a9e903f6..34fec6037 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayContainsExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayContainsExpression.java @@ -9,10 +9,9 @@ import java.io.IOException; /** * Contains expression for ARRAY type. */ -public class ArrayContainsExpression extends AbstractExpression { +final class ArrayContainsExpression extends AbstractExpression { private final boolean contains; - private final Object[] values; ArrayContainsExpression(String propName, boolean contains, Object... values) { @@ -26,7 +25,6 @@ public class ArrayContainsExpression extends AbstractExpression { @Override public void writeDocQuery(DocQueryContext context) throws IOException { - if (values.length == 1) { context.writeEqualTo(propName, values[0]); } else { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayIsEmptyExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayIsEmptyExpression.java index f9cd530c8..2234f9500 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayIsEmptyExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ArrayIsEmptyExpression.java @@ -9,7 +9,7 @@ import java.io.IOException; /** * IsEmpty expression for ARRAY type. */ -public class ArrayIsEmptyExpression extends AbstractExpression { +final class ArrayIsEmptyExpression extends AbstractExpression { private final boolean empty; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenExpression.java index ed3d58d8b..be113e7a5 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenExpression.java @@ -6,12 +6,11 @@ import io.ebeaninternal.api.SpiExpressionRequest; import java.io.IOException; -class BetweenExpression extends AbstractExpression { +final class BetweenExpression extends AbstractExpression { private static final String _BETWEEN = " between ? and ?"; private final Object valueHigh; - private final Object valueLow; BetweenExpression(String propertyName, Object valueLow, Object valueHigh) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenPropertyExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenPropertyExpression.java index 55b08380d..74129849d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenPropertyExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/BetweenPropertyExpression.java @@ -14,7 +14,7 @@ import java.io.IOException; /** * Between expression where a value is between two properties. */ -class BetweenPropertyExpression extends NonPrepareExpression { +final class BetweenPropertyExpression extends NonPrepareExpression { private static final String BETWEEN = " between "; @@ -34,7 +34,7 @@ class BetweenPropertyExpression extends NonPrepareExpression { this.highProperty = path + "." + highProperty; } - protected String name(String propName) { + String name(String propName) { return propName; } @@ -62,12 +62,10 @@ class BetweenPropertyExpression extends NonPrepareExpression { @Override public void containsMany(BeanDescriptor desc, ManyWhereJoins manyWhereJoin) { - ElPropertyDeploy elProp = desc.getElPropertyDeploy(name(lowProperty)); if (elProp != null && elProp.containsMany()) { manyWhereJoin.add(elProp); } - elProp = desc.getElPropertyDeploy(name(highProperty)); if (elProp != null && elProp.containsMany()) { manyWhereJoin.add(elProp); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/BitwiseExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/BitwiseExpression.java index 460af37ec..aa68f2662 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/BitwiseExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/BitwiseExpression.java @@ -9,14 +9,11 @@ import java.io.IOException; /** * Bitwise expression. */ -class BitwiseExpression extends AbstractExpression { - - protected final BitwiseOp operator; +final class BitwiseExpression extends AbstractExpression { + private final BitwiseOp operator; private final String compare; - - protected final long flags; - + private final long flags; private final long match; BitwiseExpression(String propertyName, BitwiseOp operator, long flags, String compare, long match) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/CaseInsensitiveEqualExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/CaseInsensitiveEqualExpression.java index 3a6224d9c..a8075090a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/CaseInsensitiveEqualExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/CaseInsensitiveEqualExpression.java @@ -7,7 +7,7 @@ import io.ebeaninternal.server.el.ElPropertyValue; import java.io.IOException; -class CaseInsensitiveEqualExpression extends AbstractValueExpression { +final class CaseInsensitiveEqualExpression extends AbstractValueExpression { private final boolean not; @@ -34,7 +34,6 @@ class CaseInsensitiveEqualExpression extends AbstractValueExpression { @Override public void addBindValues(SpiExpressionRequest request) { - ElPropertyValue prop = getElProp(request); if (prop != null && prop.isDbEncrypted()) { // bind the key as well as the value @@ -47,7 +46,6 @@ class CaseInsensitiveEqualExpression extends AbstractValueExpression { @Override public void addSql(SpiExpressionRequest request) { - String pname = propName; ElPropertyValue prop = getElProp(request); if (prop != null && prop.isDbEncrypted()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExampleExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExampleExpression.java index cd8a59857..ca97b5408 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExampleExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExampleExpression.java @@ -39,7 +39,7 @@ import java.util.ArrayList; * * } */ -public class DefaultExampleExpression implements SpiExpression, ExampleExpression { +final class DefaultExampleExpression implements SpiExpression, ExampleExpression { /** * The example bean containing the properties. @@ -75,7 +75,7 @@ public class DefaultExampleExpression implements SpiExpression, ExampleExpressio * @param caseInsensitive if true use case insensitive expressions * @param likeType the type of Like wild card used */ - public DefaultExampleExpression(EntityBean entity, boolean caseInsensitive, LikeType likeType) { + DefaultExampleExpression(EntityBean entity, boolean caseInsensitive, LikeType likeType) { this.entity = entity; this.caseInsensitive = caseInsensitive; this.likeType = likeType; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionList.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionList.java index ed3f57e14..b9693df6d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionList.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionList.java @@ -56,15 +56,10 @@ public class DefaultExpressionList implements SpiExpressionList { private static final String AND = " and "; protected List list; - protected final Query query; - private final ExpressionList parentExprList; - protected final ExpressionFactory expr; - String allDocNestedPath; - /** * Set to true for the "Text" root expression list. */ diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionRequest.java index 557c53996..09ff401af 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/DefaultExpressionRequest.java @@ -13,26 +13,17 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.List; -public class DefaultExpressionRequest implements SpiExpressionRequest { +public final class DefaultExpressionRequest implements SpiExpressionRequest { private final SpiOrmQueryRequest queryRequest; - private final BeanDescriptor beanDescriptor; - private final StringBuilder sql = new StringBuilder(); - private final List bindValues = new ArrayList<>(); - private final DeployParser deployParser; - private final Binder binder; - private final SpiExpressionList expressionList; - private int paramIndex; - private final boolean enableBindLog; - private StringBuilder bindLog; public DefaultExpressionRequest(SpiOrmQueryRequest queryRequest, DeployParser deployParser, Binder binder, SpiExpressionList expressionList) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java index 71ca665fe..438f1a2d5 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java @@ -16,15 +16,12 @@ import io.ebeaninternal.server.query.CQuery; import java.io.IOException; import java.util.List; -class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreExpression { +final class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreExpression { - protected final boolean not; - - protected final SpiQuery subQuery; - - protected List bindParams; - - protected String sql; + private final boolean not; + private final SpiQuery subQuery; + private List bindParams; + private String sql; ExistsQueryExpression(SpiQuery subQuery, boolean not) { this.subQuery = subQuery; @@ -67,7 +64,6 @@ class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreExpress @Override public void prepareExpression(BeanQueryRequest request) { - CQuery subQuery = compileSubQuery(request); this.bindParams = subQuery.getPredicates().getWhereExprBindValues(); this.sql = subQuery.getGeneratedSql().replace('\n', ' '); @@ -99,7 +95,6 @@ class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreExpress @Override public void addSql(SpiExpressionRequest request) { - if (not) { request.append(" not"); } @@ -110,7 +105,6 @@ class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreExpress @Override public void addBindValues(SpiExpressionRequest request) { - for (Object bindParam : bindParams) { request.addBindValue(bindParam); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExprPath.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExprPath.java index d7b04de44..5765c7e43 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExprPath.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExprPath.java @@ -9,7 +9,7 @@ import java.io.Serializable; * query that includes the filterMany. *

*/ -public class FilterExprPath implements Serializable { +public final class FilterExprPath implements Serializable { private static final long serialVersionUID = -6420905565372842018L; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExpressionList.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExpressionList.java index b6b1874a8..0e8d4ba0b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExpressionList.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/FilterExpressionList.java @@ -18,14 +18,12 @@ import java.util.Map; import java.util.Optional; import java.util.Set; -public class FilterExpressionList extends DefaultExpressionList { +public final class FilterExpressionList extends DefaultExpressionList { private static final String notAllowedMessage = "This method is not allowed on a filter"; private final Query rootQuery; - private final FilterExprPath pathPrefix; - private int firstRow; private int maxRows; private String orderByClause; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdExpression.java index 94cab6de7..c61f884a4 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdExpression.java @@ -12,7 +12,7 @@ import java.io.IOException; /** * Slightly redundant as Query.setId() ultimately also does the same job. */ -class IdExpression extends NonPrepareExpression implements SpiExpression { +final class IdExpression extends NonPrepareExpression implements SpiExpression { private final Object value; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdInExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdInExpression.java index edf56b443..c1bd76db0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdInExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/IdInExpression.java @@ -20,10 +20,9 @@ import java.util.Set; /** * In a collection of Id values. */ -public class IdInExpression extends NonPrepareExpression { +public final class IdInExpression extends NonPrepareExpression { private final List idCollection; - private boolean multiValueIdSupported; public IdInExpression(Collection idCollection) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InExpression.java index 0bc5a4588..1a84d87eb 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InExpression.java @@ -16,7 +16,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -class InExpression extends AbstractExpression { +final class InExpression extends AbstractExpression { private final boolean not; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InPairsExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InPairsExpression.java index e5bd27413..b5533b7ad 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InPairsExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InPairsExpression.java @@ -13,20 +13,14 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -class InPairsExpression extends AbstractExpression { +final class InPairsExpression extends AbstractExpression { private final boolean not; - private final String property0, property1; - private List entries; - private boolean multiValueSupported; - private final String separator; - private final String suffix; - private List concatBindValues; InPairsExpression(Pairs pairs, boolean not) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java index a2d6d787c..e53792550 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java @@ -15,14 +15,11 @@ import java.util.List; /** * In expression using a sub query. */ -class InQueryExpression extends AbstractExpression implements UnsupportedDocStoreExpression { +final class InQueryExpression extends AbstractExpression implements UnsupportedDocStoreExpression { private final boolean not; - private final SpiQuery subQuery; - private List bindParams; - private String sql; InQueryExpression(String propertyName, SpiQuery subQuery, boolean not) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InRangeExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InRangeExpression.java index 04b242ba8..8bcdb12a8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InRangeExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InRangeExpression.java @@ -6,10 +6,9 @@ import io.ebeaninternal.api.SpiExpressionRequest; import java.io.IOException; -class InRangeExpression extends AbstractExpression { +final class InRangeExpression extends AbstractExpression { private final Object valueHigh; - private final Object valueLow; InRangeExpression(String propertyName, Object valueLow, Object valueHigh) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/IsEmptyExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/IsEmptyExpression.java index d6b878bfa..fc3be3e34 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/IsEmptyExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/IsEmptyExpression.java @@ -10,12 +10,10 @@ import io.ebean.util.SplitName; import java.io.IOException; -class IsEmptyExpression extends AbstractExpression { +final class IsEmptyExpression extends AbstractExpression { private final boolean empty; - private final String propertyPath; - private String nestedPath; IsEmptyExpression(String propertyName, boolean empty) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/JsonPathExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/JsonPathExpression.java index 1d954dcc1..a6e8f128b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/JsonPathExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/JsonPathExpression.java @@ -16,27 +16,27 @@ import java.util.Objects; * The value passed in is expected to be a valid JSON type so string, number, boolean. *

*/ -class JsonPathExpression extends AbstractExpression { +final class JsonPathExpression extends AbstractExpression { /** * The path in the JSON document in dot notation form. */ - protected final String path; + private final String path; /** * The expression operator. */ - protected final Op operator; + private final Op operator; /** * The bind value used to compare against the document path value. */ - protected final Object value; + private final Object value; /** * For Between this is the upper bind value. */ - protected final Object upperValue; + private final Object upperValue; /** * Construct for Operator (not BETWEEN though). diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/JunctionExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/JunctionExpression.java index 5637fba7f..a408b5e74 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/JunctionExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/JunctionExpression.java @@ -48,11 +48,10 @@ import java.util.function.Predicate; /** * Junction implementation. */ -class JunctionExpression implements SpiJunction, SpiExpression, ExpressionList { +final class JunctionExpression implements SpiJunction, SpiExpression, ExpressionList { - protected DefaultExpressionList exprList; - - protected Junction.Type type; + DefaultExpressionList exprList; + Junction.Type type; JunctionExpression(Junction.Type type, Query query, ExpressionList parent) { this.type = type; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/LikeExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/LikeExpression.java index f40501929..bf3871c23 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/LikeExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/LikeExpression.java @@ -8,10 +8,9 @@ import io.ebeaninternal.server.el.ElPropertyValue; import java.io.IOException; -class LikeExpression extends AbstractValueExpression { +final class LikeExpression extends AbstractValueExpression { private final boolean caseInsensitive; - private final LikeType type; LikeExpression(String propertyName, Object value, boolean caseInsensitive, LikeType type) { @@ -27,7 +26,6 @@ class LikeExpression extends AbstractValueExpression { @Override public void addBindValues(SpiExpressionRequest request) { - ElPropertyValue prop = getElProp(request); if (prop != null && prop.isDbEncrypted()) { // bind the key as well as the value @@ -40,7 +38,6 @@ class LikeExpression extends AbstractValueExpression { @Override public void addSql(SpiExpressionRequest request) { - String pname = propName; ElPropertyValue prop = getElProp(request); if (prop != null && prop.isDbEncrypted()) { @@ -98,7 +95,6 @@ class LikeExpression extends AbstractValueExpression { return "%" + value + "%"; case EQUAL_TO: return value; - default: throw new RuntimeException("LikeType " + type + " missed?"); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/LogicExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/LogicExpression.java index a66e2e88a..b0ef74f03 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/LogicExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/LogicExpression.java @@ -21,7 +21,7 @@ abstract class LogicExpression implements SpiExpression { static final String AND = " and "; static final String OR = " or "; - static class And extends LogicExpression { + static final class And extends LogicExpression { And(Expression expOne, Expression expTwo) { super(true, expOne, expTwo); @@ -34,7 +34,7 @@ abstract class LogicExpression implements SpiExpression { } - static class Or extends LogicExpression { + static final class Or extends LogicExpression { Or(Expression expOne, Expression expTwo) { super(false, expOne, expTwo); @@ -47,9 +47,7 @@ abstract class LogicExpression implements SpiExpression { } SpiExpression expOne; - SpiExpression expTwo; - private final boolean conjunction; LogicExpression(boolean conjunction, Expression expOne, Expression expTwo) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NamedParamHelp.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NamedParamHelp.java index 5487cffbf..3a56ec7de 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NamedParamHelp.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NamedParamHelp.java @@ -8,7 +8,7 @@ import java.util.List; /** * Helper for evaluating named parameters. */ -class NamedParamHelp { +final class NamedParamHelp { /** * Return the bind value taking into account named parameters. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NativeILikeExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NativeILikeExpression.java index f64933df5..110442365 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NativeILikeExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NativeILikeExpression.java @@ -8,7 +8,7 @@ import io.ebeaninternal.server.el.ElPropertyValue; import java.io.IOException; -class NativeILikeExpression extends AbstractExpression { +final class NativeILikeExpression extends AbstractExpression { private final String val; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NestedPathWrapperExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NestedPathWrapperExpression.java index b76bfef4d..0bb63f1ed 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NestedPathWrapperExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NestedPathWrapperExpression.java @@ -14,11 +14,10 @@ import java.io.IOException; /** * Wraps a single expression with nestedPath for document queries. */ -class NestedPathWrapperExpression implements SpiExpression { +final class NestedPathWrapperExpression implements SpiExpression { - protected final String nestedPath; - - protected final SpiExpression delegate; + final String nestedPath; + final SpiExpression delegate; NestedPathWrapperExpression(String nestedPath, SpiExpression delegate) { this.nestedPath = nestedPath; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NoopExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NoopExpression.java index 6c8d709e7..079f26874 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NoopExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NoopExpression.java @@ -14,9 +14,9 @@ import java.io.IOException; /** * Effectively an expression that has no effect. */ -class NoopExpression implements SpiExpression { +final class NoopExpression implements SpiExpression { - protected static final NoopExpression INSTANCE = new NoopExpression(); + static final NoopExpression INSTANCE = new NoopExpression(); @Override public void prefixProperty(String path) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NullExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NullExpression.java index 2808acce7..4a4a81201 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/NullExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/NullExpression.java @@ -17,14 +17,11 @@ import java.io.IOException; * Note that for OneToMany/ManyToMany this effectively gets translated into isEmpty()/isNotEmpty(). *

*/ -class NullExpression extends AbstractExpression { +final class NullExpression extends AbstractExpression { private final boolean notNull; - private ElPropertyValue elProperty; - private boolean assocMany; - private String propertyPath; NullExpression(String propertyName, boolean notNull) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/PrepareDocNested.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/PrepareDocNested.java index ebc2d794b..8f1f48d38 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/PrepareDocNested.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/PrepareDocNested.java @@ -13,7 +13,7 @@ import java.util.Map; /** * Prepare nested path expressions for */ -class PrepareDocNested { +final class PrepareDocNested { /** * Prepare the top level expressions for nested path handling. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpression.java index 9e1c3e8dc..53571cad7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpression.java @@ -11,10 +11,9 @@ import io.ebeaninternal.server.persist.MultiValueWrapper; import java.io.IOException; import java.util.Collection; -class RawExpression extends NonPrepareExpression { +final class RawExpression extends NonPrepareExpression { final String sql; - final Object[] values; RawExpression(String sql, Object[] values) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpressionBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpressionBuilder.java index 73a4da911..40aa47271 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpressionBuilder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/RawExpressionBuilder.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -class RawExpressionBuilder { +final class RawExpressionBuilder { private static final String BP_1 = "?1"; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/Same.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/Same.java index 931e3e3e3..104d27969 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/Same.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/Same.java @@ -7,26 +7,26 @@ import java.util.Objects; /** * Utility to help isSame methods. */ -public class Same { +final class Same { /** * Return true if both values are null or both an not null. */ - public static boolean sameByNull(Object v1, Object v2) { + static boolean sameByNull(Object v1, Object v2) { return (v1 == null) == (v2 == null); } /** * Null safe equals check. */ - public static boolean sameByValue(Object v1, Object v2) { + static boolean sameByValue(Object v1, Object v2) { return Objects.equals(v1, v2); } /** * Return true if both collections are the same by value and order is taken into account. */ - public static boolean sameByValue(Collection v1, Collection v2) { + static boolean sameByValue(Collection v1, Collection v2) { if (v1 == null) { return v2 == null; } @@ -46,8 +46,7 @@ public class Same { /** * Null safe check by sameByValue or sameByNull based on byValue. */ - public static boolean sameBy(boolean byValue, Object value, Object value1) { - + static boolean sameBy(boolean byValue, Object value, Object value1) { if (byValue) { return sameByValue(value, value1); } else { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/SimpleExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/SimpleExpression.java index bc23b84f2..87b0ed3bf 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/SimpleExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/SimpleExpression.java @@ -11,7 +11,7 @@ import io.ebeaninternal.api.NaturalKeyQueryData; import java.io.IOException; import java.util.Arrays; -public class SimpleExpression extends AbstractValueExpression { +public final class SimpleExpression extends AbstractValueExpression { private final Op type; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextCommonTermsExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextCommonTermsExpression.java index 8cc5fb5bb..3f289edb5 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextCommonTermsExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextCommonTermsExpression.java @@ -7,10 +7,9 @@ import java.io.IOException; /** * Full text common terms expression. */ -class TextCommonTermsExpression extends AbstractTextExpression { +final class TextCommonTermsExpression extends AbstractTextExpression { private final String search; - private final TextCommonTerms options; public TextCommonTermsExpression(String search, TextCommonTerms options) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMatchExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMatchExpression.java index d36f491b7..f7cb06e6a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMatchExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMatchExpression.java @@ -7,13 +7,12 @@ import java.io.IOException; /** * Full text MATCH expression. */ -public class TextMatchExpression extends AbstractTextExpression { +final class TextMatchExpression extends AbstractTextExpression { private final String search; - private final Match options; - public TextMatchExpression(String propertyName, String search, Match options) { + TextMatchExpression(String propertyName, String search, Match options) { super(propertyName); this.search = search; this.options = options; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMultiMatchExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMultiMatchExpression.java index e51538e9f..f9fe1e909 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMultiMatchExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextMultiMatchExpression.java @@ -7,13 +7,12 @@ import java.io.IOException; /** * Full text Multi-Match expression. */ -public class TextMultiMatchExpression extends AbstractTextExpression { +final class TextMultiMatchExpression extends AbstractTextExpression { private final String search; - private final MultiMatch options; - public TextMultiMatchExpression(String search, MultiMatch options) { + TextMultiMatchExpression(String search, MultiMatch options) { super(null); this.search = search; this.options = options; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextQueryStringExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextQueryStringExpression.java index 2a44e39d5..dcd46a240 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextQueryStringExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextQueryStringExpression.java @@ -7,13 +7,12 @@ import java.io.IOException; /** * Full text query string expression. */ -class TextQueryStringExpression extends AbstractTextExpression { +final class TextQueryStringExpression extends AbstractTextExpression { private final String search; - private final TextQueryString options; - public TextQueryStringExpression(String search, TextQueryString options) { + TextQueryStringExpression(String search, TextQueryString options) { super(null); this.search = search; this.options = options; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextSimpleExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextSimpleExpression.java index 9faa7d1a7..ec6702c2a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextSimpleExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/TextSimpleExpression.java @@ -7,13 +7,12 @@ import java.io.IOException; /** * Full text Multi-Match expression. */ -class TextSimpleExpression extends AbstractTextExpression { +final class TextSimpleExpression extends AbstractTextExpression { private final String search; - private final TextSimple options; - public TextSimpleExpression(String search, TextSimple options) { + TextSimpleExpression(String search, TextSimple options) { super(null); this.search = search; this.options = options; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BaseDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BaseDbExpression.java index 2c85e7963..a8d4d6adc 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BaseDbExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BaseDbExpression.java @@ -10,7 +10,6 @@ abstract class BaseDbExpression implements DbExpressionHandler { @Override public void bitwise(SpiExpressionRequest request, String propName, BitwiseOp operator, long flags, String compare, long match) { - String bitOp = bitOp(operator); request.append("(").append(propName).append(" ").append(bitOp).append(" ? ").append(compare).append(" ?)"); } @@ -30,7 +29,6 @@ abstract class BaseDbExpression implements DbExpressionHandler { * Common alternative where the bitwise operation is a function (specifically bitand is used - H2 and Oracle). */ protected void bitwiseFunction(SpiExpressionRequest request, String propName, BitwiseOp operator, String compare) { - String funcName = functionName(operator); request.append(funcName).append("(").append(propName).append(", ?) ").append(compare).append(" ?"); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BasicDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BasicDbExpression.java index 8b5ab8d70..edecf8230 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BasicDbExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/BasicDbExpression.java @@ -6,7 +6,7 @@ import io.ebeaninternal.server.expression.Op; /** * Not supported JSON or ARRAY expression handler. */ -public class BasicDbExpression extends BaseDbExpression { +class BasicDbExpression extends BaseDbExpression { @Override public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java index c4b24fc84..6f773b270 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java @@ -4,13 +4,12 @@ import io.ebean.annotation.Platform; import io.ebean.config.dbplatform.DatabasePlatform; -public class DbExpressionHandlerFactory { +public final class DbExpressionHandlerFactory { /** * Create and return the appropriate platform specific handing of expressions. */ public static DbExpressionHandler from(DatabasePlatform databasePlatform) { - Platform platform = databasePlatform.getPlatform(); switch (platform) { case H2: diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/H2DbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/H2DbExpression.java index 0c7e43b65..5eddb5d11 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/H2DbExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/H2DbExpression.java @@ -6,7 +6,7 @@ import io.ebeaninternal.server.expression.BitwiseOp; /** * H2 handling of platform specific expressions. */ -class H2DbExpression extends BasicDbExpression { +final class H2DbExpression extends BasicDbExpression { @Override public void bitwise(SpiExpressionRequest request, String propName, BitwiseOp operator, long flags, String compare, long match) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/HanaDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/HanaDbExpression.java index a6633edfa..43919c1a0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/HanaDbExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/HanaDbExpression.java @@ -7,7 +7,7 @@ import io.ebeaninternal.server.expression.Op; /** * HANA handling of platform specific expressions. */ -public class HanaDbExpression extends BaseDbExpression { +final class HanaDbExpression extends BaseDbExpression { @Override public void bitwise(SpiExpressionRequest request, String propName, BitwiseOp operator, long flags, String compare, long match) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MariaDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MariaDbExpression.java index 8e4c0be1d..8116b2c4e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MariaDbExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MariaDbExpression.java @@ -6,7 +6,7 @@ import io.ebeaninternal.server.expression.Op; /** * MariaDB specific handling of platform specific expressions. */ -class MariaDbExpression extends BasicDbExpression { +final class MariaDbExpression extends BasicDbExpression { @Override public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MySqlDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MySqlDbExpression.java index 8ea2595fe..b0721a44e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MySqlDbExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/MySqlDbExpression.java @@ -6,7 +6,7 @@ import io.ebeaninternal.server.expression.Op; /** * MySql specific handling of platform specific expressions. */ -class MySqlDbExpression extends BasicDbExpression { +final class MySqlDbExpression extends BasicDbExpression { @Override public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/OracleDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/OracleDbExpression.java index 3ec4b4071..f1fbaef7a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/OracleDbExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/OracleDbExpression.java @@ -7,7 +7,7 @@ import io.ebeaninternal.server.expression.Op; /** * Oracle handling of platform specific expressions. ARRAY expressions not supported. */ -public class OracleDbExpression extends BaseDbExpression { +final class OracleDbExpression extends BaseDbExpression { @Override public String concat(String property0, String separator, String property1, String suffix) { @@ -16,7 +16,6 @@ public class OracleDbExpression extends BaseDbExpression { @Override public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) { - if (operator == Op.EXISTS) { request.append("json_exists(").append(propName).append(", '$.").append(path).append("')"); } else if (operator == Op.NOT_EXISTS) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresCast.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresCast.java index 3e833cb12..595acb6cd 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresCast.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresCast.java @@ -3,7 +3,7 @@ package io.ebeaninternal.server.expression.platform; /** * Helper for determining type casting for JSON and ARRAY expressions. */ -public class PostgresCast { +final class PostgresCast { /** * Postgres CAST the type if necessary. @@ -11,15 +11,14 @@ public class PostgresCast { * This is generally necessary for JSON expressions as text values always returned from the json operators used. *

*/ - protected static String cast(Object value) { + static String cast(Object value) { return cast(value, false); } /** * Postgres CAST the type if necessary additionally specify if DB ARRAY is used. */ - protected static String cast(Object value, boolean asArray) { - + static String cast(Object value, boolean asArray) { if (value == null) { // for exists and not-exists expressions return ""; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresDbExpression.java index 54270ee5c..a3f044072 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresDbExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/PostgresDbExpression.java @@ -6,7 +6,7 @@ import io.ebeaninternal.server.expression.Op; /** * Postgres JSON and ARRAY expression handler */ -public class PostgresDbExpression extends BaseDbExpression { +final class PostgresDbExpression extends BaseDbExpression { @Override public String concat(String property0, String separator, String property1, String suffix) { @@ -15,7 +15,6 @@ public class PostgresDbExpression extends BaseDbExpression { @Override public void json(SpiExpressionRequest request, String propName, String path, Op operator, Object value) { - StringBuilder sb = new StringBuilder(50); String[] paths = path.split("\\."); if (paths.length == 1) { @@ -41,7 +40,6 @@ public class PostgresDbExpression extends BaseDbExpression { @Override public void arrayContains(SpiExpressionRequest request, String propName, boolean contains, Object... values) { - if (!contains) { request.append("not ("); } @@ -58,7 +56,6 @@ public class PostgresDbExpression extends BaseDbExpression { @Override public void arrayIsEmpty(SpiExpressionRequest request, String propName, boolean empty) { - request.append("coalesce(cardinality(").append(propName).append("),0)"); if (empty) { request.append(" = 0"); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/SqlServerDbExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/SqlServerDbExpression.java index 98d76ec43..78838a81e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/SqlServerDbExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/SqlServerDbExpression.java @@ -6,7 +6,7 @@ import io.ebeaninternal.server.expression.Op; /** * Microsoft SQL Server JSON. ARRAY expressions not supported. */ -public class SqlServerDbExpression extends BaseDbExpression { +final class SqlServerDbExpression extends BaseDbExpression { @Override public void json(final SpiExpressionRequest request, final String propName,