From 2ad93ad41a67e1eebe90f0633e96be34793023b7 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Wed, 14 Aug 2024 11:43:45 +0200 Subject: [PATCH] (*) Clean up --- .../java/nu/marginalia/util/QueryParams.java | 1 - .../java/nu/marginalia/util/StringPool.java | 70 ------------------- 2 files changed, 71 deletions(-) delete mode 100644 code/common/model/java/nu/marginalia/util/StringPool.java diff --git a/code/common/model/java/nu/marginalia/util/QueryParams.java b/code/common/model/java/nu/marginalia/util/QueryParams.java index ce970d2f..1869c102 100644 --- a/code/common/model/java/nu/marginalia/util/QueryParams.java +++ b/code/common/model/java/nu/marginalia/util/QueryParams.java @@ -10,7 +10,6 @@ import java.util.StringJoiner; public class QueryParams { - @Nullable public static String queryParamsSanitizer(String path, @Nullable String queryParams) { if (queryParams == null) { diff --git a/code/common/model/java/nu/marginalia/util/StringPool.java b/code/common/model/java/nu/marginalia/util/StringPool.java deleted file mode 100644 index 6d7ea8b5..00000000 --- a/code/common/model/java/nu/marginalia/util/StringPool.java +++ /dev/null @@ -1,70 +0,0 @@ -package nu.marginalia.util; - -import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.Objects; - -public class StringPool { - - private final HashMap words; - private final Object2LongOpenHashMap ages; - private final int maxCap; - - long idx; - - private StringPool(int capacity, int maxCap) { - this.ages = new Object2LongOpenHashMap<>(capacity); - this.words = new HashMap<>(capacity); - this.maxCap = maxCap; - } - - public static StringPool create(int capacity) { - return new StringPool(capacity, capacity * 10); - } - - public String internalize(String str) { - prune(); - - final String ret = words.putIfAbsent(str, str); - ages.put(ret, idx++); - - return Objects.requireNonNullElse(ret, str); - } - - public String[] internalize(String[] str) { - - for (int i = 0; i < str.length; i++) { - str[i] = internalize(str[i]); - } - - return str; - } - - public void prune() { - - if (words.size() < maxCap) - return; - - long[] ageValues = ages.values().toLongArray(); - Arrays.sort(ageValues); - - long cutoff = ageValues[ageValues.length - maxCap / 10]; - - words.clear(); - ages.forEach((word, cnt) -> { - if (cnt >= cutoff) { - words.put(word, word); - } - }); - ages.clear(); - words.forEach((w,w2) -> { - ages.put(w, idx); - }); - } - - public void flush() { - words.clear(); - } -}