From: "Enrico Weigelt, metux IT consult" <enrico.weig...@gr13.net>

---
 .../gui/panel/report/ReportCompactColonyPanel.java | 31 ++++++++++++++--------
 .../sf/freecol/common/util/CollectionUtils.java    | 15 -----------
 2 files changed, 20 insertions(+), 26 deletions(-)

diff --git 
a/src/net/sf/freecol/client/gui/panel/report/ReportCompactColonyPanel.java 
b/src/net/sf/freecol/client/gui/panel/report/ReportCompactColonyPanel.java
index 77e7789262a..e2f0598061f 100644
--- a/src/net/sf/freecol/client/gui/panel/report/ReportCompactColonyPanel.java
+++ b/src/net/sf/freecol/client/gui/panel/report/ReportCompactColonyPanel.java
@@ -30,7 +30,6 @@ import java.util.Map.Entry;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Set;
-import java.util.function.BinaryOperator;
 import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
@@ -99,18 +98,28 @@ public final class ReportCompactColonyPanel extends 
ReportPanel
             CONSUMPTION, // Positive production but could consume more
         };
 
-        public static BinaryOperator<GoodsProduction> 
goodsProductionAccumulator
-            = (g1, g2) -> {
-                g1.amount += g2.amount;
-                g1.status = (g1.status == ProductionStatus.NONE
-                        && g2.status == ProductionStatus.NONE)
+        public static void 
accumulateGoodsProduction(Map<GoodsType,GoodsProduction> map, GoodsType key, 
GoodsProduction value) {
+            if (!map.containsKey(key)) {
+                map.put(key, value);
+                return;
+            }
+
+            GoodsProduction old = map.get(key);
+            old.amount += value.amount;
+            old.status = (old.status == ProductionStatus.NONE
+                        && value.status == ProductionStatus.NONE)
                     ? ProductionStatus.NONE
-                    : (g1.amount < 0) ? ProductionStatus.BAD
-                    : (g1.amount > 0) ? ProductionStatus.GOOD
+                    : (old.amount < 0) ? ProductionStatus.BAD
+                    : (old.amount > 0) ? ProductionStatus.GOOD
                     : ProductionStatus.ZERO;
-                g1.extra = 0;
-                return g1;
-            };
+            old.extra = 0;
+            map.put(key, old);
+        }
+
+        public static void 
accumulateGoodsProduction(Map<GoodsType,GoodsProduction> map, 
Map<GoodsType,GoodsProduction> src) {
+            for (Map.Entry<GoodsType,GoodsProduction> e : src.entrySet())
+                accumulateGoodsProduction(map, e.getKey(), e.getValue());
+        }
 
         /** Container class for goods production. */
         public static class GoodsProduction {
diff --git a/src/net/sf/freecol/common/util/CollectionUtils.java 
b/src/net/sf/freecol/common/util/CollectionUtils.java
index c04755bde02..45cd68c77c1 100644
--- a/src/net/sf/freecol/common/util/CollectionUtils.java
+++ b/src/net/sf/freecol/common/util/CollectionUtils.java
@@ -151,21 +151,6 @@ public class CollectionUtils {
         }
     }
 
-    public static <K,V> void accumulateToMap(Map<K,V> map, K key, V value,
-                                             BinaryOperator<V> accumulator) {
-        if (map.containsKey(key)) {
-            map.put(key, accumulator.apply(map.get(key), value));
-        } else {
-            map.put(key, value);
-        }
-    }
-
-    public static <K,V> void accumulateMap(Map<K,V> map1, Map<K,V> map2,
-                                           BinaryOperator<V> accumulator) {
-        forEachMapEntry(map2,
-            e -> accumulateToMap(map1, e.getKey(), e.getValue(), accumulator));
-    }
-
     /**
      * Increment the count in an integer valued map for a given key.
      *
-- 
2.11.0.rc0.7.gbe5a750


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Freecol-developers mailing list
Freecol-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freecol-developers

Reply via email to