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);

Reply via email to