Make dynamic maps return empty immutable collections instead of throwing

This commit is contained in:
embeddedt 2024-01-12 15:28:34 -05:00
parent 6fa3e64210
commit 03e7df5308
2 changed files with 10 additions and 6 deletions

View File

@ -2,8 +2,11 @@ package org.embeddedt.modernfix.util;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.IntSet; import it.unimi.dsi.fastutil.ints.IntSet;
import it.unimi.dsi.fastutil.ints.IntSets;
import it.unimi.dsi.fastutil.objects.ObjectCollection; import it.unimi.dsi.fastutil.objects.ObjectCollection;
import it.unimi.dsi.fastutil.objects.ObjectLists;
import it.unimi.dsi.fastutil.objects.ObjectSet; import it.unimi.dsi.fastutil.objects.ObjectSet;
import it.unimi.dsi.fastutil.objects.ObjectSets;
import java.util.Map; import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
@ -15,17 +18,17 @@ public class DynamicInt2ObjectMap<V> extends DynamicMap<Integer, V> implements I
@Override @Override
public IntSet keySet() { public IntSet keySet() {
throw new UnsupportedOperationException(); return IntSets.EMPTY_SET;
} }
@Override @Override
public ObjectCollection<V> values() { public ObjectCollection<V> values() {
throw new UnsupportedOperationException(); return ObjectLists.emptyList();
} }
@Override @Override
public ObjectSet<Map.Entry<Integer, V>> entrySet() { public ObjectSet<Map.Entry<Integer, V>> entrySet() {
throw new UnsupportedOperationException(); return ObjectSets.emptySet();
} }
@Override @Override

View File

@ -4,6 +4,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.Collection; import java.util.Collection;
import java.util.Collections;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.function.Function; import java.util.function.Function;
@ -64,18 +65,18 @@ public class DynamicMap<K, V> implements Map<K, V> {
@NotNull @NotNull
@Override @Override
public Set<K> keySet() { public Set<K> keySet() {
throw new UnsupportedOperationException(); return Collections.emptySet();
} }
@NotNull @NotNull
@Override @Override
public Collection<V> values() { public Collection<V> values() {
throw new UnsupportedOperationException(); return Collections.emptyList();
} }
@NotNull @NotNull
@Override @Override
public Set<Entry<K, V>> entrySet() { public Set<Entry<K, V>> entrySet() {
throw new UnsupportedOperationException(); return Collections.emptySet();
} }
} }