From 578691fe8c6c2b3d1504707a08203bfe6c18521c Mon Sep 17 00:00:00 2001 From: NEZNAMY Date: Mon, 22 Jan 2024 19:15:07 +0100 Subject: [PATCH] Document and clean up class --- .../placeholders/PlaceholderRefreshTask.java | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/shared/src/main/java/me/neznamy/tab/shared/placeholders/PlaceholderRefreshTask.java b/shared/src/main/java/me/neznamy/tab/shared/placeholders/PlaceholderRefreshTask.java index 05c46bc72..aeff62b57 100644 --- a/shared/src/main/java/me/neznamy/tab/shared/placeholders/PlaceholderRefreshTask.java +++ b/shared/src/main/java/me/neznamy/tab/shared/placeholders/PlaceholderRefreshTask.java @@ -13,18 +13,24 @@ import java.util.HashMap; import java.util.Map; +/** + * A class that refreshes all requested placeholders using given refresh + * function and returns the results. + */ @RequiredArgsConstructor +@Getter public class PlaceholderRefreshTask implements Runnable { + /** Placeholders that should be refreshed in this loop */ private final Collection placeholdersToRefresh; - @Getter + /** Map of server placeholder results */ private final Map serverPlaceholderResults = new HashMap<>(); - @Getter + /** Map of player placeholder results */ private final Map> playerPlaceholderResults = new HashMap<>(); - @Getter + /** Map of relational placeholder results */ private final Map>> relationalPlaceholderResults = new HashMap<>(); @Override @@ -33,28 +39,32 @@ public void run() { for (Placeholder placeholder : placeholdersToRefresh) { long nanoTime = 0; if (placeholder instanceof ServerPlaceholderImpl) { + ServerPlaceholderImpl serverPlaceholder = (ServerPlaceholderImpl) placeholder; long startTime = System.nanoTime(); - Object result = ((ServerPlaceholderImpl)placeholder).request(); + Object result = serverPlaceholder.request(); nanoTime += System.nanoTime()-startTime; - serverPlaceholderResults.put((ServerPlaceholderImpl) placeholder, result); + serverPlaceholderResults.put(serverPlaceholder, result); } if (placeholder instanceof PlayerPlaceholderImpl) { + PlayerPlaceholderImpl playerPlaceholder = (PlayerPlaceholderImpl) placeholder; + playerPlaceholderResults.put(playerPlaceholder, new HashMap<>()); for (TabPlayer player : players) { long startTime = System.nanoTime(); - Object result = ((PlayerPlaceholderImpl)placeholder).request(player); + Object result = playerPlaceholder.request(player); nanoTime += System.nanoTime()-startTime; - playerPlaceholderResults.computeIfAbsent((PlayerPlaceholderImpl) placeholder, p -> new HashMap<>(players.length + 1, 1)).put(player, result); + playerPlaceholderResults.get(playerPlaceholder).put(player, result); } } if (placeholder instanceof RelationalPlaceholderImpl) { + RelationalPlaceholderImpl relationalPlaceholder = (RelationalPlaceholderImpl) placeholder; + relationalPlaceholderResults.put(relationalPlaceholder, new HashMap<>()); for (TabPlayer viewer : players) { + relationalPlaceholderResults.get(relationalPlaceholder).put(viewer, new HashMap<>()); for (TabPlayer target : players) { long startTime = System.nanoTime(); - Object result = ((RelationalPlaceholderImpl)placeholder).request(viewer, target); + Object result = relationalPlaceholder.request(viewer, target); nanoTime += System.nanoTime()-startTime; - relationalPlaceholderResults.computeIfAbsent((RelationalPlaceholderImpl) placeholder, p -> new HashMap<>(players.length + 1, 1)) - .computeIfAbsent(viewer, v -> new HashMap<>(players.length + 1, 1)) - .put(target, result); + relationalPlaceholderResults.get(relationalPlaceholder).get(viewer).put(target, result); } } }