From 0a1c20c070cdae834c7fba547d27ede396049a03 Mon Sep 17 00:00:00 2001 From: Rsl1122 <24460436+Rsl1122@users.noreply.github.com> Date: Thu, 2 Jan 2020 16:41:17 +0200 Subject: [PATCH] Renamed DataProviderExtractor to ExtensionWrapper This makes the purpose of the class more clear, as it has methods that are not related to extracting DataProvider objects. --- .../ExtensionServiceImplementation.java | 8 ++--- ...erExtractor.java => ExtensionWrapper.java} | 23 +++++++++--- .../implementation/providers/Parameters.java | 6 ++-- .../BooleanProviderValueGatherer.java | 9 ++--- .../gathering/ProviderValueGatherer.java | 35 ++++++++----------- .../gathering/TableProviderValueGatherer.java | 9 ++--- 6 files changed, 50 insertions(+), 40 deletions(-) rename Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/{DataProviderExtractor.java => ExtensionWrapper.java} (91%) diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/ExtensionServiceImplementation.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/ExtensionServiceImplementation.java index d26d43b07..5e723040d 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/extension/ExtensionServiceImplementation.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/ExtensionServiceImplementation.java @@ -21,8 +21,8 @@ import com.djrapitops.plan.delivery.webserver.cache.DataID; import com.djrapitops.plan.delivery.webserver.cache.JSONCache; import com.djrapitops.plan.exceptions.DataExtensionMethodCallException; import com.djrapitops.plan.extension.implementation.CallerImplementation; -import com.djrapitops.plan.extension.implementation.DataProviderExtractor; import com.djrapitops.plan.extension.implementation.ExtensionRegister; +import com.djrapitops.plan.extension.implementation.ExtensionWrapper; import com.djrapitops.plan.extension.implementation.providers.gathering.ProviderValueGatherer; import com.djrapitops.plan.identification.ServerInfo; import com.djrapitops.plan.processing.Processing; @@ -93,7 +93,7 @@ public class ExtensionServiceImplementation implements ExtensionService { @Override public Optional register(DataExtension extension) { - DataProviderExtractor extractor = new DataProviderExtractor(extension); + ExtensionWrapper extractor = new ExtensionWrapper(extension); String pluginName = extractor.getPluginName(); if (shouldNotAllowRegistration(pluginName)) return Optional.empty(); @@ -102,7 +102,7 @@ public class ExtensionServiceImplementation implements ExtensionService { logger.warn("DataExtension API implementation mistake for " + pluginName + ": " + warning); } - ProviderValueGatherer gatherer = new ProviderValueGatherer(extension, extractor, dbSystem, serverInfo); + ProviderValueGatherer gatherer = new ProviderValueGatherer(extractor, dbSystem, serverInfo); gatherer.storeExtensionInformation(); extensionGatherers.put(pluginName, gatherer); @@ -114,7 +114,7 @@ public class ExtensionServiceImplementation implements ExtensionService { @Override public void unregister(DataExtension extension) { - DataProviderExtractor extractor = new DataProviderExtractor(extension); + ExtensionWrapper extractor = new ExtensionWrapper(extension); String pluginName = extractor.getPluginName(); if (extensionGatherers.remove(pluginName) != null) { logger.getDebugLogger().logOn(DebugChannels.DATA_EXTENSIONS, pluginName + " extension unregistered."); diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/DataProviderExtractor.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/ExtensionWrapper.java similarity index 91% rename from Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/DataProviderExtractor.java rename to Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/ExtensionWrapper.java index 1e770bdfd..bcd6f489a 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/DataProviderExtractor.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/ExtensionWrapper.java @@ -16,6 +16,7 @@ */ package com.djrapitops.plan.extension.implementation; +import com.djrapitops.plan.extension.CallEvents; import com.djrapitops.plan.extension.DataExtension; import com.djrapitops.plan.extension.annotation.*; import com.djrapitops.plan.extension.extractor.ExtensionExtractor; @@ -35,25 +36,29 @@ import java.util.function.Function; import java.util.stream.Collectors; /** - * Extracts objects that can be used to obtain data to store in the database. + * Represents information defined in a {@link DataExtension} class. + *

+ * Extracts objects that can be used to obtain data from a {@link DataExtension}. *

* Goal of this class is to abstract away DataExtension API annotations so that they will not be needed outside when calling methods. * * @author Rsl1122 */ -public class DataProviderExtractor { +public class ExtensionWrapper { private final ExtensionExtractor extractor; private final DataProviders providers; + private final DataExtension extension; /** - * Create a DataProviderExtractor. + * Create an ExtensionWrapper. * * @param extension DataExtension to extract information from. * @throws IllegalArgumentException If something is badly wrong with the specified extension class annotations. */ - public DataProviderExtractor(DataExtension extension) { - extractor = new ExtensionExtractor(extension); + public ExtensionWrapper(DataExtension extension) { + this.extension = extension; + extractor = new ExtensionExtractor(this.extension); extractor.extractAnnotationInformation(); @@ -61,6 +66,14 @@ public class DataProviderExtractor { extractProviders(); } + public CallEvents[] getCallEvents() { + return extension.callExtensionMethodsOn(); + } + + public DataExtension getExtension() { + return extension; + } + public String getPluginName() { return extractor.getPluginInfo().name(); } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/Parameters.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/Parameters.java index d78cd0e1a..f5341791e 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/Parameters.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/Parameters.java @@ -50,7 +50,7 @@ public interface Parameters { class ServerParameters implements Parameters { private final UUID serverUUID; - public ServerParameters(UUID serverUUID) { + private ServerParameters(UUID serverUUID) { this.serverUUID = serverUUID; } @@ -74,7 +74,7 @@ public interface Parameters { private final UUID playerUUID; private final String playerName; - public PlayerParameters(UUID serverUUID, UUID playerUUID, String playerName) { + private PlayerParameters(UUID serverUUID, UUID playerUUID, String playerName) { this.serverUUID = serverUUID; this.playerUUID = playerUUID; this.playerName = playerName; @@ -108,7 +108,7 @@ public interface Parameters { private final UUID serverUUID; private final String groupName; - public GroupParameters(UUID serverUUID, String groupName) { + private GroupParameters(UUID serverUUID, String groupName) { this.serverUUID = serverUUID; this.groupName = groupName; } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/gathering/BooleanProviderValueGatherer.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/gathering/BooleanProviderValueGatherer.java index 4c2a11ce0..0f555592c 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/gathering/BooleanProviderValueGatherer.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/gathering/BooleanProviderValueGatherer.java @@ -18,6 +18,7 @@ package com.djrapitops.plan.extension.implementation.providers.gathering; import com.djrapitops.plan.exceptions.DataExtensionMethodCallException; import com.djrapitops.plan.extension.DataExtension; +import com.djrapitops.plan.extension.implementation.ExtensionWrapper; import com.djrapitops.plan.extension.implementation.ProviderInformation; import com.djrapitops.plan.extension.implementation.providers.DataProvider; import com.djrapitops.plan.extension.implementation.providers.DataProviders; @@ -50,15 +51,15 @@ class BooleanProviderValueGatherer { private final DataProviders dataProviders; BooleanProviderValueGatherer( - String pluginName, DataExtension extension, + String pluginName, UUID serverUUID, Database database, - DataProviders dataProviders + ExtensionWrapper extensionWrapper ) { this.pluginName = pluginName; - this.extension = extension; + this.extension = extensionWrapper.getExtension(); this.serverUUID = serverUUID; this.database = database; - this.dataProviders = dataProviders; + this.dataProviders = extensionWrapper.getProviders(); } Conditions gatherBooleanDataOfPlayer(UUID playerUUID, String playerName) { diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/gathering/ProviderValueGatherer.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/gathering/ProviderValueGatherer.java index 9b4e3b036..5a5691532 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/gathering/ProviderValueGatherer.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/gathering/ProviderValueGatherer.java @@ -17,9 +17,8 @@ package com.djrapitops.plan.extension.implementation.providers.gathering; import com.djrapitops.plan.extension.CallEvents; -import com.djrapitops.plan.extension.DataExtension; import com.djrapitops.plan.extension.icon.Icon; -import com.djrapitops.plan.extension.implementation.DataProviderExtractor; +import com.djrapitops.plan.extension.implementation.ExtensionWrapper; import com.djrapitops.plan.extension.implementation.ProviderInformation; import com.djrapitops.plan.extension.implementation.TabInformation; import com.djrapitops.plan.extension.implementation.providers.DataProvider; @@ -45,10 +44,8 @@ import java.util.UUID; */ public class ProviderValueGatherer { - private final DataExtension extension; - private final CallEvents[] callEvents; - private final DataProviderExtractor extractor; + private final ExtensionWrapper extensionWrapper; private final DBSystem dbSystem; private final ServerInfo serverInfo; @@ -64,26 +61,24 @@ public class ProviderValueGatherer { private final Gatherer playerGroupGatherer; public ProviderValueGatherer( - DataExtension extension, - DataProviderExtractor extractor, + ExtensionWrapper extension, DBSystem dbSystem, ServerInfo serverInfo ) { - this.extension = extension; - this.callEvents = this.extension.callExtensionMethodsOn(); - this.extractor = extractor; + this.callEvents = extension.getCallEvents(); + this.extensionWrapper = extension; this.dbSystem = dbSystem; this.serverInfo = serverInfo; - String pluginName = extractor.getPluginName(); + String pluginName = extension.getPluginName(); UUID serverUUID = serverInfo.getServerUUID(); Database database = dbSystem.getDatabase(); - dataProviders = extractor.getProviders(); + dataProviders = extension.getProviders(); booleanGatherer = new BooleanProviderValueGatherer( - pluginName, extension, serverUUID, database, dataProviders + pluginName, serverUUID, database, extension ); tableGatherer = new TableProviderValueGatherer( - pluginName, extension, serverUUID, database, dataProviders + pluginName, serverUUID, database, extension ); serverNumberGatherer = new Gatherer<>( @@ -126,12 +121,12 @@ public class ProviderValueGatherer { } public String getPluginName() { - return extractor.getPluginName(); + return extensionWrapper.getPluginName(); } public void storeExtensionInformation() { - String pluginName = extractor.getPluginName(); - Icon pluginIcon = extractor.getPluginIcon(); + String pluginName = extensionWrapper.getPluginName(); + Icon pluginIcon = extensionWrapper.getPluginIcon(); long time = System.currentTimeMillis(); UUID serverUUID = serverInfo.getServerUUID(); @@ -139,12 +134,12 @@ public class ProviderValueGatherer { Database database = dbSystem.getDatabase(); database.executeTransaction(new StoreIconTransaction(pluginIcon)); database.executeTransaction(new StorePluginTransaction(pluginName, time, serverUUID, pluginIcon)); - for (TabInformation tab : extractor.getPluginTabs()) { + for (TabInformation tab : extensionWrapper.getPluginTabs()) { database.executeTransaction(new StoreIconTransaction(tab.getTabIcon())); database.executeTransaction(new StoreTabInformationTransaction(pluginName, serverUUID, tab)); } - database.executeTransaction(new RemoveInvalidResultsTransaction(pluginName, serverUUID, extractor.getInvalidatedMethods())); + database.executeTransaction(new RemoveInvalidResultsTransaction(pluginName, serverUUID, extensionWrapper.getInvalidatedMethods())); } public void updateValues(UUID playerUUID, String playerName) { @@ -195,7 +190,7 @@ public class ProviderValueGatherer { return; // Condition not fulfilled } - T result = provider.getMethod().callMethod(extension, parameters); + T result = provider.getMethod().callMethod(extensionWrapper.getExtension(), parameters); if (result == null) { return; // Error during method call } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/gathering/TableProviderValueGatherer.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/gathering/TableProviderValueGatherer.java index 9cf726a7e..3c8810f72 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/gathering/TableProviderValueGatherer.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/gathering/TableProviderValueGatherer.java @@ -19,6 +19,7 @@ package com.djrapitops.plan.extension.implementation.providers.gathering; import com.djrapitops.plan.exceptions.DataExtensionMethodCallException; import com.djrapitops.plan.extension.DataExtension; import com.djrapitops.plan.extension.icon.Icon; +import com.djrapitops.plan.extension.implementation.ExtensionWrapper; import com.djrapitops.plan.extension.implementation.ProviderInformation; import com.djrapitops.plan.extension.implementation.providers.DataProvider; import com.djrapitops.plan.extension.implementation.providers.DataProviders; @@ -53,15 +54,15 @@ class TableProviderValueGatherer { private final DataProviders dataProviders; TableProviderValueGatherer( - String pluginName, DataExtension extension, + String pluginName, UUID serverUUID, Database database, - DataProviders dataProviders + ExtensionWrapper extensionWrapper ) { this.pluginName = pluginName; - this.extension = extension; + this.extension = extensionWrapper.getExtension(); this.serverUUID = serverUUID; this.database = database; - this.dataProviders = dataProviders; + this.dataProviders = extensionWrapper.getProviders(); } void gatherTableDataOfPlayer(UUID playerUUID, String playerName, Conditions conditions) {