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

---
 .../sf/freecol/common/model/TileItemContainer.java | 52 +++++++++++++---------
 1 file changed, 30 insertions(+), 22 deletions(-)

diff --git a/src/net/sf/freecol/common/model/TileItemContainer.java 
b/src/net/sf/freecol/common/model/TileItemContainer.java
index 55fb144822b..7092436474b 100644
--- a/src/net/sf/freecol/common/model/TileItemContainer.java
+++ b/src/net/sf/freecol/common/model/TileItemContainer.java
@@ -21,7 +21,6 @@ package net.sf.freecol.common.model;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.function.Predicate;
 import java.util.logging.Logger;
 import java.util.stream.Stream;
 
@@ -250,10 +249,13 @@ public class TileItemContainer extends FreeColGameObject {
      */
     public TileImprovement getImprovement(TileImprovementType type) {
         synchronized (tileItems) {
-            return (TileImprovement)find(tileItems,
-                ti -> (ti instanceof TileImprovement
-                    && ((TileImprovement)ti).getType() == type));
+            for (TileItem ti : tileItems) {
+                if (ti instanceof TileImprovement
+                        && ((TileImprovement)ti).getType() == type)
+                    return (TileImprovement)ti;
+            }
         }
+        return null;
     }
 
     /**
@@ -293,25 +295,18 @@ public class TileItemContainer extends FreeColGameObject {
     }
 
     /**
-     * Find a tile item matching a predicate.
-     *
-     * @param pred The {@code Predicate} to match.
-     * @return The {@code TileItem} found, or null if none present.
-     */
-    private TileItem findTileItem(Predicate<TileItem> pred) {
-        synchronized (tileItems) {
-            return find(tileItems, pred);
-        }
-    }
-
-    /**
      * Gets any lost city rumour in this container.
      *
      * @return A {@code LostCityRumour} item if any, or null if
      *     not found.
      */
     public final LostCityRumour getLostCityRumour() {
-        return (LostCityRumour)findTileItem(ti -> ti instanceof 
LostCityRumour);
+        synchronized (tileItems) {
+            for (TileItem ti : tileItems)
+                if (ti instanceof LostCityRumour)
+                    return (LostCityRumour)ti;
+        }
+        return null;
     }
 
     /**
@@ -320,7 +315,12 @@ public class TileItemContainer extends FreeColGameObject {
      * @return A {@code Resource} item, or null is none found.
      */
     public final Resource getResource() {
-        return (Resource)findTileItem(ti -> ti instanceof Resource);
+        synchronized (tileItems) {
+            for (TileItem ti : tileItems)
+                if (ti instanceof Resource)
+                    return (Resource)ti;
+        }
+        return null;
     }
 
     /**
@@ -330,8 +330,12 @@ public class TileItemContainer extends FreeColGameObject {
      *     not found.
      */
     public TileImprovement getRoad() {
-        return (TileImprovement)findTileItem(ti ->
-            ti instanceof TileImprovement && ((TileImprovement)ti).isRoad());
+        synchronized (tileItems) {
+            for (TileItem ti : tileItems)
+                if (ti instanceof TileImprovement && 
((TileImprovement)ti).isRoad())
+                    return (TileImprovement)ti;
+        }
+        return null;
     }
 
     /**
@@ -341,8 +345,12 @@ public class TileItemContainer extends FreeColGameObject {
      *     not found.
      */
     public TileImprovement getRiver() {
-        return (TileImprovement)findTileItem(ti ->
-            ti instanceof TileImprovement && ((TileImprovement)ti).isRiver());
+        synchronized (tileItems) {
+            for (TileItem ti : tileItems)
+                if (ti instanceof TileImprovement && 
((TileImprovement)ti).isRiver())
+                    return (TileImprovement)ti;
+        }
+        return null;
     }
 
     /**
-- 
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