From 048568cfacd2631be1e0e4fdbe9d50227107641f Mon Sep 17 00:00:00 2001 From: NichtStudioCode <51272202+NichtStudioCode@users.noreply.github.com> Date: Tue, 11 May 2021 19:32:14 +0200 Subject: [PATCH] VirtualInventory#getWindows, Item#getWindows --- src/main/java/de/studiocode/invui/item/Item.java | 6 ++++-- .../java/de/studiocode/invui/item/impl/BaseItem.java | 3 ++- .../invui/virtualinventory/VirtualInventory.java | 10 ++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/studiocode/invui/item/Item.java b/src/main/java/de/studiocode/invui/item/Item.java index 8175d89..d48f6d5 100644 --- a/src/main/java/de/studiocode/invui/item/Item.java +++ b/src/main/java/de/studiocode/invui/item/Item.java @@ -36,9 +36,11 @@ public interface Item { void removeWindow(Window window); /** - * Gets all the {@link Window}s the {@link Item} is displayed in. + * Gets an immutable {@link Set} of all the {@link Window}s where this + * {@link Item} is displayed in. * - * @return The {@link Set} of {@link Window}s the {@link Item} is displayed in. + * @return An immutable view of the {@link Set} of all the {@link Window}s + * where this {@link Item} is displayed in. */ Set getWindows(); diff --git a/src/main/java/de/studiocode/invui/item/impl/BaseItem.java b/src/main/java/de/studiocode/invui/item/impl/BaseItem.java index 1e6631a..833b350 100644 --- a/src/main/java/de/studiocode/invui/item/impl/BaseItem.java +++ b/src/main/java/de/studiocode/invui/item/impl/BaseItem.java @@ -3,6 +3,7 @@ package de.studiocode.invui.item.impl; import de.studiocode.invui.item.Item; import de.studiocode.invui.window.Window; +import java.util.Collections; import java.util.HashSet; import java.util.Set; @@ -25,7 +26,7 @@ public abstract class BaseItem implements Item { @Override public Set getWindows() { - return windows; + return Collections.unmodifiableSet(windows); } @Override diff --git a/src/main/java/de/studiocode/invui/virtualinventory/VirtualInventory.java b/src/main/java/de/studiocode/invui/virtualinventory/VirtualInventory.java index a3042c8..1ea9a98 100644 --- a/src/main/java/de/studiocode/invui/virtualinventory/VirtualInventory.java +++ b/src/main/java/de/studiocode/invui/virtualinventory/VirtualInventory.java @@ -550,6 +550,16 @@ public class VirtualInventory implements ConfigurationSerializable { windows.remove(window); } + /** + * Gets an immutable view of the {@link Set} that contains all the {@link Window}s that + * display this {@link VirtualInventory}. + * + * @return An UnmodifiableSet of all the {@link Window}s that show this {@link VirtualInventory}. + */ + public Set getWindows() { + return Collections.unmodifiableSet(windows); + } + /** * Notifies all {@link Window}s displaying this {@link VirtualInventory} to update their * representative {@link ItemStack}s.