From 397304c74874f6a835ac87f8bed6ec09b866c7e1 Mon Sep 17 00:00:00 2001 From: Eric Date: Mon, 31 Jul 2017 14:02:56 +0200 Subject: [PATCH] Use collection instead of array in Database#getShops --- src/main/java/de/epiceric/shopchest/sql/Database.java | 8 +++++--- src/main/java/de/epiceric/shopchest/utils/ShopUtils.java | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/epiceric/shopchest/sql/Database.java b/src/main/java/de/epiceric/shopchest/sql/Database.java index fa07404..918479c 100644 --- a/src/main/java/de/epiceric/shopchest/sql/Database.java +++ b/src/main/java/de/epiceric/shopchest/sql/Database.java @@ -21,6 +21,8 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.Set; import java.util.UUID; @@ -227,10 +229,10 @@ public abstract class Database { /** * Get all shops from the database - * @param callback Callback that - if succeeded - returns an array of all shops (as {@code Shop[]}) + * @param callback Callback that - if succeeded - returns a read-only collection of all shops (as {@code Collection}) * @param showConsoleMessages Whether console messages (errors or warnings) should be shown */ - public void getShops(final boolean showConsoleMessages, final Callback callback) { + public void getShops(final boolean showConsoleMessages, final Callback> callback) { new BukkitRunnable() { @Override public void run() { @@ -276,7 +278,7 @@ public abstract class Database { shops.add(new Shop(id, plugin, vendor, product, location, buyPrice, sellPrice, shopType)); } - if (callback != null) callback.callSyncResult(shops.toArray(new Shop[shops.size()])); + if (callback != null) callback.callSyncResult(Collections.unmodifiableCollection(shops)); } catch (SQLException ex) { if (callback != null) callback.callSyncError(ex); plugin.getLogger().severe("Failed to access database"); diff --git a/src/main/java/de/epiceric/shopchest/utils/ShopUtils.java b/src/main/java/de/epiceric/shopchest/utils/ShopUtils.java index ac03584..99a6bc0 100644 --- a/src/main/java/de/epiceric/shopchest/utils/ShopUtils.java +++ b/src/main/java/de/epiceric/shopchest/utils/ShopUtils.java @@ -242,9 +242,9 @@ public class ShopUtils { plugin.debug("Removed shop (#" + shop.getID() + ")"); } - plugin.getShopDatabase().getShops(showConsoleMessages, new Callback(plugin) { + plugin.getShopDatabase().getShops(showConsoleMessages, new Callback>(plugin) { @Override - public void onResult(Shop[] result) { + public void onResult(Collection result) { for (Shop shop : result) { if (shop.create(showConsoleMessages)) { addShop(shop, false); @@ -255,7 +255,7 @@ public class ShopUtils { updateShops(player, true); } - if (callback != null) callback.callSyncResult(result.length); + if (callback != null) callback.callSyncResult(result.size()); } @Override