From e7cbf10ee35b29c1b32cdb98d1dcb55583dac09c Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Wed, 19 Sep 2018 20:04:58 +0300 Subject: [PATCH] [Debt] AnalysisPluginsTabContentCreator non-static --- .../store/containers/AnalysisContainer.java | 8 +-- .../djrapitops/plan/system/DebugChannels.java | 1 + .../AnalysisPluginsTabContentCreator.java | 55 +++++++++++++------ 3 files changed, 41 insertions(+), 23 deletions(-) diff --git a/Plan/src/main/java/com/djrapitops/plan/data/store/containers/AnalysisContainer.java b/Plan/src/main/java/com/djrapitops/plan/data/store/containers/AnalysisContainer.java index 47ad12885..9744ea5b9 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/store/containers/AnalysisContainer.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/store/containers/AnalysisContainer.java @@ -52,6 +52,7 @@ public class AnalysisContainer extends DataContainer { private Graphs graphs; private HtmlTables tables; private Accordions accordions; + private AnalysisPluginsTabContentCreator pluginsTabContentCreator; private Formatter yearFormatter; private Formatter secondLongFormatter; @@ -430,12 +431,7 @@ public class AnalysisContainer extends DataContainer { private void addPluginSuppliers() { // TODO Refactor into a system that supports running the analysis on Bungee Key navAndTabs = new Key<>(new Type() {}, "NAV_AND_TABS"); - putSupplier(navAndTabs, () -> - AnalysisPluginsTabContentCreator.createContent( - getUnsafe(AnalysisKeys.PLAYERS_MUTATOR), - this - ) - ); + putSupplier(navAndTabs, () -> pluginsTabContentCreator.createContent(this)); putSupplier(AnalysisKeys.PLUGINS_TAB_NAV, () -> getUnsafe(navAndTabs)[0]); putSupplier(AnalysisKeys.PLUGINS_TAB, () -> getUnsafe(navAndTabs)[1]); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/DebugChannels.java b/Plan/src/main/java/com/djrapitops/plan/system/DebugChannels.java index 4cc843959..be4b30c6a 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/DebugChannels.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/DebugChannels.java @@ -7,6 +7,7 @@ package com.djrapitops.plan.system; */ public class DebugChannels { + public static final String ANALYSIS = "Analysis"; public static final String INFO_REQUESTS = "InfoRequests"; public static final String CONNECTIONS = "Connections"; public static final String WEB_REQUESTS = "Web Requests"; diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/html/structure/AnalysisPluginsTabContentCreator.java b/Plan/src/main/java/com/djrapitops/plan/utilities/html/structure/AnalysisPluginsTabContentCreator.java index a5d32ca8b..0bcfd3e1e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/html/structure/AnalysisPluginsTabContentCreator.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/html/structure/AnalysisPluginsTabContentCreator.java @@ -4,18 +4,22 @@ */ package com.djrapitops.plan.utilities.html.structure; -import com.djrapitops.plan.PlanPlugin; import com.djrapitops.plan.data.element.AnalysisContainer; import com.djrapitops.plan.data.element.InspectContainer; import com.djrapitops.plan.data.plugin.HookHandler; import com.djrapitops.plan.data.plugin.PluginData; +import com.djrapitops.plan.data.store.keys.AnalysisKeys; import com.djrapitops.plan.data.store.mutators.PlayersMutator; +import com.djrapitops.plan.system.DebugChannels; import com.djrapitops.plan.utilities.comparators.PluginDataNameComparator; import com.djrapitops.plan.utilities.html.tables.HtmlTables; -import com.djrapitops.plugin.StaticHolder; -import com.djrapitops.plugin.api.Benchmark; -import com.djrapitops.plugin.api.utility.log.Log; +import com.djrapitops.plugin.benchmarking.Timings; +import com.djrapitops.plugin.logging.L; +import com.djrapitops.plugin.logging.console.PluginLogger; +import com.djrapitops.plugin.logging.error.ErrorHandler; +import javax.inject.Inject; +import javax.inject.Singleton; import java.util.*; /** @@ -23,13 +27,35 @@ import java.util.*; * * @author Rsl1122 */ -// TODO Turn non static +@Singleton public class AnalysisPluginsTabContentCreator { - public static String[] createContent( - PlayersMutator mutator, + private final HookHandler hookHandler; + private final HtmlTables tables; + private final Timings timings; + private final PluginLogger logger; + private final ErrorHandler errorHandler; + + @Inject + public AnalysisPluginsTabContentCreator( + HookHandler hookHandler, + HtmlTables tables, + Timings timings, + PluginLogger logger, + ErrorHandler errorHandler + ) { + this.hookHandler = hookHandler; + this.tables = tables; + this.timings = timings; + this.logger = logger; + this.errorHandler = errorHandler; + } + + public String[] createContent( com.djrapitops.plan.data.store.containers.AnalysisContainer analysisContainer ) { + PlayersMutator mutator = analysisContainer.getValue(AnalysisKeys.PLAYERS_MUTATOR).orElse(new PlayersMutator(new ArrayList<>())); + if (mutator.all().isEmpty()) { return new String[]{"
  • No Data
  • ", ""}; } @@ -77,8 +103,6 @@ public class AnalysisPluginsTabContentCreator { generalTab.append(""); - HtmlTables tables = null; // TODO Use HtmlTables - String playerListTab = "
    " + "
    " + "
    " + @@ -96,20 +120,17 @@ public class AnalysisPluginsTabContentCreator { }; } - private static Map analyzeAdditionalPluginData( + private Map analyzeAdditionalPluginData( Collection uuids, com.djrapitops.plan.data.store.containers.AnalysisContainer analysisContainer ) { Map containers = new HashMap<>(); - HookHandler hookHandler = null; // TODO List sources = hookHandler.getAdditionalDataSources(); sources.parallelStream().forEach(source -> { - PlanPlugin plugin = PlanPlugin.getInstance(); - StaticHolder.saveInstance(AnalysisPluginsTabContentCreator.class, plugin.getClass()); try { - Benchmark.start("Analysis: Source " + source.getSourcePlugin()); + timings.start("Source " + source.getSourcePlugin()); source.setAnalysisData(analysisContainer); AnalysisContainer container = source.getServerData(uuids, new AnalysisContainer()); @@ -118,10 +139,10 @@ public class AnalysisPluginsTabContentCreator { } } catch (Exception | NoClassDefFoundError | NoSuchFieldError | NoSuchMethodError e) { - Log.error("A PluginData-source caused an exception: " + source.getSourcePlugin()); - Log.toLog(AnalysisPluginsTabContentCreator.class, e); + logger.error("A PluginData-source caused an exception: " + source.getSourcePlugin()); + errorHandler.log(L.WARN, this.getClass(), e); } finally { - Benchmark.stop("Analysis", "Analysis: Source " + source.getSourcePlugin()); + timings.end(DebugChannels.ANALYSIS, "Source " + source.getSourcePlugin()); } }); return containers;