Java 8: use computeIfAbsent when possible
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/8b097368 Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/8b097368 Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/8b097368 Branch: refs/heads/master Commit: 8b09736870de922b5c0b0b149732ebeacd990437 Parents: 466b327 Author: Vladimir Sitnikov <[email protected]> Authored: Mon Jul 30 23:26:13 2018 +0300 Committer: Vladimir Sitnikov <[email protected]> Committed: Tue Jul 31 00:01:10 2018 +0300 ---------------------------------------------------------------------- .../org/apache/calcite/sql/validate/SqlValidatorImpl.java | 4 +--- core/src/main/java/org/apache/calcite/util/NameMultimap.java | 6 +----- .../test/java/org/apache/calcite/test/MockCatalogReader.java | 7 ++----- .../test/concurrent/ConcurrentTestCommandGenerator.java | 6 +----- 4 files changed, 5 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/8b097368/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java b/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java index 3ea6064..da64cf8 100644 --- a/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java +++ b/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java @@ -4825,9 +4825,7 @@ public class SqlValidatorImpl implements SqlValidatorWithHints { public void setOriginal(SqlNode expr, SqlNode original) { // Don't overwrite the original original. - if (originalExprs.get(expr) == null) { - originalExprs.put(expr, original); - } + originalExprs.putIfAbsent(expr, original); } SqlValidatorNamespace lookupFieldNamespace(RelDataType rowType, String name) { http://git-wip-us.apache.org/repos/asf/calcite/blob/8b097368/core/src/main/java/org/apache/calcite/util/NameMultimap.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/util/NameMultimap.java b/core/src/main/java/org/apache/calcite/util/NameMultimap.java index 5422983..ecab012 100644 --- a/core/src/main/java/org/apache/calcite/util/NameMultimap.java +++ b/core/src/main/java/org/apache/calcite/util/NameMultimap.java @@ -50,11 +50,7 @@ public class NameMultimap<V> { /** Adds an entry to this multimap. */ public void put(String name, V v) { - List<V> list = map.get(name); - if (list == null) { - list = new ArrayList<>(); - map.put(name, list); - } + List<V> list = map.computeIfAbsent(name, k -> new ArrayList<>()); list.add(v); } http://git-wip-us.apache.org/repos/asf/calcite/blob/8b097368/core/src/test/java/org/apache/calcite/test/MockCatalogReader.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/calcite/test/MockCatalogReader.java b/core/src/test/java/org/apache/calcite/test/MockCatalogReader.java index 663a98e..9106524 100644 --- a/core/src/test/java/org/apache/calcite/test/MockCatalogReader.java +++ b/core/src/test/java/org/apache/calcite/test/MockCatalogReader.java @@ -1408,11 +1408,8 @@ public class MockCatalogReader extends CalciteCatalogReader { this.defaultColumnGroup = defaultColumnGroup; for (Ord<CompoundNameColumn> column : Ord.zip(columns)) { nameMap.put(column.e.getName(), column.i); - Map<String, Integer> subMap = groupMap.get(column.e.first); - if (subMap == null) { - subMap = new HashMap<>(); - groupMap.put(column.e.first, subMap); - } + Map<String, Integer> subMap = + groupMap.computeIfAbsent(column.e.first, k -> new HashMap<>()); subMap.put(column.e.second, column.i); } } http://git-wip-us.apache.org/repos/asf/calcite/blob/8b097368/core/src/test/java/org/apache/calcite/test/concurrent/ConcurrentTestCommandGenerator.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/calcite/test/concurrent/ConcurrentTestCommandGenerator.java b/core/src/test/java/org/apache/calcite/test/concurrent/ConcurrentTestCommandGenerator.java index e1c2e4d..5e5f042 100644 --- a/core/src/test/java/org/apache/calcite/test/concurrent/ConcurrentTestCommandGenerator.java +++ b/core/src/test/java/org/apache/calcite/test/concurrent/ConcurrentTestCommandGenerator.java @@ -347,11 +347,7 @@ public class ConcurrentTestCommandGenerator { assert order > 0; TreeMap<Integer, ConcurrentTestCommand> commandMap = - threadMap.get(threadId); - if (commandMap == null) { - commandMap = new TreeMap<Integer, ConcurrentTestCommand>(); - threadMap.put(threadId, commandMap); - } + threadMap.computeIfAbsent(threadId, k -> new TreeMap<>()); // check for duplicate order numbers assert !commandMap.containsKey(order);
