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

---
 .../sf/freecol/client/gui/panel/PlayersTable.java  | 11 ++++++----
 src/net/sf/freecol/common/model/Game.java          | 17 +++++++++------
 src/net/sf/freecol/common/model/Nation.java        |  7 ++++--
 src/net/sf/freecol/common/model/NationOptions.java | 12 ++++++++---
 src/net/sf/freecol/common/model/Specification.java | 25 ++++++++++++----------
 5 files changed, 45 insertions(+), 27 deletions(-)

diff --git a/src/net/sf/freecol/client/gui/panel/PlayersTable.java 
b/src/net/sf/freecol/client/gui/panel/PlayersTable.java
index bf5524512a7..50b3b835959 100644
--- a/src/net/sf/freecol/client/gui/panel/PlayersTable.java
+++ b/src/net/sf/freecol/client/gui/panel/PlayersTable.java
@@ -26,10 +26,10 @@ import java.awt.event.ActionListener;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.function.Predicate;
 
 import javax.swing.AbstractCellEditor;
 import javax.swing.DefaultCellEditor;
@@ -445,9 +445,12 @@ public final class PlayersTable extends JTable {
             this.preGameController = preGameController;
             this.nationOptions = nationOptions;
             this.thisPlayer = thisPlayer;
-            final Predicate<Nation> nationPred = n -> !n.isUnknownEnemy()
-                && nationOptions.getNations().get(n) != null;
-            this.nations = transform(spec.getNations(), nationPred);
+
+            this.nations = new ArrayList<>();
+            for (Nation n : spec.getNations())
+                if (!n.isUnknownEnemy() && nationOptions.getNations().get(n) 
!= null)
+                    this.nations.add(n);
+
             for (Nation n : this.nations) this.nationMap.put(n, null);
             this.nationMap.put(thisPlayer.getNation(), thisPlayer);
         }
diff --git a/src/net/sf/freecol/common/model/Game.java 
b/src/net/sf/freecol/common/model/Game.java
index c98265b33e8..7a2eab3e712 100644
--- a/src/net/sf/freecol/common/model/Game.java
+++ b/src/net/sf/freecol/common/model/Game.java
@@ -858,10 +858,11 @@ public class Game extends FreeColGameObject {
      * @return A vacant {@code Nation} or null if none found.
      */
     public Nation getVacantNation() {
-        Entry<Nation, NationState> entry
-            = find(nationOptions.getNations().entrySet(),
-                   matchKey(NationState.AVAILABLE, Entry::getValue));
-        return (entry == null) ? null : entry.getKey();
+        for (Entry<Nation, NationState> e : 
nationOptions.getNations().entrySet())
+            if (e.getValue() == NationState.AVAILABLE)
+                return e.getKey();
+
+        return null;
     }
 
     /**
@@ -870,9 +871,11 @@ public class Game extends FreeColGameObject {
      * @return A list of available {@code Nation}s.
      */
     public final List<Nation> getVacantNations() {
-        return transform(nationOptions.getNations().entrySet(),
-                         matchKey(NationState.AVAILABLE, Entry::getValue),
-                         Entry::getKey);
+        List<Nation> result = new ArrayList<>();
+        for (Entry<Nation, NationState> e : 
nationOptions.getNations().entrySet())
+            if (NationState.AVAILABLE == e.getValue())
+                result.add(e.getKey());
+        return result;
     }
 
     /**
diff --git a/src/net/sf/freecol/common/model/Nation.java 
b/src/net/sf/freecol/common/model/Nation.java
index 61126b5d6e6..efbaa55b448 100644
--- a/src/net/sf/freecol/common/model/Nation.java
+++ b/src/net/sf/freecol/common/model/Nation.java
@@ -175,8 +175,11 @@ public class Nation extends FreeColSpecObjectType {
      * @return The rebel {@code Nation}, or null if not applicable.
      */
     public final Nation getRebelNation() {
-        return find(getSpecification().getEuropeanNations(),
-                    matchKey(this, Nation::getREFNation));
+        for (Nation n : getSpecification().getEuropeanNations())
+            if (n == this)
+                return n;
+
+        return null;
     }
 
     /**
diff --git a/src/net/sf/freecol/common/model/NationOptions.java 
b/src/net/sf/freecol/common/model/NationOptions.java
index 977df9cbeb1..c86948305de 100644
--- a/src/net/sf/freecol/common/model/NationOptions.java
+++ b/src/net/sf/freecol/common/model/NationOptions.java
@@ -318,9 +318,15 @@ public class NationOptions extends FreeColSpecObject {
         StringBuilder sb = new StringBuilder(128);
         sb.append(NATIONAL_ADVANTAGES_TAG).append(": ")
             .append(nationalAdvantages).append('\n');
-        forEachMapEntry(nations,
-            e -> sb.append(' ').append(e.getKey().getId())
-                   .append(' ').append(e.getValue()).append('\n'));
+
+        for (Map.Entry<Nation, NationState> e : nations.entrySet()) {
+            sb.append(' ');
+            sb.append(e.getKey().getId());
+            sb.append(' ');
+            sb.append(e.getValue());
+            sb.append('\n');
+        }
+
         return sb.toString();
     }
 }
diff --git a/src/net/sf/freecol/common/model/Specification.java 
b/src/net/sf/freecol/common/model/Specification.java
index 6cf037897c5..4154bc6b0c8 100644
--- a/src/net/sf/freecol/common/model/Specification.java
+++ b/src/net/sf/freecol/common/model/Specification.java
@@ -548,7 +548,11 @@ public final class Specification {
         nationTypes.clear();
         nationTypes.addAll(indianNationTypes);
         nationTypes.addAll(europeanNationTypes);
-        REFNationTypes.addAll(transform(europeanNationTypes, 
NationType::isREF));
+
+        for (EuropeanNationType nt : europeanNationTypes)
+            if (nt.isREF())
+                REFNationTypes.add(nt);
+
         europeanNationTypes.removeAll(REFNationTypes);
 
         experts.clear();
@@ -2102,8 +2106,8 @@ public final class Specification {
             });
 
         // Nation FOUND_COLONY -> FOUNDS_COLONIES
-        for (EuropeanNationType ent : transform(europeanNationTypes,
-                nt -> nt.hasAbility(Ability.FOUND_COLONY))) {
+        for (EuropeanNationType ent : europeanNationTypes) {
+            if (!ent.hasAbility(Ability.FOUND_COLONY)) continue;
             ent.removeAbilities(Ability.FOUND_COLONY);
             ent.addAbility(new Ability(Ability.FOUNDS_COLONIES, ent, true));
         }
@@ -2169,10 +2173,9 @@ public final class Specification {
         // ability to have man-o-war.  Older specs used
         // INDEPENDENCE_DECLARED but we can not directly use that or
         // the REF gets access to colonialRegulars.
-        for (NationType ent : transform(europeanNationTypes,
-                nt -> nt.isREF() && 
!nt.hasAbility(Ability.INDEPENDENT_NATION))) {
-            ent.addAbility(new Ability(Ability.INDEPENDENT_NATION));
-        }
+        for (NationType ent : europeanNationTypes)
+            if (ent.isREF() && !ent.hasAbility(Ability.INDEPENDENT_NATION))
+                ent.addAbility(new Ability(Ability.INDEPENDENT_NATION));
 
         // Resource type modifiers had the wrong priority
         forEach(flatten(resourceTypeList, ResourceType::getModifiers), m -> {
@@ -2209,10 +2212,10 @@ public final class Specification {
         }
 
         // European nation type production modifier indexes moved to the spec
-        for (Modifier mod : transform(flatten(europeanNationTypes,
-                    EuropeanNationType::getModifiers), goodsPred)) {
-            mod.setModifierIndex(Modifier.NATION_PRODUCTION_INDEX);
-        }
+        for (EuropeanNationType ent : europeanNationTypes)
+            for (Modifier m : ent.getModifiers())
+                if (allTypes.get(m.getId()) instanceof GoodsType)
+                    m.setModifierIndex(Modifier.NATION_PRODUCTION_INDEX);
 
         // TownHall, Chapel et al now have unattended production types
         // (replacing modifiers).
-- 
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