You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/07/10 20:23:29 UTC
[commons-dbcp] 03/03: Use generics in makeMap() and then reuse makeMap()
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-dbcp.git
commit 504e5486bc022718e8107d1ba0ae8f844ffbeced
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Jul 10 16:23:21 2022 -0400
Use generics in makeMap() and then reuse makeMap()
Refactor duplication
---
.../dbcp2/datasources/PerUserPoolDataSource.java | 249 ++++++---------------
1 file changed, 68 insertions(+), 181 deletions(-)
diff --git a/src/main/java/org/apache/commons/dbcp2/datasources/PerUserPoolDataSource.java b/src/main/java/org/apache/commons/dbcp2/datasources/PerUserPoolDataSource.java
index e5ce841d..36449375 100644
--- a/src/main/java/org/apache/commons/dbcp2/datasources/PerUserPoolDataSource.java
+++ b/src/main/java/org/apache/commons/dbcp2/datasources/PerUserPoolDataSource.java
@@ -675,14 +675,12 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
return ref;
}
- private Map<String, Duration> makeMap(final Map<String, Duration> currentMap, final Map<String, Duration> newMap) {
- if (currentMap == null) {
- return new HashMap<>(newMap);
+ <K, V> Map<K, V> put(Map<K, V> map, final K key, final V value) {
+ if (map == null) {
+ map = createMap();
}
- currentMap.clear();
- currentMap.putAll(newMap);
- return currentMap;
-
+ map.put(key, value);
+ return map;
}
/**
@@ -745,14 +743,18 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
}
}
- void setPerUserBlockWhenExhausted(final Map<String, Boolean> userDefaultBlockWhenExhausted) {
- assertInitializationAllowed();
- if (perUserBlockWhenExhausted == null) {
- perUserBlockWhenExhausted = createMap();
- } else {
- perUserBlockWhenExhausted.clear();
+ private <K, V> Map<K, V> replaceAll(final Map<K, V> currentMap, final Map<K, V> newMap) {
+ if (currentMap == null) {
+ return new HashMap<>(newMap);
}
- perUserBlockWhenExhausted.putAll(userDefaultBlockWhenExhausted);
+ currentMap.clear();
+ currentMap.putAll(newMap);
+ return currentMap;
+ }
+
+ void setPerUserBlockWhenExhausted(final Map<String, Boolean> newMap) {
+ assertInitializationAllowed();
+ perUserBlockWhenExhausted = replaceAll(perUserBlockWhenExhausted, newMap);
}
/**
@@ -765,20 +767,12 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserBlockWhenExhausted(final String userName, final Boolean value) {
assertInitializationAllowed();
- if (perUserBlockWhenExhausted == null) {
- perUserBlockWhenExhausted = createMap();
- }
- perUserBlockWhenExhausted.put(userName, value);
+ perUserBlockWhenExhausted = put(perUserBlockWhenExhausted, userName, value);
}
- void setPerUserDefaultAutoCommit(final Map<String, Boolean> userDefaultAutoCommit) {
+ void setPerUserDefaultAutoCommit(final Map<String, Boolean> newMap) {
assertInitializationAllowed();
- if (perUserDefaultAutoCommit == null) {
- perUserDefaultAutoCommit = createMap();
- } else {
- perUserDefaultAutoCommit.clear();
- }
- perUserDefaultAutoCommit.putAll(userDefaultAutoCommit);
+ perUserDefaultAutoCommit = replaceAll(perUserDefaultAutoCommit, newMap);
}
/**
@@ -791,20 +785,13 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserDefaultAutoCommit(final String userName, final Boolean value) {
assertInitializationAllowed();
- if (perUserDefaultAutoCommit == null) {
- perUserDefaultAutoCommit = createMap();
- }
- perUserDefaultAutoCommit.put(userName, value);
+ perUserDefaultAutoCommit = put(perUserDefaultAutoCommit, userName, value);
+
}
- void setPerUserDefaultReadOnly(final Map<String, Boolean> userDefaultReadOnly) {
+ void setPerUserDefaultReadOnly(final Map<String, Boolean> newMap) {
assertInitializationAllowed();
- if (perUserDefaultReadOnly == null) {
- perUserDefaultReadOnly = createMap();
- } else {
- perUserDefaultReadOnly.clear();
- }
- perUserDefaultReadOnly.putAll(userDefaultReadOnly);
+ perUserDefaultReadOnly = replaceAll(perUserDefaultReadOnly, newMap);
}
/**
@@ -817,20 +804,13 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserDefaultReadOnly(final String userName, final Boolean value) {
assertInitializationAllowed();
- if (perUserDefaultReadOnly == null) {
- perUserDefaultReadOnly = createMap();
- }
- perUserDefaultReadOnly.put(userName, value);
+ perUserDefaultReadOnly = put(perUserDefaultReadOnly, userName, value);
+
}
- void setPerUserDefaultTransactionIsolation(final Map<String, Integer> userDefaultTransactionIsolation) {
+ void setPerUserDefaultTransactionIsolation(final Map<String, Integer> newMap) {
assertInitializationAllowed();
- if (perUserDefaultTransactionIsolation == null) {
- perUserDefaultTransactionIsolation = createMap();
- } else {
- perUserDefaultTransactionIsolation.clear();
- }
- perUserDefaultTransactionIsolation.putAll(userDefaultTransactionIsolation);
+ perUserDefaultTransactionIsolation = replaceAll(perUserDefaultTransactionIsolation, newMap);
}
/**
@@ -844,15 +824,13 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserDefaultTransactionIsolation(final String userName, final Integer value) {
assertInitializationAllowed();
- if (perUserDefaultTransactionIsolation == null) {
- perUserDefaultTransactionIsolation = createMap();
- }
- perUserDefaultTransactionIsolation.put(userName, value);
+ perUserDefaultTransactionIsolation = put(perUserDefaultTransactionIsolation, userName, value);
+
}
void setPerUserDurationBetweenEvictionRuns(final Map<String, Duration> newMap) {
assertInitializationAllowed();
- perUserDurationBetweenEvictionRuns = makeMap(perUserDurationBetweenEvictionRuns, newMap);
+ perUserDurationBetweenEvictionRuns = replaceAll(perUserDurationBetweenEvictionRuns, newMap);
}
/**
@@ -867,20 +845,13 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserDurationBetweenEvictionRuns(final String userName, final Duration value) {
assertInitializationAllowed();
- if (perUserDurationBetweenEvictionRuns == null) {
- perUserDurationBetweenEvictionRuns = createMap();
- }
- perUserDurationBetweenEvictionRuns.put(userName, value);
+ perUserDurationBetweenEvictionRuns = put(perUserDurationBetweenEvictionRuns, userName, value);
+
}
- void setPerUserEvictionPolicyClassName(final Map<String, String> userDefaultEvictionPolicyClassName) {
+ void setPerUserEvictionPolicyClassName(final Map<String, String> newMap) {
assertInitializationAllowed();
- if (perUserEvictionPolicyClassName == null) {
- perUserEvictionPolicyClassName = createMap();
- } else {
- perUserEvictionPolicyClassName.clear();
- }
- perUserEvictionPolicyClassName.putAll(userDefaultEvictionPolicyClassName);
+ perUserEvictionPolicyClassName = replaceAll(perUserEvictionPolicyClassName, newMap);
}
/**
@@ -894,20 +865,12 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserEvictionPolicyClassName(final String userName, final String value) {
assertInitializationAllowed();
- if (perUserEvictionPolicyClassName == null) {
- perUserEvictionPolicyClassName = createMap();
- }
- perUserEvictionPolicyClassName.put(userName, value);
+ perUserEvictionPolicyClassName = put(perUserEvictionPolicyClassName, userName, value);
}
- void setPerUserLifo(final Map<String, Boolean> userDefaultLifo) {
+ void setPerUserLifo(final Map<String, Boolean> newMap) {
assertInitializationAllowed();
- if (perUserLifo == null) {
- perUserLifo = createMap();
- } else {
- perUserLifo.clear();
- }
- perUserLifo.putAll(userDefaultLifo);
+ perUserLifo = replaceAll(perUserLifo, newMap);
}
/**
@@ -920,20 +883,12 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserLifo(final String userName, final Boolean value) {
assertInitializationAllowed();
- if (perUserLifo == null) {
- perUserLifo = createMap();
- }
- perUserLifo.put(userName, value);
+ perUserLifo = put(perUserLifo, userName, value);
}
- void setPerUserMaxIdle(final Map<String, Integer> userDefaultMaxIdle) {
+ void setPerUserMaxIdle(final Map<String, Integer> newMap) {
assertInitializationAllowed();
- if (perUserMaxIdle == null) {
- perUserMaxIdle = createMap();
- } else {
- perUserMaxIdle.clear();
- }
- perUserMaxIdle.putAll(userDefaultMaxIdle);
+ perUserMaxIdle = replaceAll(perUserMaxIdle, newMap);
}
/**
@@ -946,20 +901,12 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserMaxIdle(final String userName, final Integer value) {
assertInitializationAllowed();
- if (perUserMaxIdle == null) {
- perUserMaxIdle = createMap();
- }
- perUserMaxIdle.put(userName, value);
+ perUserMaxIdle = put(perUserMaxIdle, userName, value);
}
- void setPerUserMaxTotal(final Map<String, Integer> userDefaultMaxTotal) {
+ void setPerUserMaxTotal(final Map<String, Integer> newMap) {
assertInitializationAllowed();
- if (perUserMaxTotal == null) {
- perUserMaxTotal = createMap();
- } else {
- perUserMaxTotal.clear();
- }
- perUserMaxTotal.putAll(userDefaultMaxTotal);
+ perUserMaxTotal = replaceAll(perUserMaxTotal, newMap);
}
/**
@@ -972,10 +919,7 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserMaxTotal(final String userName, final Integer value) {
assertInitializationAllowed();
- if (perUserMaxTotal == null) {
- perUserMaxTotal = createMap();
- }
- perUserMaxTotal.put(userName, value);
+ perUserMaxTotal = put(perUserMaxTotal, userName, value);
}
/**
@@ -989,15 +933,12 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserMaxWait(final String userName, final Duration value) {
assertInitializationAllowed();
- if (perUserMaxWaitDuration == null) {
- perUserMaxWaitDuration = createMap();
- }
- perUserMaxWaitDuration.put(userName, value);
+ perUserMaxWaitDuration = put(perUserMaxWaitDuration, userName, value);
}
void setPerUserMaxWaitDuration(final Map<String, Duration> newMap) {
assertInitializationAllowed();
- perUserMaxWaitDuration = makeMap(perUserMaxWaitDuration, newMap);
+ perUserMaxWaitDuration = replaceAll(perUserMaxWaitDuration, newMap);
}
void setPerUserMaxWaitMillis(final Map<String, Long> newMap) {
@@ -1021,7 +962,7 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
void setPerUserMinEvictableIdle(final Map<String, Duration> newMap) {
assertInitializationAllowed();
- perUserMinEvictableIdleDuration = makeMap(perUserMinEvictableIdleDuration, newMap);
+ perUserMinEvictableIdleDuration = replaceAll(perUserMinEvictableIdleDuration, newMap);
}
/**
@@ -1036,10 +977,7 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserMinEvictableIdle(final String userName, final Duration value) {
assertInitializationAllowed();
- if (perUserMinEvictableIdleDuration == null) {
- perUserMinEvictableIdleDuration = createMap();
- }
- perUserMinEvictableIdleDuration.put(userName, value);
+ perUserMinEvictableIdleDuration = put(perUserMinEvictableIdleDuration, userName, value);
}
/**
@@ -1057,14 +995,9 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
setPerUserMinEvictableIdle(userName, toDurationOrNull(value));
}
- void setPerUserMinIdle(final Map<String, Integer> userDefaultMinIdle) {
+ void setPerUserMinIdle(final Map<String, Integer> newMap) {
assertInitializationAllowed();
- if (perUserMinIdle == null) {
- perUserMinIdle = createMap();
- } else {
- perUserMinIdle.clear();
- }
- perUserMinIdle.putAll(userDefaultMinIdle);
+ perUserMinIdle = replaceAll(perUserMinIdle, newMap);
}
/**
@@ -1077,20 +1010,12 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserMinIdle(final String userName, final Integer value) {
assertInitializationAllowed();
- if (perUserMinIdle == null) {
- perUserMinIdle = createMap();
- }
- perUserMinIdle.put(userName, value);
+ perUserMinIdle = put(perUserMinIdle, userName, value);
}
- void setPerUserNumTestsPerEvictionRun(final Map<String, Integer> userDefaultNumTestsPerEvictionRun) {
+ void setPerUserNumTestsPerEvictionRun(final Map<String, Integer> newMap) {
assertInitializationAllowed();
- if (perUserNumTestsPerEvictionRun == null) {
- perUserNumTestsPerEvictionRun = createMap();
- } else {
- perUserNumTestsPerEvictionRun.clear();
- }
- perUserNumTestsPerEvictionRun.putAll(userDefaultNumTestsPerEvictionRun);
+ perUserNumTestsPerEvictionRun = replaceAll(perUserNumTestsPerEvictionRun, newMap);
}
/**
@@ -1104,15 +1029,12 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserNumTestsPerEvictionRun(final String userName, final Integer value) {
assertInitializationAllowed();
- if (perUserNumTestsPerEvictionRun == null) {
- perUserNumTestsPerEvictionRun = createMap();
- }
- perUserNumTestsPerEvictionRun.put(userName, value);
+ perUserNumTestsPerEvictionRun = put(perUserNumTestsPerEvictionRun, userName, value);
}
void setPerUserSoftMinEvictableIdle(final Map<String, Duration> newMap) {
assertInitializationAllowed();
- perUserSoftMinEvictableIdleDuration = makeMap(perUserSoftMinEvictableIdleDuration, newMap);
+ perUserSoftMinEvictableIdleDuration = replaceAll(perUserSoftMinEvictableIdleDuration, newMap);
}
/**
@@ -1127,10 +1049,7 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserSoftMinEvictableIdle(final String userName, final Duration value) {
assertInitializationAllowed();
- if (perUserSoftMinEvictableIdleDuration == null) {
- perUserSoftMinEvictableIdleDuration = createMap();
- }
- perUserSoftMinEvictableIdleDuration.put(userName, value);
+ perUserSoftMinEvictableIdleDuration = put(perUserSoftMinEvictableIdleDuration, userName, value);
}
/**
@@ -1148,14 +1067,9 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
setPerUserSoftMinEvictableIdle(userName, toDurationOrNull(value));
}
- void setPerUserTestOnBorrow(final Map<String, Boolean> userDefaultTestOnBorrow) {
+ void setPerUserTestOnBorrow(final Map<String, Boolean> newMap) {
assertInitializationAllowed();
- if (perUserTestOnBorrow == null) {
- perUserTestOnBorrow = createMap();
- } else {
- perUserTestOnBorrow.clear();
- }
- perUserTestOnBorrow.putAll(userDefaultTestOnBorrow);
+ perUserTestOnBorrow = replaceAll(perUserTestOnBorrow, newMap);
}
/**
@@ -1168,20 +1082,12 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserTestOnBorrow(final String userName, final Boolean value) {
assertInitializationAllowed();
- if (perUserTestOnBorrow == null) {
- perUserTestOnBorrow = createMap();
- }
- perUserTestOnBorrow.put(userName, value);
+ perUserTestOnBorrow = put(perUserTestOnBorrow, userName, value);
}
- void setPerUserTestOnCreate(final Map<String, Boolean> userDefaultTestOnCreate) {
+ void setPerUserTestOnCreate(final Map<String, Boolean> newMap) {
assertInitializationAllowed();
- if (perUserTestOnCreate == null) {
- perUserTestOnCreate = createMap();
- } else {
- perUserTestOnCreate.clear();
- }
- perUserTestOnCreate.putAll(userDefaultTestOnCreate);
+ perUserTestOnCreate = replaceAll(perUserTestOnCreate, newMap);
}
/**
@@ -1194,20 +1100,12 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserTestOnCreate(final String userName, final Boolean value) {
assertInitializationAllowed();
- if (perUserTestOnCreate == null) {
- perUserTestOnCreate = createMap();
- }
- perUserTestOnCreate.put(userName, value);
+ perUserTestOnCreate = put(perUserTestOnCreate, userName, value);
}
- void setPerUserTestOnReturn(final Map<String, Boolean> userDefaultTestOnReturn) {
+ void setPerUserTestOnReturn(final Map<String, Boolean> newMap) {
assertInitializationAllowed();
- if (perUserTestOnReturn == null) {
- perUserTestOnReturn = createMap();
- } else {
- perUserTestOnReturn.clear();
- }
- perUserTestOnReturn.putAll(userDefaultTestOnReturn);
+ perUserTestOnReturn = replaceAll(perUserTestOnReturn, newMap);
}
/**
@@ -1220,20 +1118,12 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserTestOnReturn(final String userName, final Boolean value) {
assertInitializationAllowed();
- if (perUserTestOnReturn == null) {
- perUserTestOnReturn = createMap();
- }
- perUserTestOnReturn.put(userName, value);
+ perUserTestOnReturn = put(perUserTestOnReturn, userName, value);
}
- void setPerUserTestWhileIdle(final Map<String, Boolean> userDefaultTestWhileIdle) {
+ void setPerUserTestWhileIdle(final Map<String, Boolean> newMap) {
assertInitializationAllowed();
- if (perUserTestWhileIdle == null) {
- perUserTestWhileIdle = createMap();
- } else {
- perUserTestWhileIdle.clear();
- }
- perUserTestWhileIdle.putAll(userDefaultTestWhileIdle);
+ perUserTestWhileIdle = replaceAll(perUserTestWhileIdle, newMap);
}
/**
@@ -1246,10 +1136,7 @@ public class PerUserPoolDataSource extends InstanceKeyDataSource {
*/
public void setPerUserTestWhileIdle(final String userName, final Boolean value) {
assertInitializationAllowed();
- if (perUserTestWhileIdle == null) {
- perUserTestWhileIdle = createMap();
- }
- perUserTestWhileIdle.put(userName, value);
+ perUserTestWhileIdle = put(perUserTestWhileIdle, userName, value);
}
/**