From e756953828fa49b36b3b2e3992cad70b3f359e59 Mon Sep 17 00:00:00 2001 From: Astrash Date: Fri, 18 Oct 2024 17:49:07 +1100 Subject: [PATCH] Use singleton impl for map based probability collections --- .../terra/config/loaders/ProbabilityCollectionLoader.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/ProbabilityCollectionLoader.java b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/ProbabilityCollectionLoader.java index 6a9e10bd0..13b44b6bc 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/ProbabilityCollectionLoader.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/config/loaders/ProbabilityCollectionLoader.java @@ -43,6 +43,10 @@ public class ProbabilityCollectionLoader implements TypeLoader map = (Map) o; + if (map.size() == 1) { + Object onlyKey = map.keySet().iterator().next(); + return new ProbabilityCollection.Singleton<>(configLoader.loadType(generic, onlyKey, depthTracker)); + } for(Map.Entry entry : map.entrySet()) { collection.add(configLoader.loadType(generic, entry.getKey(), depthTracker.entry((String) entry.getKey())), configLoader.loadType(Integer.class, entry.getValue(), depthTracker.entry((String) entry.getKey()))); @@ -50,7 +54,7 @@ public class ProbabilityCollectionLoader implements TypeLoader> map = (List>) o; if(map.size() == 1) { - Map entry = map.get(0); + Map entry = map.getFirst(); if(entry.size() == 1) { for(Object value : entry.keySet()) { return new ProbabilityCollection.Singleton<>(configLoader.loadType(generic, value, depthTracker));