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 <[email protected]> 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); } /**
