From 8bfae9deefae054e014cf2a0e3b188f64e2153be Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Fri, 28 Jun 2019 23:48:03 +1200 Subject: [PATCH] #1738 - Refactor simplify switch and various --- .../io/ebean/text/PathPropertiesParser.java | 13 ++++++------ .../ebeaninternal/api/TransactionEvent.java | 2 +- .../dbmigration/LastMigration.java | 5 +---- .../server/core/DefaultCallStackFactory.java | 5 +---- .../server/core/InternalConfiguration.java | 8 +++----- .../server/core/PersistRequestBean.java | 6 ++---- .../deploy/DeployPropertyParserMap.java | 8 +------- .../server/deploy/DeployUpdateParser.java | 20 +++++++------------ .../server/deploy/DetermineAggPath.java | 3 +-- .../expression/DefaultExampleExpression.java | 4 +--- .../ebeaninternal/server/expression/Same.java | 5 +++-- .../server/grammer/EqlAdapter.java | 5 +---- .../server/persist/dml/DeleteMeta.java | 9 ++------- .../server/persist/dml/UpdateMeta.java | 9 ++------- .../server/query/CQueryBuilder.java | 6 +++--- .../server/query/CQueryPlan.java | 8 ++++---- .../server/querydefn/DefaultOrmQuery.java | 3 +-- 17 files changed, 40 insertions(+), 79 deletions(-) diff --git a/src/main/java/io/ebean/text/PathPropertiesParser.java b/src/main/java/io/ebean/text/PathPropertiesParser.java index 6655122d1..b267cfe2a 100644 --- a/src/main/java/io/ebean/text/PathPropertiesParser.java +++ b/src/main/java/io/ebean/text/PathPropertiesParser.java @@ -49,13 +49,12 @@ class PathPropertiesParser { private String getPath() { do { char c1 = chars[pos++]; - switch (c1) { - case '(': - return currentWord(); - default: - if (pos == 1) { - return ""; - } + if (c1 == '(') { + return currentWord(); + } else { + if (pos == 1) { + return ""; + } } } while (pos < eof); throw new RuntimeException("Hit EOF while reading sectionTitle from " + startPos); diff --git a/src/main/java/io/ebeaninternal/api/TransactionEvent.java b/src/main/java/io/ebeaninternal/api/TransactionEvent.java index 86ee5f474..52d87d23e 100644 --- a/src/main/java/io/ebeaninternal/api/TransactionEvent.java +++ b/src/main/java/io/ebeaninternal/api/TransactionEvent.java @@ -75,7 +75,7 @@ public class TransactionEvent implements Serializable { * Return the list of PersistRequestBean's for this transaction. */ public List> getListenerNotify() { - return (listenerNotify == null) ? null : listenerNotify; + return listenerNotify; } public TransactionEventTable getEventTables() { diff --git a/src/main/java/io/ebeaninternal/dbmigration/LastMigration.java b/src/main/java/io/ebeaninternal/dbmigration/LastMigration.java index 1b063ba22..20b9a19c3 100644 --- a/src/main/java/io/ebeaninternal/dbmigration/LastMigration.java +++ b/src/main/java/io/ebeaninternal/dbmigration/LastMigration.java @@ -60,10 +60,7 @@ class LastMigration { } private static boolean includeSqlFile(String lowerFileName) { - if (lowerFileName.startsWith("r") || lowerFileName.startsWith("i") || !lowerFileName.endsWith(SQL)) { - return false; - } - return true; + return !lowerFileName.startsWith("r") && !lowerFileName.startsWith("i") && lowerFileName.endsWith(SQL); } private static boolean includeModelFile(String lowerFileName) { diff --git a/src/main/java/io/ebeaninternal/server/core/DefaultCallStackFactory.java b/src/main/java/io/ebeaninternal/server/core/DefaultCallStackFactory.java index d7a949d03..169faa93d 100644 --- a/src/main/java/io/ebeaninternal/server/core/DefaultCallStackFactory.java +++ b/src/main/java/io/ebeaninternal/server/core/DefaultCallStackFactory.java @@ -55,10 +55,7 @@ public class DefaultCallStackFactory implements CallStackFactory { if (element.getClassName().startsWith(IO_EBEAN)) { return true; } - if (element.getMethodName().startsWith("_ebean_")) { - return true; - } - return false; + return element.getMethodName().startsWith("_ebean_"); } private CallStack createCallStack(StackTraceElement[] finalTrace) { diff --git a/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java b/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java index a2aefa3ec..cd3ab2e1c 100644 --- a/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java +++ b/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java @@ -328,12 +328,10 @@ public class InternalConfiguration { private MultiValueBind createMultiValueBind(Platform platform) { // only Postgres at this stage - switch (platform) { - case POSTGRES: - return new PostgresMultiValueBind(); - default: - return new MultiValueBind(); + if (platform == Platform.POSTGRES) { + return new PostgresMultiValueBind(); } + return new MultiValueBind(); } public SpiJsonContext createJsonContext(SpiEbeanServer server) { diff --git a/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java b/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java index ba7dcfb95..53c593457 100644 --- a/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java +++ b/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java @@ -1326,10 +1326,8 @@ public final class PersistRequestBean extends PersistRequest implements BeanP */ public void docStorePersist() { idValue = beanDescriptor.getId(entityBean); - switch (type) { - case UPDATE: - dirtyProperties = intercept.getDirtyProperties(); - break; + if (type == Type.UPDATE) { + dirtyProperties = intercept.getDirtyProperties(); } // processing now so set IGNORE (unlike DB + DocStore processing with post-commit) docStoreMode = DocStoreMode.IGNORE; diff --git a/src/main/java/io/ebeaninternal/server/deploy/DeployPropertyParserMap.java b/src/main/java/io/ebeaninternal/server/deploy/DeployPropertyParserMap.java index fc8aaadab..cd0ded26e 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/DeployPropertyParserMap.java +++ b/src/main/java/io/ebeaninternal/server/deploy/DeployPropertyParserMap.java @@ -31,13 +31,7 @@ public class DeployPropertyParserMap extends DeployParser { @Override public String getDeployWord(String expression) { - - String deployExpr = map.get(expression); - if (deployExpr == null) { - return null; - } else { - return deployExpr; - } + return map.get(expression); } } diff --git a/src/main/java/io/ebeaninternal/server/deploy/DeployUpdateParser.java b/src/main/java/io/ebeaninternal/server/deploy/DeployUpdateParser.java index 3aa8ce83d..6669aeb9a 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/DeployUpdateParser.java +++ b/src/main/java/io/ebeaninternal/server/deploy/DeployUpdateParser.java @@ -27,17 +27,19 @@ public final class DeployUpdateParser extends DeployParser { public String convertWord() { String dbWord = getDeployWord(word); - if (dbWord != null) { return dbWord; } // maybe tableAlias.propertyName - return convertSubword(0, word, null); + return convertSubword(word); } - private String convertSubword(int start, String currentWord, StringBuilder localBuffer) { - while (true) { + private String convertSubword(String currentWord) { + int start = 0; + StringBuilder localBuffer = null; + + while (true) { int dotPos = currentWord.indexOf('.', start); if (start == 0 && dotPos == -1) { return currentWord; @@ -63,15 +65,11 @@ public final class DeployUpdateParser extends DeployParser { start = dotPos + 1; String remainder = currentWord.substring(start, currentWord.length()); - //String dbWord = deployMap.get(remainder.toLowerCase()); String dbWord = getDeployWord(remainder); if (dbWord != null) { // we have found a match for the remainder localBuffer.append(dbWord); return localBuffer.toString(); - } else { - // - } } } @@ -84,11 +82,7 @@ public final class DeployUpdateParser extends DeployParser { } ElPropertyDeploy elProp = beanDescriptor.getElPropertyDeploy(expression); - if (elProp != null) { - return elProp.getDbColumn(); - } else { - return null; - } + return elProp != null ? elProp.getDbColumn() : null; } } diff --git a/src/main/java/io/ebeaninternal/server/deploy/DetermineAggPath.java b/src/main/java/io/ebeaninternal/server/deploy/DetermineAggPath.java index fff0a1438..4c5e22532 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/DetermineAggPath.java +++ b/src/main/java/io/ebeaninternal/server/deploy/DetermineAggPath.java @@ -92,8 +92,7 @@ class DetermineAggPath { } else if (details instanceof DeployBeanPropertyAssocOne) { DeployBeanPropertyAssocOne one = (DeployBeanPropertyAssocOne) details; - DeployBeanDescriptor targetDesc = one.getTargetDeploy(); - desc = targetDesc; + desc = one.getTargetDeploy(); pos = pos + 1; continue; } diff --git a/src/main/java/io/ebeaninternal/server/expression/DefaultExampleExpression.java b/src/main/java/io/ebeaninternal/server/expression/DefaultExampleExpression.java index 2a0fd2bd8..2448c855e 100644 --- a/src/main/java/io/ebeaninternal/server/expression/DefaultExampleExpression.java +++ b/src/main/java/io/ebeaninternal/server/expression/DefaultExampleExpression.java @@ -303,9 +303,7 @@ public class DefaultExampleExpression implements SpiExpression, ExampleExpressio */ private boolean isZero(Object value) { if (value instanceof Number) { - Number num = (Number) value; - double doubleValue = num.doubleValue(); - if (doubleValue == 0) { + if (((Number) value).doubleValue() == 0) { return true; } } diff --git a/src/main/java/io/ebeaninternal/server/expression/Same.java b/src/main/java/io/ebeaninternal/server/expression/Same.java index 8e4e343a4..931e3e3e3 100644 --- a/src/main/java/io/ebeaninternal/server/expression/Same.java +++ b/src/main/java/io/ebeaninternal/server/expression/Same.java @@ -2,6 +2,7 @@ package io.ebeaninternal.server.expression; import java.util.Collection; import java.util.Iterator; +import java.util.Objects; /** * Utility to help isSame methods. @@ -12,14 +13,14 @@ public class Same { * Return true if both values are null or both an not null. */ public static boolean sameByNull(Object v1, Object v2) { - return v1 == null ? v2 == null : v2 != null; + return (v1 == null) == (v2 == null); } /** * Null safe equals check. */ public static boolean sameByValue(Object v1, Object v2) { - return v1 == null ? v2 == null : v1.equals(v2); + return Objects.equals(v1, v2); } /** diff --git a/src/main/java/io/ebeaninternal/server/grammer/EqlAdapter.java b/src/main/java/io/ebeaninternal/server/grammer/EqlAdapter.java index 72110fb68..397bd7d6a 100644 --- a/src/main/java/io/ebeaninternal/server/grammer/EqlAdapter.java +++ b/src/main/java/io/ebeaninternal/server/grammer/EqlAdapter.java @@ -261,10 +261,7 @@ class EqlAdapter extends EQLBaseListener { } private boolean isValue(String text) { - if (text.length() == 1 && (text.equals("(") || text.equals(")") || text.equals(","))) { - return false; - } - return true; + return text.length() != 1 || (!text.equals("(") && !text.equals(")") && !text.equals(",")); } @Override diff --git a/src/main/java/io/ebeaninternal/server/persist/dml/DeleteMeta.java b/src/main/java/io/ebeaninternal/server/persist/dml/DeleteMeta.java index a10e74bc8..97e964f0c 100644 --- a/src/main/java/io/ebeaninternal/server/persist/dml/DeleteMeta.java +++ b/src/main/java/io/ebeaninternal/server/persist/dml/DeleteMeta.java @@ -72,13 +72,8 @@ public final class DeleteMeta { tenantId.dmlBind(bind, bean); } - switch (persist.getConcurrencyMode()) { - case VERSION: - version.dmlBind(bind, bean); - break; - - default: - break; + if (persist.getConcurrencyMode() == ConcurrencyMode.VERSION) { + version.dmlBind(bind, bean); } } diff --git a/src/main/java/io/ebeaninternal/server/persist/dml/UpdateMeta.java b/src/main/java/io/ebeaninternal/server/persist/dml/UpdateMeta.java index eb993c2c3..dcb07189e 100644 --- a/src/main/java/io/ebeaninternal/server/persist/dml/UpdateMeta.java +++ b/src/main/java/io/ebeaninternal/server/persist/dml/UpdateMeta.java @@ -74,13 +74,8 @@ public final class UpdateMeta { tenantId.dmlBind(bind, bean); } - switch (persist.getConcurrencyMode()) { - case VERSION: - version.dmlBind(bind, bean); - break; - - default: - break; + if (persist.getConcurrencyMode() == ConcurrencyMode.VERSION) { + version.dmlBind(bind, bean); } } diff --git a/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java b/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java index 6c1151815..438e8033b 100644 --- a/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java +++ b/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java @@ -128,7 +128,7 @@ class CQueryBuilder { } // cache the query plan - queryPlan = new CQueryPlan(request, sql, sqlTree, false, false, predicates.getLogWhereSql()); + queryPlan = new CQueryPlan(request, sql, sqlTree, false, predicates.getLogWhereSql()); request.putQueryPlan(queryPlan); return new CQueryUpdate(type, request, predicates, queryPlan); } @@ -213,7 +213,7 @@ class CQueryBuilder { SqlTree sqlTree = createSqlTree(request, predicates); SqlLimitResponse s = buildSql(null, request, predicates, sqlTree); - queryPlan = new CQueryPlan(request, s.getSql(), sqlTree, false, s.isIncludesRowNumberColumn(), predicates.getLogWhereSql()); + queryPlan = new CQueryPlan(request, s.getSql(), sqlTree, s.isIncludesRowNumberColumn(), predicates.getLogWhereSql()); request.putQueryPlan(queryPlan); return new CQueryFetchSingleAttribute(request, predicates, queryPlan, query.isCountDistinct()); } @@ -314,7 +314,7 @@ class CQueryBuilder { } // cache the query plan - queryPlan = new CQueryPlan(request, sql, sqlTree, false, s.isIncludesRowNumberColumn(), predicates.getLogWhereSql()); + queryPlan = new CQueryPlan(request, sql, sqlTree, s.isIncludesRowNumberColumn(), predicates.getLogWhereSql()); request.putQueryPlan(queryPlan); return new CQueryRowCount(queryPlan, request, predicates); diff --git a/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java b/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java index e1812802b..c630f1f3f 100644 --- a/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java +++ b/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java @@ -133,7 +133,7 @@ public class CQueryPlan { /** * Create a query plan for a raw sql query. */ - CQueryPlan(OrmQueryRequest request, String sql, SqlTree sqlTree, boolean rawSql, boolean rowNumberIncluded, String logWhereSql) { + CQueryPlan(OrmQueryRequest request, String sql, SqlTree sqlTree, boolean rowNumberIncluded, String logWhereSql) { this.server = request.getServer(); this.dataTimeZone = server.getDataTimeZone(); @@ -143,18 +143,18 @@ public class CQueryPlan { this.label = query.getPlanLabel(); this.name = deriveName(label, query.getType()); this.location = location(); - this.planKey = buildPlanKey(sql, rawSql, rowNumberIncluded, logWhereSql); + this.planKey = buildPlanKey(sql, false, rowNumberIncluded, logWhereSql); this.autoTuned = false; this.asOfTableCount = 0; this.sql = sql; this.sqlHash = md5Hash(sql); this.sqlTree = sqlTree; - this.rawSql = rawSql; + this.rawSql = false; this.rowNumberIncluded = rowNumberIncluded; this.logWhereSql = logWhereSql; this.encryptedProps = sqlTree.getEncryptedProps(); this.stats = new CQueryPlanStats(this, server.isCollectQueryOrigins()); - this.dependentTables = (rawSql) ? Collections.emptySet() : sqlTree.dependentTables(); + this.dependentTables = sqlTree.dependentTables(); this.bindCapture = initBindCapture(server.getServerConfig(), query); } diff --git a/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java b/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java index 1e9a40ada..a63e9380b 100644 --- a/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java +++ b/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java @@ -1895,8 +1895,7 @@ public class DefaultOrmQuery implements SpiQuery { namedParams = new HashMap<>(); } - ONamedParam param = namedParams.computeIfAbsent(name, ONamedParam::new); - return param; + return namedParams.computeIfAbsent(name, ONamedParam::new); } @Override