From 8deb113a5e1af96b01e5e01a8f00d39761201e07 Mon Sep 17 00:00:00 2001 From: Sean Gilligan Date: Tue, 26 May 2020 13:19:07 -0700 Subject: [PATCH] Networks: Replace usage of Guava ImmutableSet with Collections.unmodifiableSet(). --- .../java/org/bitcoinj/params/Networks.java | 45 +++++++++++-------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/params/Networks.java b/core/src/main/java/org/bitcoinj/params/Networks.java index dd33fcac0..fc6b429fd 100644 --- a/core/src/main/java/org/bitcoinj/params/Networks.java +++ b/core/src/main/java/org/bitcoinj/params/Networks.java @@ -17,10 +17,11 @@ package org.bitcoinj.params; import org.bitcoinj.core.NetworkParameters; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; +import java.util.Arrays; import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; import java.util.Set; /** @@ -32,7 +33,7 @@ import java.util.Set; */ public class Networks { /** Registered networks */ - private static Set networks = ImmutableSet.of(TestNet3Params.get(), MainNetParams.get()); + private static Set networks = unmodifiableSet(TestNet3Params.get(), MainNetParams.get()); public static Set get() { return networks; @@ -44,7 +45,7 @@ public class Networks { * @param network Network to register/add. */ public static void register(NetworkParameters network) { - register(Lists.newArrayList(network)); + register(Collections.singleton(network)); } /** @@ -53,11 +54,8 @@ public class Networks { * * @param networks Networks to register/add. */ - public static void register(Collection networks) { - ImmutableSet.Builder builder = ImmutableSet.builder(); - builder.addAll(Networks.networks); - builder.addAll(networks); - Networks.networks = builder.build(); + public static void register(Collection networks) { + Networks.networks = combinedSet(Networks.networks, networks); } /** @@ -66,14 +64,25 @@ public class Networks { * @param network Network type to unregister/remove. */ public static void unregister(NetworkParameters network) { - if (networks.contains(network)) { - ImmutableSet.Builder builder = ImmutableSet.builder(); - for (NetworkParameters parameters : networks) { - if (parameters.equals(network)) - continue; - builder.add(parameters); - } - networks = builder.build(); - } + Networks.networks = removeFromSet(networks, network); + } + + // Create an unmodifiable set of NetworkParameters from an array/varargs + private static Set unmodifiableSet(NetworkParameters... ts) { + return Collections.unmodifiableSet(new HashSet<>(Arrays.asList(ts))); + } + + // Create an unmodifiable set by combining two collections + private static Set combinedSet(Collection a, Collection b) { + Set tempSet = new HashSet<>(a); + tempSet.addAll(b); + return Collections.unmodifiableSet(tempSet); + } + + // Create a new unmodifiable set by removing an item from an existing set + private static Set removeFromSet(Set set, T item) { + Set tempSet = new HashSet<>(set); + tempSet.remove(item); + return Collections.unmodifiableSet(tempSet); } }