From 9db4a741545cebd017934ae89d94476edcd26058 Mon Sep 17 00:00:00 2001 From: Fuzzlemann Date: Sun, 20 Aug 2017 14:47:36 +0200 Subject: [PATCH] Use Processor (still needs something todo) --- .../PluginConfigSectionHandler.java | 1 - .../plan/queue/DataCacheGetQueue.java | 77 +++++++++---------- .../plan/queue/DataCacheProcessQueue.java | 41 +++------- .../plan/queue/DataCacheSaveQueue.java | 4 +- .../plan/queue/processing/Processor.java | 10 ++- .../com/djrapitops/plan/ui/html/Html.java | 14 ++-- 6 files changed, 63 insertions(+), 84 deletions(-) diff --git a/Plan/src/main/java/com/djrapitops/plan/data/additional/PluginConfigSectionHandler.java b/Plan/src/main/java/com/djrapitops/plan/data/additional/PluginConfigSectionHandler.java index 4e4903ddc..8e953c35f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/additional/PluginConfigSectionHandler.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/additional/PluginConfigSectionHandler.java @@ -11,7 +11,6 @@ import org.bukkit.configuration.file.FileConfiguration; * @author Rsl1122 * @since 3.5.0 */ -// TODO Move the auto generation to the correct location (Customization.Plugins -> Plugins) public class PluginConfigSectionHandler { private final Plan plan; diff --git a/Plan/src/main/java/com/djrapitops/plan/queue/DataCacheGetQueue.java b/Plan/src/main/java/com/djrapitops/plan/queue/DataCacheGetQueue.java index 9c3c7a59e..0bada2727 100644 --- a/Plan/src/main/java/com/djrapitops/plan/queue/DataCacheGetQueue.java +++ b/Plan/src/main/java/com/djrapitops/plan/queue/DataCacheGetQueue.java @@ -50,55 +50,50 @@ public class DataCacheGetQueue extends Queue } } - boolean containsUUIDtoBeCached(UUID uuid) { - return uuid != null && queue.stream() - .map(map -> map.get(uuid)) - .filter(Objects::nonNull) - .anyMatch(list -> list.size() >= 2); - } -} -@Deprecated -class GetConsumer extends Consumer>> { + @Deprecated + class GetConsumer extends Consumer>> { - private Database db; + private Database db; - GetConsumer(BlockingQueue>> q, Database db) { - super(q, "GetQueueConsumer"); - this.db = db; - } - - @Override - protected void consume(Map> processors) { - if (!Verify.notNull(processors, db)) { - return; + GetConsumer(BlockingQueue>> q, Database db) { + super(q, "GetQueueConsumer"); + this.db = db; } - try { - for (Map.Entry> entrySet : processors.entrySet()) { - UUID uuid = entrySet.getKey(); - List processorsList = entrySet.getValue(); - if (uuid == null || Verify.isEmpty(processorsList)) { - continue; - } - Log.debug("Database", uuid + ": Get, For:" + processorsList.size()); - db.giveUserDataToProcessors(uuid, processorsList); + @Override + protected void consume(Map> processors) { + if (!Verify.notNull(processors, db)) { + return; + } + + try { + for (Map.Entry> entrySet : processors.entrySet()) { + UUID uuid = entrySet.getKey(); + List processorsList = entrySet.getValue(); + if (uuid == null || Verify.isEmpty(processorsList)) { + continue; + } + Log.debug("Database", uuid + ": Get, For:" + processorsList.size()); + db.giveUserDataToProcessors(uuid, processorsList); + } + } catch (Exception ex) { + Log.toLog(this.getClass().getName(), ex); + } + } + + @Override + protected void clearVariables() { + if (db != null) { + db = null; } - } catch (Exception ex) { - Log.toLog(this.getClass().getName(), ex); } } - @Override - protected void clearVariables() { - if (db != null) { - db = null; + @Deprecated + class GetSetup extends Setup>> { + + GetSetup(BlockingQueue>> q, Database db) { + super(new GetConsumer(q, db), new GetConsumer(q, db)); } } } -@Deprecated -class GetSetup extends Setup>> { - - GetSetup(BlockingQueue>> q, Database db) { - super(new GetConsumer(q, db), new GetConsumer(q, db)); - } -} diff --git a/Plan/src/main/java/com/djrapitops/plan/queue/DataCacheProcessQueue.java b/Plan/src/main/java/com/djrapitops/plan/queue/DataCacheProcessQueue.java index eb7bd1411..3fb39d9c1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/queue/DataCacheProcessQueue.java +++ b/Plan/src/main/java/com/djrapitops/plan/queue/DataCacheProcessQueue.java @@ -4,9 +4,8 @@ import com.djrapitops.plugin.utilities.Verify; import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.data.cache.DBCallableProcessor; import main.java.com.djrapitops.plan.data.cache.DataCacheHandler; -import main.java.com.djrapitops.plan.data.handling.info.HandlingInfo; +import main.java.com.djrapitops.plan.queue.processing.Processor; -import java.util.UUID; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; @@ -20,7 +19,7 @@ import java.util.concurrent.BlockingQueue; // TODO Change Processing Queue to use more generic object as processing. // GOAL: Processing queue can be used to process query results from the database // & for processing events into statements. -public class DataCacheProcessQueue extends Queue { +public class DataCacheProcessQueue extends Queue { /** * Class constructor, starts the new Thread for processing. @@ -38,53 +37,33 @@ public class DataCacheProcessQueue extends Queue { * * @param info object that extends HandlingInfo. */ - public void addToPool(HandlingInfo info) { + public void addToPool(Processor info) { try { queue.add(info); } catch (IllegalStateException e) { Log.toLog(this.getClass().getName(), e); } } - - /** - * Check whether or not the queue contains a HandlingInfo object with the - * uuid. - * - * @param uuid UUID of the player. - * @return true/false - */ - public boolean containsUUID(UUID uuid) { - return uuid != null && queue.stream().anyMatch(info -> info.getUuid().equals(uuid)); - } } -class ProcessConsumer extends Consumer { +class ProcessConsumer extends Consumer { private DataCacheHandler handler; - ProcessConsumer(BlockingQueue q, DataCacheHandler h) { + ProcessConsumer(BlockingQueue q, DataCacheHandler h) { super(q, "ProcessQueueConsumer"); handler = h; } @Override - protected void consume(HandlingInfo info) { + protected void consume(Processor info) { if (!Verify.notNull(handler, info)) { return; } - if (handler.getGetTask().containsUUIDtoBeCached(info.getUuid())) { // Wait for get queue. - queue.add(info); - return; - } + DBCallableProcessor p = data -> info.process(); - DBCallableProcessor p = data -> { - if (!info.process(data)) { - Log.error("Attempted to process data for wrong uuid: W:" + data.getUuid() + " | R:" + info.getUuid() + " Type:" + info.getType().name()); - } - }; - - handler.getUserDataForProcessing(p, info.getUuid()); + //TODO handler.getUserDataForProcessing(p, info.getUuid()); } @Override @@ -95,9 +74,9 @@ class ProcessConsumer extends Consumer { } } -class ProcessSetup extends Setup { +class ProcessSetup extends Setup { - ProcessSetup(BlockingQueue q, DataCacheHandler h) { + ProcessSetup(BlockingQueue q, DataCacheHandler h) { super(new ProcessConsumer(q, h), new ProcessConsumer(q, h)); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/queue/DataCacheSaveQueue.java b/Plan/src/main/java/com/djrapitops/plan/queue/DataCacheSaveQueue.java index f6bdbf232..0286360be 100644 --- a/Plan/src/main/java/com/djrapitops/plan/queue/DataCacheSaveQueue.java +++ b/Plan/src/main/java/com/djrapitops/plan/queue/DataCacheSaveQueue.java @@ -89,10 +89,10 @@ class SaveConsumer extends Consumer { } UUID uuid = data.getUuid(); - if (handler.getProcessTask().containsUUID(uuid)) { // Wait for process queue. + /*TODO if (handler.getProcessTask().containsUUID(uuid)) { // Wait for process queue. queue.add(data); return; - } + }*/ try { db.saveUserData(data); diff --git a/Plan/src/main/java/com/djrapitops/plan/queue/processing/Processor.java b/Plan/src/main/java/com/djrapitops/plan/queue/processing/Processor.java index 480755bf7..6799551cd 100644 --- a/Plan/src/main/java/com/djrapitops/plan/queue/processing/Processor.java +++ b/Plan/src/main/java/com/djrapitops/plan/queue/processing/Processor.java @@ -9,6 +9,12 @@ package main.java.com.djrapitops.plan.queue.processing; * * @author Rsl1122 */ -public interface Processor { - public void process(T object); +public abstract class Processor { + private T processed; + + public Processor(T processed) { + this.processed = processed; + } + + public abstract void process(); } diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/html/Html.java b/Plan/src/main/java/com/djrapitops/plan/ui/html/Html.java index 162f40f5a..2c8c95d6c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/html/Html.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/html/Html.java @@ -30,7 +30,7 @@ public enum Html { COLOR_F(""), // FONT_AWESOME_ICON(""), - MINOTAR_SMALL_IMG("\"${0}\""), + @Deprecated MINOTAR_SMALL_IMG("\"${0}\""), SPAN("${0}"), BUTTON("${1}"), BUTTON_CLASS("class=\"button\""), @@ -38,11 +38,11 @@ public enum Html { LINK_EXTERNAL("${1}"), LINK_CLASS("class=\"link\""), IMG(""), - COLUMNS_DIV_WRAPPER("
${0}
"), - COLUMN_DIV_WRAPPER("
${0}
"), - HEADER("
${0}
"), - PLUGIN_DATA_WRAPPER("
${0}
"), - PLUGIN_CONTAINER_START("
"), + @Deprecated COLUMNS_DIV_WRAPPER("
${0}
"), + @Deprecated COLUMN_DIV_WRAPPER("
${0}
"), + @Deprecated HEADER("
${0}
"), + @Deprecated PLUGIN_DATA_WRAPPER("
${0}
"), + @Deprecated PLUGIN_CONTAINER_START("
"), // TABLE_START_2(""), TABLE_START_3("
${0}${1}
"), @@ -57,7 +57,7 @@ public enum Html { TABLELINE_PLAYERS("" + ""), TABLELINE_3_CUSTOMKEY(""), TABLELINE_3_CUSTOMKEY_1(""), - ERROR_TABLE_2(TABLELINE_2.parse("No data", "No data")), + @Deprecated ERROR_TABLE_2(TABLELINE_2.parse("No data", "No data")), TABLE_END("
${0}${1}${2}
${0}${1}${3}${4}${6}${8}${9}
${1}${3}${5}
${1}${2}${3}
"); // KILLDATA_NONE("No Kills"), private String html;