From 43408fcb8784f00d95c277f215321f71af00f71f Mon Sep 17 00:00:00 2001 From: Koen De Groote Date: Sat, 22 Apr 2017 05:48:46 +0200 Subject: [PATCH] Java language level updates concerning Maps. (#1008) * Java language level updates concerning Maps. * Reverts when comments indicated no sync can happen. --- .../ddlgeneration/platform/BaseTableDdl.java | 6 +----- .../ebean/dbmigration/model/PendingDrops.java | 6 +----- .../java/io/ebean/text/PathProperties.java | 6 +----- .../java/io/ebeaninternal/api/BindParams.java | 6 +----- .../autotune/service/ProfileManager.java | 6 +----- .../server/cache/CacheChangeSet.java | 6 +----- .../server/deploy/BeanDescriptor.java | 6 +----- .../server/deploy/BeanDescriptorManager.java | 12 ++---------- .../server/expression/PrepareDocNested.java | 6 +----- .../server/loadcontext/DLoadContext.java | 18 +++--------------- .../server/querydefn/DefaultOrmQuery.java | 6 +----- .../server/transaction/BeanPersistIdMap.java | 6 +----- .../transaction/BulkEventListenerMap.java | 6 +----- .../server/transaction/DeleteByIdMap.java | 6 +----- .../server/transaction/TransactionMap.java | 9 +++------ 15 files changed, 20 insertions(+), 91 deletions(-) diff --git a/src/main/java/io/ebean/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/src/main/java/io/ebean/dbmigration/ddlgeneration/platform/BaseTableDdl.java index c4da60015..7c7970948 100644 --- a/src/main/java/io/ebean/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/src/main/java/io/ebean/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -696,11 +696,7 @@ public class BaseTableDdl implements TableDdl { */ protected void regenerateHistoryTriggers(String baseTableName, HistoryTableUpdate.Change change, String column) { - HistoryTableUpdate update = regenerateHistoryTriggers.get(baseTableName); - if (update == null) { - update = new HistoryTableUpdate(baseTableName); - regenerateHistoryTriggers.put(baseTableName, update); - } + HistoryTableUpdate update = regenerateHistoryTriggers.computeIfAbsent(baseTableName, HistoryTableUpdate::new); update.add(change, column); } diff --git a/src/main/java/io/ebean/dbmigration/model/PendingDrops.java b/src/main/java/io/ebean/dbmigration/model/PendingDrops.java index 249135ed3..b5d0da695 100644 --- a/src/main/java/io/ebean/dbmigration/model/PendingDrops.java +++ b/src/main/java/io/ebean/dbmigration/model/PendingDrops.java @@ -23,11 +23,7 @@ public class PendingDrops { */ public void add(MigrationVersion version, ChangeSet changeSet) { - Entry entry = map.get(version.normalised()); - if (entry == null) { - entry = new Entry(version); - map.put(version.normalised(), entry); - } + Entry entry = map.computeIfAbsent(version.normalised(), k -> new Entry(version)); entry.add(changeSet); } diff --git a/src/main/java/io/ebean/text/PathProperties.java b/src/main/java/io/ebean/text/PathProperties.java index 3775ef6ee..44aa7c837 100644 --- a/src/main/java/io/ebean/text/PathProperties.java +++ b/src/main/java/io/ebean/text/PathProperties.java @@ -89,11 +89,7 @@ public class PathProperties implements FetchPath { } Props getProps(String path) { - Props props = pathMap.get(path); - if (props == null) { - props = new Props(this, null, path); - pathMap.put(path, props); - } + Props props = pathMap.computeIfAbsent(path, p -> new Props(this, null, p)); return props; } diff --git a/src/main/java/io/ebeaninternal/api/BindParams.java b/src/main/java/io/ebeaninternal/api/BindParams.java index 2bd9e3515..e6e813c5f 100644 --- a/src/main/java/io/ebeaninternal/api/BindParams.java +++ b/src/main/java/io/ebeaninternal/api/BindParams.java @@ -169,11 +169,7 @@ public class BindParams implements Serializable { } private Param getParam(String name) { - Param p = namedParameters.get(name); - if (p == null) { - p = new Param(); - namedParameters.put(name, p); - } + Param p = namedParameters.computeIfAbsent(name, k -> new Param()); return p; } diff --git a/src/main/java/io/ebeaninternal/server/autotune/service/ProfileManager.java b/src/main/java/io/ebeaninternal/server/autotune/service/ProfileManager.java index 030bf205a..183007d0e 100644 --- a/src/main/java/io/ebeaninternal/server/autotune/service/ProfileManager.java +++ b/src/main/java/io/ebeaninternal/server/autotune/service/ProfileManager.java @@ -103,11 +103,7 @@ public class ProfileManager implements ProfilingListener { private ProfileOrigin getProfileOrigin(ObjectGraphOrigin originQueryPoint) { synchronized (monitor) { - ProfileOrigin stats = profileMap.get(originQueryPoint.getKey()); - if (stats == null) { - stats = new ProfileOrigin(originQueryPoint, queryTuningAddVersion, profilingBase, profilingRate); - profileMap.put(originQueryPoint.getKey(), stats); - } + ProfileOrigin stats = profileMap.computeIfAbsent(originQueryPoint.getKey(), k -> new ProfileOrigin(originQueryPoint, queryTuningAddVersion, profilingBase, profilingRate)); return stats; } } diff --git a/src/main/java/io/ebeaninternal/server/cache/CacheChangeSet.java b/src/main/java/io/ebeaninternal/server/cache/CacheChangeSet.java index 8f9c3df4a..ba0e4ab49 100644 --- a/src/main/java/io/ebeaninternal/server/cache/CacheChangeSet.java +++ b/src/main/java/io/ebeaninternal/server/cache/CacheChangeSet.java @@ -122,11 +122,7 @@ public class CacheChangeSet { */ private ManyChange many(BeanDescriptor desc, String manyProperty) { ManyKey key = new ManyKey(desc, manyProperty); - ManyChange manyChange = manyChangeMap.get(key); - if (manyChange == null) { - manyChange = new ManyChange(key); - manyChangeMap.put(key, manyChange); - } + ManyChange manyChange = manyChangeMap.computeIfAbsent(key, ManyChange::new); return manyChange; } diff --git a/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java b/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java index 3972ca4d4..b4541b07e 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java +++ b/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java @@ -1996,11 +1996,7 @@ public class BeanDescriptor implements MetaBeanInfo, BeanType { } public ElComparator getElComparator(String propNameOrSortBy) { - ElComparator c = comparatorCache.get(propNameOrSortBy); - if (c == null) { - c = createComparator(propNameOrSortBy); - comparatorCache.put(propNameOrSortBy, c); - } + ElComparator c = comparatorCache.computeIfAbsent(propNameOrSortBy, this::createComparator); return c; } diff --git a/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java b/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java index b9fe65f0b..71312f356 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java +++ b/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java @@ -481,11 +481,7 @@ public class BeanDescriptorManager implements BeanDescriptorMap { String baseTable = desc.getBaseTable(); if (baseTable != null) { baseTable = baseTable.toLowerCase(); - List> list = tableToDescMap.get(baseTable); - if (list == null) { - list = new ArrayList<>(1); - tableToDescMap.put(baseTable, list); - } + List> list = tableToDescMap.computeIfAbsent(baseTable, k -> new ArrayList<>(1)); list.add(desc); } if (desc.getEntityType() == EntityType.VIEW && desc.isQueryCaching()) { @@ -495,11 +491,7 @@ public class BeanDescriptorManager implements BeanDescriptorMap { if (dependentTables != null && dependentTables.length > 0) { for (String depTable : dependentTables) { depTable = depTable.toLowerCase(); - List> list = tableToViewDescMap.get(depTable); - if (list == null) { - list = new ArrayList<>(1); - tableToViewDescMap.put(depTable, list); - } + List> list = tableToViewDescMap.computeIfAbsent(depTable, k -> new ArrayList<>(1)); list.add(desc); } } diff --git a/src/main/java/io/ebeaninternal/server/expression/PrepareDocNested.java b/src/main/java/io/ebeaninternal/server/expression/PrepareDocNested.java index 492a53257..ebc2d794b 100644 --- a/src/main/java/io/ebeaninternal/server/expression/PrepareDocNested.java +++ b/src/main/java/io/ebeaninternal/server/expression/PrepareDocNested.java @@ -79,11 +79,7 @@ class PrepareDocNested { for (int i = 0; i < origSize; i++) { SpiExpression expr = origUnderlying.get(i); String nestedPath = expr.nestedPath(beanDescriptor); - Group group = groups.get(nestedPath); - if (group == null) { - group = new Group(nestedPath); - groups.put(nestedPath, group); - } + Group group = groups.computeIfAbsent(nestedPath, Group::new); group.list.add(expr); } diff --git a/src/main/java/io/ebeaninternal/server/loadcontext/DLoadContext.java b/src/main/java/io/ebeaninternal/server/loadcontext/DLoadContext.java index be0099dc8..a04848703 100644 --- a/src/main/java/io/ebeaninternal/server/loadcontext/DLoadContext.java +++ b/src/main/java/io/ebeaninternal/server/loadcontext/DLoadContext.java @@ -211,11 +211,7 @@ public class DLoadContext implements LoadContext { @Override public ObjectGraphNode getObjectGraphNode(String path) { - ObjectGraphNode node = nodePathMap.get(path); - if (node == null) { - node = createObjectGraphNode(path); - nodePathMap.put(path, node); - } + ObjectGraphNode node = nodePathMap.computeIfAbsent(path, this::createObjectGraphNode); return node; } @@ -284,11 +280,7 @@ public class DLoadContext implements LoadContext { if (path == null) { return rootBeanContext; } - DLoadBeanContext beanContext = beanMap.get(path); - if (beanContext == null) { - beanContext = createBeanContext(path, defaultBatchSize, null); - beanMap.put(path, beanContext); - } + DLoadBeanContext beanContext = beanMap.computeIfAbsent(path, p -> createBeanContext(p, defaultBatchSize, null)); return beanContext; } @@ -314,11 +306,7 @@ public class DLoadContext implements LoadContext { if (path == null) { throw new RuntimeException("path is null?"); } - DLoadManyContext ctx = manyMap.get(path); - if (ctx == null) { - ctx = createManyContext(path, defaultBatchSize, null); - manyMap.put(path, ctx); - } + DLoadManyContext ctx = manyMap.computeIfAbsent(path, p -> createManyContext(p, defaultBatchSize, null)); return ctx; } diff --git a/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java b/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java index c4cb36b69..30bf1468b 100644 --- a/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java +++ b/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java @@ -1568,11 +1568,7 @@ public class DefaultOrmQuery implements SpiQuery { namedParams = new HashMap<>(); } - ONamedParam param = namedParams.get(name); - if (param == null) { - param = new ONamedParam(name); - namedParams.put(name, param); - } + ONamedParam param = namedParams.computeIfAbsent(name, ONamedParam::new); return param; } diff --git a/src/main/java/io/ebeaninternal/server/transaction/BeanPersistIdMap.java b/src/main/java/io/ebeaninternal/server/transaction/BeanPersistIdMap.java index 6ecc79bcf..a292edf01 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/BeanPersistIdMap.java +++ b/src/main/java/io/ebeaninternal/server/transaction/BeanPersistIdMap.java @@ -39,11 +39,7 @@ public final class BeanPersistIdMap { private BeanPersistIds getPersistIds(BeanDescriptor desc) { String beanType = desc.getFullName(); - BeanPersistIds r = beanMap.get(beanType); - if (r == null) { - r = new BeanPersistIds(desc); - beanMap.put(beanType, r); - } + BeanPersistIds r = beanMap.computeIfAbsent(beanType, k -> new BeanPersistIds(desc)); return r; } diff --git a/src/main/java/io/ebeaninternal/server/transaction/BulkEventListenerMap.java b/src/main/java/io/ebeaninternal/server/transaction/BulkEventListenerMap.java index 65c2755ba..86a6428b7 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/BulkEventListenerMap.java +++ b/src/main/java/io/ebeaninternal/server/transaction/BulkEventListenerMap.java @@ -38,11 +38,7 @@ public class BulkEventListenerMap { private void register(String tableName, BulkTableEventListener l) { String upperTableName = tableName.trim().toUpperCase(); - Entry entry = map.get(upperTableName); - if (entry == null) { - entry = new Entry(); - map.put(upperTableName, entry); - } + Entry entry = map.computeIfAbsent(upperTableName, k -> new Entry()); entry.add(l); } diff --git a/src/main/java/io/ebeaninternal/server/transaction/DeleteByIdMap.java b/src/main/java/io/ebeaninternal/server/transaction/DeleteByIdMap.java index e0d9bdf90..f92691cde 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/DeleteByIdMap.java +++ b/src/main/java/io/ebeaninternal/server/transaction/DeleteByIdMap.java @@ -68,11 +68,7 @@ public final class DeleteByIdMap { private BeanPersistIds getPersistIds(BeanDescriptor desc) { String beanType = desc.getFullName(); - BeanPersistIds r = beanMap.get(beanType); - if (r == null) { - r = new BeanPersistIds(desc); - beanMap.put(beanType, r); - } + BeanPersistIds r = beanMap.computeIfAbsent(beanType, k -> new BeanPersistIds(desc)); return r; } diff --git a/src/main/java/io/ebeaninternal/server/transaction/TransactionMap.java b/src/main/java/io/ebeaninternal/server/transaction/TransactionMap.java index d5cc325d0..479967fbc 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/TransactionMap.java +++ b/src/main/java/io/ebeaninternal/server/transaction/TransactionMap.java @@ -4,6 +4,7 @@ import io.ebeaninternal.api.SpiTransaction; import javax.persistence.PersistenceException; import java.util.HashMap; +import java.util.Map; /** @@ -14,7 +15,7 @@ public class TransactionMap { /** * Map of State by serverName. */ - private final HashMap map = new HashMap<>(); + private final Map map = new HashMap<>(); @Override public String toString() { @@ -38,11 +39,7 @@ public class TransactionMap { */ public State getStateWithCreate(String serverName) { - State state = map.get(serverName); - if (state == null) { - state = new State(); - map.put(serverName, state); - } + State state = map.computeIfAbsent(serverName, k -> new State()); return state; }