mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2024-10-23 12:59:55 +02:00
StoreProviderTransaction
- Removes duplicate code by replacing 5 different Store___ProviderTransaction classes with a single one. Null value is inserted where possible / makes sense
This commit is contained in:
parent
0b1ae59c48
commit
2c19e0e980
@ -148,7 +148,7 @@ public class ExtensionServiceImplementation implements ExtensionService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void updatePlayerValues(ProviderValueGatherer gatherer, UUID playerUUID, String playerName, CallEvents event) {
|
public void updatePlayerValues(ProviderValueGatherer gatherer, UUID playerUUID, String playerName, CallEvents event) {
|
||||||
if (!gatherer.canCallEvent(event)) return;
|
if (gatherer.shouldSkipEvent(event)) return;
|
||||||
if (playerUUID == null && playerName == null) return;
|
if (playerUUID == null && playerName == null) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -190,7 +190,7 @@ public class ExtensionServiceImplementation implements ExtensionService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void updateServerValues(ProviderValueGatherer gatherer, CallEvents event) {
|
public void updateServerValues(ProviderValueGatherer gatherer, CallEvents event) {
|
||||||
if (!gatherer.canCallEvent(event)) return;
|
if (gatherer.shouldSkipEvent(event)) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
logger.getDebugLogger().logOn(DebugChannels.DATA_EXTENSIONS, "Gathering values for server");
|
logger.getDebugLogger().logOn(DebugChannels.DATA_EXTENSIONS, "Gathering values for server");
|
||||||
|
@ -58,7 +58,7 @@ public class BooleanDataProvider extends DataProvider<Boolean> {
|
|||||||
dataProviders.put(new BooleanDataProvider(providerInformation, methodWrapper, annotation.conditionName(), annotation.hidden()));
|
dataProviders.put(new BooleanDataProvider(providerInformation, methodWrapper, annotation.conditionName(), annotation.hidden()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Optional<String> getProvidedCondition(DataProvider<Boolean> provider) {
|
public static Optional<String> getProvidedCondition(DataProvider<?> provider) {
|
||||||
if (provider instanceof BooleanDataProvider) {
|
if (provider instanceof BooleanDataProvider) {
|
||||||
return ((BooleanDataProvider) provider).getProvidedCondition();
|
return ((BooleanDataProvider) provider).getProvidedCondition();
|
||||||
}
|
}
|
||||||
@ -69,7 +69,7 @@ public class BooleanDataProvider extends DataProvider<Boolean> {
|
|||||||
return providedCondition == null || providedCondition.isEmpty() ? Optional.empty() : Optional.of(StringUtils.truncate(providedCondition, 50));
|
return providedCondition == null || providedCondition.isEmpty() ? Optional.empty() : Optional.of(StringUtils.truncate(providedCondition, 50));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isHidden(DataProvider<Boolean> provider) {
|
public static boolean isHidden(DataProvider<?> provider) {
|
||||||
return provider instanceof BooleanDataProvider && ((BooleanDataProvider) provider).isHidden();
|
return provider instanceof BooleanDataProvider && ((BooleanDataProvider) provider).isHidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ import com.djrapitops.plan.extension.icon.Icon;
|
|||||||
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a DataExtension API method annotated with {@link NumberProvider} annotation.
|
* Represents a DataExtension API method annotated with {@link NumberProvider} annotation.
|
||||||
@ -54,11 +55,11 @@ public class NumberDataProvider extends DataProvider<Long> {
|
|||||||
dataProviders.put(new NumberDataProvider(providerInformation, methodWrapper, annotation.format()));
|
dataProviders.put(new NumberDataProvider(providerInformation, methodWrapper, annotation.format()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static FormatType getFormatType(DataProvider<Long> provider) {
|
public static Optional<FormatType> getFormatType(DataProvider<?> provider) {
|
||||||
if (provider instanceof NumberDataProvider) {
|
if (provider instanceof NumberDataProvider) {
|
||||||
return ((NumberDataProvider) provider).getFormatType();
|
return Optional.of(((NumberDataProvider) provider).getFormatType());
|
||||||
}
|
}
|
||||||
return FormatType.NONE;
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public FormatType getFormatType() {
|
public FormatType getFormatType() {
|
||||||
|
@ -55,7 +55,7 @@ public class StringDataProvider extends DataProvider<String> {
|
|||||||
dataProviders.put(new StringDataProvider(providerInformation, methodWrapper, playerName));
|
dataProviders.put(new StringDataProvider(providerInformation, methodWrapper, playerName));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isPlayerName(DataProvider<String> provider) {
|
public static boolean isPlayerName(DataProvider<?> provider) {
|
||||||
if (provider instanceof StringDataProvider) {
|
if (provider instanceof StringDataProvider) {
|
||||||
return ((StringDataProvider) provider).isPlayerName();
|
return ((StringDataProvider) provider).isPlayerName();
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
|||||||
import com.djrapitops.plan.extension.implementation.providers.DataProviders;
|
import com.djrapitops.plan.extension.implementation.providers.DataProviders;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.MethodWrapper;
|
import com.djrapitops.plan.extension.implementation.providers.MethodWrapper;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreIconTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreIconTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.providers.StoreBooleanProviderTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.providers.StoreProviderTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerBooleanResultTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerBooleanResultTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StoreServerBooleanResultTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StoreServerBooleanResultTransaction;
|
||||||
import com.djrapitops.plan.storage.database.Database;
|
import com.djrapitops.plan.storage.database.Database;
|
||||||
@ -121,8 +121,6 @@ class BooleanProviderValueGatherer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Optional<String> providedCondition = BooleanDataProvider.getProvidedCondition(booleanProvider);
|
Optional<String> providedCondition = BooleanDataProvider.getProvidedCondition(booleanProvider);
|
||||||
boolean hidden = BooleanDataProvider.isHidden(booleanProvider);
|
|
||||||
|
|
||||||
MethodWrapper<Boolean> method = booleanProvider.getMethod();
|
MethodWrapper<Boolean> method = booleanProvider.getMethod();
|
||||||
Boolean result = getMethodResult(methodCaller.apply(method), method);
|
Boolean result = getMethodResult(methodCaller.apply(method), method);
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
@ -143,7 +141,7 @@ class BooleanProviderValueGatherer {
|
|||||||
|
|
||||||
satisfied.add(booleanProvider); // Prevents further attempts to call this provider for this player.
|
satisfied.add(booleanProvider); // Prevents further attempts to call this provider for this player.
|
||||||
database.executeTransaction(new StoreIconTransaction(providerInformation.getIcon()));
|
database.executeTransaction(new StoreIconTransaction(providerInformation.getIcon()));
|
||||||
database.executeTransaction(new StoreBooleanProviderTransaction(booleanProvider, providedCondition.orElse(null), hidden, serverUUID));
|
database.executeTransaction(new StoreProviderTransaction(booleanProvider, serverUUID));
|
||||||
database.executeTransaction(storeTransactionCreator.apply(method, result));
|
database.executeTransaction(storeTransactionCreator.apply(method, result));
|
||||||
}
|
}
|
||||||
return satisfied;
|
return satisfied;
|
||||||
|
@ -24,7 +24,7 @@ import com.djrapitops.plan.extension.implementation.providers.DataProviders;
|
|||||||
import com.djrapitops.plan.extension.implementation.providers.MethodWrapper;
|
import com.djrapitops.plan.extension.implementation.providers.MethodWrapper;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.PercentageDataProvider;
|
import com.djrapitops.plan.extension.implementation.providers.PercentageDataProvider;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreIconTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreIconTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.providers.StoreDoubleProviderTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.providers.StoreProviderTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerDoubleResultTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerDoubleResultTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerPercentageResultTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerPercentageResultTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StoreServerDoubleResultTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StoreServerDoubleResultTransaction;
|
||||||
@ -108,7 +108,7 @@ class DoubleAndPercentageProviderValueGatherer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
database.executeTransaction(new StoreIconTransaction(providerInformation.getIcon()));
|
database.executeTransaction(new StoreIconTransaction(providerInformation.getIcon()));
|
||||||
database.executeTransaction(new StoreDoubleProviderTransaction(doubleProvider, serverUUID));
|
database.executeTransaction(new StoreProviderTransaction(doubleProvider, serverUUID));
|
||||||
|
|
||||||
if (doubleProvider instanceof PercentageDataProvider) {
|
if (doubleProvider instanceof PercentageDataProvider) {
|
||||||
database.executeTransaction(percStoreTransactionCreator.apply(method, result));
|
database.executeTransaction(percStoreTransactionCreator.apply(method, result));
|
||||||
|
@ -23,7 +23,7 @@ import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
|||||||
import com.djrapitops.plan.extension.implementation.providers.DataProviders;
|
import com.djrapitops.plan.extension.implementation.providers.DataProviders;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.MethodWrapper;
|
import com.djrapitops.plan.extension.implementation.providers.MethodWrapper;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreIconTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreIconTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.providers.StoreGroupProviderTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.providers.StoreProviderTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerGroupsResultTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerGroupsResultTransaction;
|
||||||
import com.djrapitops.plan.storage.database.Database;
|
import com.djrapitops.plan.storage.database.Database;
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ class GroupProviderValueGatherer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
database.executeTransaction(new StoreIconTransaction(providerInformation.getIcon()));
|
database.executeTransaction(new StoreIconTransaction(providerInformation.getIcon()));
|
||||||
database.executeTransaction(new StoreGroupProviderTransaction(groupProvider, serverUUID));
|
database.executeTransaction(new StoreProviderTransaction(groupProvider, serverUUID));
|
||||||
database.executeTransaction(new StorePlayerGroupsResultTransaction(pluginName, serverUUID, method.getMethodName(), playerUUID, result));
|
database.executeTransaction(new StorePlayerGroupsResultTransaction(pluginName, serverUUID, method.getMethodName(), playerUUID, result));
|
||||||
} catch (Exception | NoClassDefFoundError | NoSuchFieldError | NoSuchMethodError e) {
|
} catch (Exception | NoClassDefFoundError | NoSuchFieldError | NoSuchMethodError e) {
|
||||||
throw new DataExtensionMethodCallException(e, pluginName, method);
|
throw new DataExtensionMethodCallException(e, pluginName, method);
|
||||||
|
@ -18,14 +18,12 @@ package com.djrapitops.plan.extension.implementation.providers.gathering;
|
|||||||
|
|
||||||
import com.djrapitops.plan.exceptions.DataExtensionMethodCallException;
|
import com.djrapitops.plan.exceptions.DataExtensionMethodCallException;
|
||||||
import com.djrapitops.plan.extension.DataExtension;
|
import com.djrapitops.plan.extension.DataExtension;
|
||||||
import com.djrapitops.plan.extension.FormatType;
|
|
||||||
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.DataProviders;
|
import com.djrapitops.plan.extension.implementation.providers.DataProviders;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.MethodWrapper;
|
import com.djrapitops.plan.extension.implementation.providers.MethodWrapper;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.NumberDataProvider;
|
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreIconTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreIconTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.providers.StoreNumberProviderTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.providers.StoreProviderTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerNumberResultTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerNumberResultTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StoreServerNumberResultTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StoreServerNumberResultTransaction;
|
||||||
import com.djrapitops.plan.storage.database.Database;
|
import com.djrapitops.plan.storage.database.Database;
|
||||||
@ -102,10 +100,8 @@ class NumberProviderValueGatherer {
|
|||||||
return; // Error during call
|
return; // Error during call
|
||||||
}
|
}
|
||||||
|
|
||||||
FormatType formatType = NumberDataProvider.getFormatType(numberProvider);
|
|
||||||
|
|
||||||
database.executeTransaction(new StoreIconTransaction(providerInformation.getIcon()));
|
database.executeTransaction(new StoreIconTransaction(providerInformation.getIcon()));
|
||||||
database.executeTransaction(new StoreNumberProviderTransaction(numberProvider, formatType, serverUUID));
|
database.executeTransaction(new StoreProviderTransaction(numberProvider, serverUUID));
|
||||||
database.executeTransaction(storeTransactionCreator.apply(method, result));
|
database.executeTransaction(storeTransactionCreator.apply(method, result));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ import com.djrapitops.plan.extension.implementation.providers.MethodWrapper;
|
|||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreIconTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreIconTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.StorePluginTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.StorePluginTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreTabInformationTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreTabInformationTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.providers.StoreNumberProviderTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.providers.StoreProviderTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.RemoveInvalidResultsTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.RemoveInvalidResultsTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerNumberResultTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerNumberResultTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StoreServerNumberResultTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StoreServerNumberResultTransaction;
|
||||||
@ -104,25 +104,25 @@ public class ProviderValueGatherer {
|
|||||||
serverNumberGatherer = new Gatherer<>(
|
serverNumberGatherer = new Gatherer<>(
|
||||||
Long.class,
|
Long.class,
|
||||||
method -> method.callMethod(extension),
|
method -> method.callMethod(extension),
|
||||||
StoreNumberProviderTransaction::new,
|
StoreProviderTransaction::new,
|
||||||
(provider, result) -> new StoreServerNumberResultTransaction(provider, serverUUID, result)
|
(provider, result) -> new StoreServerNumberResultTransaction(provider, serverUUID, result)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disableMethodFromUse(MethodWrapper method) {
|
public void disableMethodFromUse(MethodWrapper<?> method) {
|
||||||
dataProviders.removeProviderWithMethod(method);
|
dataProviders.removeProviderWithMethod(method);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canCallEvent(CallEvents event) {
|
public boolean shouldSkipEvent(CallEvents event) {
|
||||||
if (event == CallEvents.MANUAL) {
|
if (event == CallEvents.MANUAL) {
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
for (CallEvents accepted : callEvents) {
|
for (CallEvents accepted : callEvents) {
|
||||||
if (event == accepted) {
|
if (event == accepted) {
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPluginName() {
|
public String getPluginName() {
|
||||||
@ -153,7 +153,7 @@ public class ProviderValueGatherer {
|
|||||||
UUID serverUUID = serverInfo.getServerUUID();
|
UUID serverUUID = serverInfo.getServerUUID();
|
||||||
playerNumberGatherer = new Gatherer<>(
|
playerNumberGatherer = new Gatherer<>(
|
||||||
Long.class, method -> method.callMethod(extension, playerUUID, playerName),
|
Long.class, method -> method.callMethod(extension, playerUUID, playerName),
|
||||||
StoreNumberProviderTransaction::new,
|
StoreProviderTransaction::new,
|
||||||
(provider, result) -> new StorePlayerNumberResultTransaction(provider, serverUUID, playerUUID, result)
|
(provider, result) -> new StorePlayerNumberResultTransaction(provider, serverUUID, playerUUID, result)
|
||||||
);
|
);
|
||||||
playerNumberGatherer.gather(conditions);
|
playerNumberGatherer.gather(conditions);
|
||||||
|
@ -22,9 +22,8 @@ import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
|||||||
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.DataProviders;
|
import com.djrapitops.plan.extension.implementation.providers.DataProviders;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.MethodWrapper;
|
import com.djrapitops.plan.extension.implementation.providers.MethodWrapper;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.StringDataProvider;
|
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreIconTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.StoreIconTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.providers.StoreStringProviderTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.providers.StoreProviderTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerStringResultTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StorePlayerStringResultTransaction;
|
||||||
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StoreServerStringResultTransaction;
|
import com.djrapitops.plan.extension.implementation.storage.transactions.results.StoreServerStringResultTransaction;
|
||||||
import com.djrapitops.plan.storage.database.Database;
|
import com.djrapitops.plan.storage.database.Database;
|
||||||
@ -106,7 +105,7 @@ class StringProviderValueGatherer {
|
|||||||
result = StringUtils.truncate(result, 50);
|
result = StringUtils.truncate(result, 50);
|
||||||
|
|
||||||
database.executeTransaction(new StoreIconTransaction(providerInformation.getIcon()));
|
database.executeTransaction(new StoreIconTransaction(providerInformation.getIcon()));
|
||||||
database.executeTransaction(new StoreStringProviderTransaction(stringProvider, StringDataProvider.isPlayerName(stringProvider), serverUUID));
|
database.executeTransaction(new StoreProviderTransaction(stringProvider, serverUUID));
|
||||||
database.executeTransaction(storeTransactionCreator.apply(method, result));
|
database.executeTransaction(storeTransactionCreator.apply(method, result));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,150 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of Player Analytics (Plan).
|
|
||||||
*
|
|
||||||
* Plan is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License v3 as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Plan is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with Plan. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package com.djrapitops.plan.extension.implementation.storage.transactions.providers;
|
|
||||||
|
|
||||||
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
|
||||||
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionIconTable;
|
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionPluginTable;
|
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionTabTable;
|
|
||||||
import com.djrapitops.plan.storage.database.transactions.ExecStatement;
|
|
||||||
import com.djrapitops.plan.storage.database.transactions.Executable;
|
|
||||||
import com.djrapitops.plan.storage.database.transactions.ThrowawayTransaction;
|
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.Types;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.building.Sql.AND;
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.building.Sql.WHERE;
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.tables.ExtensionProviderTable.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Transaction to store information about a dobule {@link DataProvider}.
|
|
||||||
* <p>
|
|
||||||
* Includes:
|
|
||||||
* {@link com.djrapitops.plan.extension.implementation.providers.DoubleDataProvider}.
|
|
||||||
* {@link com.djrapitops.plan.extension.implementation.providers.PercentageDataProvider}.
|
|
||||||
*
|
|
||||||
* @author Rsl1122
|
|
||||||
*/
|
|
||||||
public class StoreDoubleProviderTransaction extends ThrowawayTransaction {
|
|
||||||
|
|
||||||
private final UUID serverUUID;
|
|
||||||
private final ProviderInformation providerInformation;
|
|
||||||
|
|
||||||
public StoreDoubleProviderTransaction(DataProvider<Double> provider, UUID serverUUID) {
|
|
||||||
this.serverUUID = serverUUID;
|
|
||||||
this.providerInformation = provider.getProviderInformation();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void performOperations() {
|
|
||||||
execute(storeProvider());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Executable storeProvider() {
|
|
||||||
return connection -> {
|
|
||||||
if (!updateProvider().execute(connection)) {
|
|
||||||
return insertProvider().execute(connection);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private Executable updateProvider() {
|
|
||||||
String sql = "UPDATE " + TABLE_NAME +
|
|
||||||
" SET " +
|
|
||||||
TEXT + "=?," +
|
|
||||||
DESCRIPTION + "=?," +
|
|
||||||
PRIORITY + "=?," +
|
|
||||||
CONDITION + "=?," +
|
|
||||||
TAB_ID + "=" + ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
|
|
||||||
ICON_ID + "=" + ExtensionIconTable.STATEMENT_SELECT_ICON_ID + ',' +
|
|
||||||
SHOW_IN_PLAYERS_TABLE + "=?" +
|
|
||||||
WHERE + PLUGIN_ID + "=" + ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID +
|
|
||||||
AND + PROVIDER_NAME + "=?";
|
|
||||||
|
|
||||||
return new ExecStatement(sql) {
|
|
||||||
@Override
|
|
||||||
public void prepare(PreparedStatement statement) throws SQLException {
|
|
||||||
statement.setString(1, providerInformation.getText());
|
|
||||||
Optional<String> description = providerInformation.getDescription();
|
|
||||||
if (description.isPresent()) {
|
|
||||||
statement.setString(2, description.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(2, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
statement.setInt(3, providerInformation.getPriority());
|
|
||||||
Optional<String> condition = providerInformation.getCondition();
|
|
||||||
if (condition.isPresent()) {
|
|
||||||
statement.setString(4, condition.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(4, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
ExtensionTabTable.set3TabValuesToStatement(statement, 5, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
|
|
||||||
ExtensionIconTable.set3IconValuesToStatement(statement, 8, providerInformation.getIcon());
|
|
||||||
statement.setBoolean(11, providerInformation.isShownInPlayersTable());
|
|
||||||
ExtensionPluginTable.set2PluginValuesToStatement(statement, 12, providerInformation.getPluginName(), serverUUID);
|
|
||||||
statement.setString(14, providerInformation.getName());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private Executable insertProvider() {
|
|
||||||
String sql = "INSERT INTO " + TABLE_NAME + "(" +
|
|
||||||
PROVIDER_NAME + "," +
|
|
||||||
TEXT + "," +
|
|
||||||
DESCRIPTION + "," +
|
|
||||||
PRIORITY + "," +
|
|
||||||
CONDITION + "," +
|
|
||||||
SHOW_IN_PLAYERS_TABLE + ',' +
|
|
||||||
TAB_ID + "," +
|
|
||||||
ICON_ID + "," +
|
|
||||||
PLUGIN_ID +
|
|
||||||
") VALUES (?,?,?,?,?,?," +
|
|
||||||
ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
|
|
||||||
ExtensionIconTable.STATEMENT_SELECT_ICON_ID + "," +
|
|
||||||
ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID + ")";
|
|
||||||
return new ExecStatement(sql) {
|
|
||||||
@Override
|
|
||||||
public void prepare(PreparedStatement statement) throws SQLException {
|
|
||||||
statement.setString(1, providerInformation.getName());
|
|
||||||
statement.setString(2, providerInformation.getText());
|
|
||||||
Optional<String> description = providerInformation.getDescription();
|
|
||||||
if (description.isPresent()) {
|
|
||||||
statement.setString(3, description.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(3, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
statement.setInt(4, providerInformation.getPriority());
|
|
||||||
Optional<String> condition = providerInformation.getCondition();
|
|
||||||
if (condition.isPresent()) {
|
|
||||||
statement.setString(5, condition.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(5, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
statement.setBoolean(6, providerInformation.isShownInPlayersTable());
|
|
||||||
ExtensionTabTable.set3TabValuesToStatement(statement, 7, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
|
|
||||||
ExtensionIconTable.set3IconValuesToStatement(statement, 10, providerInformation.getIcon());
|
|
||||||
ExtensionPluginTable.set2PluginValuesToStatement(statement, 13, providerInformation.getPluginName(), serverUUID);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,126 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of Player Analytics (Plan).
|
|
||||||
*
|
|
||||||
* Plan is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License v3 as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Plan is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with Plan. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package com.djrapitops.plan.extension.implementation.storage.transactions.providers;
|
|
||||||
|
|
||||||
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
|
||||||
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionIconTable;
|
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionPluginTable;
|
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionTabTable;
|
|
||||||
import com.djrapitops.plan.storage.database.transactions.ExecStatement;
|
|
||||||
import com.djrapitops.plan.storage.database.transactions.Executable;
|
|
||||||
import com.djrapitops.plan.storage.database.transactions.ThrowawayTransaction;
|
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.Types;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.building.Sql.AND;
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.building.Sql.WHERE;
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.tables.ExtensionProviderTable.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Transaction to store information about a {@link com.djrapitops.plan.extension.implementation.providers.GroupDataProvider}.
|
|
||||||
*
|
|
||||||
* @author Rsl1122
|
|
||||||
*/
|
|
||||||
public class StoreGroupProviderTransaction extends ThrowawayTransaction {
|
|
||||||
|
|
||||||
private final UUID serverUUID;
|
|
||||||
private final ProviderInformation providerInformation;
|
|
||||||
|
|
||||||
public StoreGroupProviderTransaction(DataProvider<String[]> provider, UUID serverUUID) {
|
|
||||||
this.serverUUID = serverUUID;
|
|
||||||
providerInformation = provider.getProviderInformation();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void performOperations() {
|
|
||||||
execute(storeProvider());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Executable storeProvider() {
|
|
||||||
return connection -> {
|
|
||||||
if (!updateProvider().execute(connection)) {
|
|
||||||
return insertProvider().execute(connection);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private Executable updateProvider() {
|
|
||||||
String sql = "UPDATE " + TABLE_NAME +
|
|
||||||
" SET " +
|
|
||||||
TEXT + "=?," +
|
|
||||||
CONDITION + "=?," +
|
|
||||||
TAB_ID + "=" + ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
|
|
||||||
ICON_ID + "=" + ExtensionIconTable.STATEMENT_SELECT_ICON_ID +
|
|
||||||
WHERE + PLUGIN_ID + "=" + ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID +
|
|
||||||
AND + PROVIDER_NAME + "=?";
|
|
||||||
|
|
||||||
return new ExecStatement(sql) {
|
|
||||||
@Override
|
|
||||||
public void prepare(PreparedStatement statement) throws SQLException {
|
|
||||||
statement.setString(1, providerInformation.getText());
|
|
||||||
Optional<String> condition = providerInformation.getCondition();
|
|
||||||
if (condition.isPresent()) {
|
|
||||||
statement.setString(2, condition.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(2, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
ExtensionTabTable.set3TabValuesToStatement(statement, 3, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
|
|
||||||
ExtensionIconTable.set3IconValuesToStatement(statement, 6, providerInformation.getIcon());
|
|
||||||
ExtensionPluginTable.set2PluginValuesToStatement(statement, 9, providerInformation.getPluginName(), serverUUID);
|
|
||||||
statement.setString(11, providerInformation.getName());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private Executable insertProvider() {
|
|
||||||
String sql = "INSERT INTO " + TABLE_NAME + "(" +
|
|
||||||
PROVIDER_NAME + "," +
|
|
||||||
TEXT + "," +
|
|
||||||
CONDITION + "," +
|
|
||||||
SHOW_IN_PLAYERS_TABLE + "," +
|
|
||||||
TAB_ID + "," +
|
|
||||||
ICON_ID + "," +
|
|
||||||
PLUGIN_ID +
|
|
||||||
") VALUES (?,?,?,?," +
|
|
||||||
ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
|
|
||||||
ExtensionIconTable.STATEMENT_SELECT_ICON_ID + "," +
|
|
||||||
ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID + ")";
|
|
||||||
return new ExecStatement(sql) {
|
|
||||||
@Override
|
|
||||||
public void prepare(PreparedStatement statement) throws SQLException {
|
|
||||||
statement.setString(1, providerInformation.getName());
|
|
||||||
statement.setString(2, providerInformation.getText());
|
|
||||||
Optional<String> condition = providerInformation.getCondition();
|
|
||||||
if (condition.isPresent()) {
|
|
||||||
statement.setString(3, condition.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(3, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
statement.setBoolean(4, providerInformation.isShownInPlayersTable());
|
|
||||||
ExtensionTabTable.set3TabValuesToStatement(statement, 5, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
|
|
||||||
ExtensionIconTable.set3IconValuesToStatement(statement, 8, providerInformation.getIcon());
|
|
||||||
ExtensionPluginTable.set2PluginValuesToStatement(statement, 11, providerInformation.getPluginName(), serverUUID);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,158 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of Player Analytics (Plan).
|
|
||||||
*
|
|
||||||
* Plan is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License v3 as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Plan is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with Plan. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package com.djrapitops.plan.extension.implementation.storage.transactions.providers;
|
|
||||||
|
|
||||||
import com.djrapitops.plan.extension.FormatType;
|
|
||||||
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
|
||||||
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
|
||||||
import com.djrapitops.plan.extension.implementation.providers.NumberDataProvider;
|
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionIconTable;
|
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionPluginTable;
|
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionTabTable;
|
|
||||||
import com.djrapitops.plan.storage.database.transactions.ExecStatement;
|
|
||||||
import com.djrapitops.plan.storage.database.transactions.Executable;
|
|
||||||
import com.djrapitops.plan.storage.database.transactions.ThrowawayTransaction;
|
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.Types;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.building.Sql.AND;
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.building.Sql.WHERE;
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.tables.ExtensionProviderTable.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Transaction to store information about a {@link com.djrapitops.plan.extension.implementation.providers.NumberDataProvider}.
|
|
||||||
*
|
|
||||||
* @author Rsl1122
|
|
||||||
*/
|
|
||||||
@SuppressWarnings("Duplicates")
|
|
||||||
public class StoreNumberProviderTransaction extends ThrowawayTransaction {
|
|
||||||
|
|
||||||
private final FormatType formatType;
|
|
||||||
private final UUID serverUUID;
|
|
||||||
private final ProviderInformation providerInformation;
|
|
||||||
|
|
||||||
public StoreNumberProviderTransaction(DataProvider<Long> provider, FormatType formatType, UUID serverUUID) {
|
|
||||||
this.formatType = formatType;
|
|
||||||
this.serverUUID = serverUUID;
|
|
||||||
this.providerInformation = provider.getProviderInformation();
|
|
||||||
}
|
|
||||||
|
|
||||||
public StoreNumberProviderTransaction(DataProvider<Long> provider, UUID serverUUID) {
|
|
||||||
this(provider, NumberDataProvider.getFormatType(provider), serverUUID);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void performOperations() {
|
|
||||||
execute(storeProvider());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Executable storeProvider() {
|
|
||||||
return connection -> {
|
|
||||||
if (!updateProvider().execute(connection)) {
|
|
||||||
return insertProvider().execute(connection);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private Executable updateProvider() {
|
|
||||||
String sql = "UPDATE " + TABLE_NAME + " SET " +
|
|
||||||
TEXT + "=?," +
|
|
||||||
DESCRIPTION + "=?," +
|
|
||||||
PRIORITY + "=?," +
|
|
||||||
CONDITION + "=?," +
|
|
||||||
SHOW_IN_PLAYERS_TABLE + "=?," +
|
|
||||||
FORMAT_TYPE + "=?," +
|
|
||||||
TAB_ID + "=" + ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
|
|
||||||
ICON_ID + "=" + ExtensionIconTable.STATEMENT_SELECT_ICON_ID +
|
|
||||||
WHERE + PLUGIN_ID + "=" + ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID +
|
|
||||||
AND + PROVIDER_NAME + "=?";
|
|
||||||
|
|
||||||
return new ExecStatement(sql) {
|
|
||||||
@Override
|
|
||||||
public void prepare(PreparedStatement statement) throws SQLException {
|
|
||||||
statement.setString(1, providerInformation.getText());
|
|
||||||
Optional<String> description = providerInformation.getDescription();
|
|
||||||
if (description.isPresent()) {
|
|
||||||
statement.setString(2, description.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(2, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
statement.setInt(3, providerInformation.getPriority());
|
|
||||||
Optional<String> condition = providerInformation.getCondition();
|
|
||||||
if (condition.isPresent()) {
|
|
||||||
statement.setString(4, condition.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(4, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
statement.setBoolean(5, providerInformation.isShownInPlayersTable());
|
|
||||||
statement.setString(6, formatType.name());
|
|
||||||
ExtensionTabTable.set3TabValuesToStatement(statement, 7, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
|
|
||||||
ExtensionIconTable.set3IconValuesToStatement(statement, 10, providerInformation.getIcon());
|
|
||||||
ExtensionPluginTable.set2PluginValuesToStatement(statement, 13, providerInformation.getPluginName(), serverUUID);
|
|
||||||
statement.setString(15, providerInformation.getName());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private Executable insertProvider() {
|
|
||||||
String sql = "INSERT INTO " + TABLE_NAME + "(" +
|
|
||||||
PROVIDER_NAME + "," +
|
|
||||||
TEXT + "," +
|
|
||||||
DESCRIPTION + "," +
|
|
||||||
PRIORITY + "," +
|
|
||||||
CONDITION + "," +
|
|
||||||
SHOW_IN_PLAYERS_TABLE + ',' +
|
|
||||||
FORMAT_TYPE + "," +
|
|
||||||
TAB_ID + "," +
|
|
||||||
ICON_ID + "," +
|
|
||||||
PLUGIN_ID +
|
|
||||||
") VALUES (?,?,?,?,?,?,?," +
|
|
||||||
ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
|
|
||||||
ExtensionIconTable.STATEMENT_SELECT_ICON_ID + "," +
|
|
||||||
ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID + ")";
|
|
||||||
return new ExecStatement(sql) {
|
|
||||||
@Override
|
|
||||||
public void prepare(PreparedStatement statement) throws SQLException {
|
|
||||||
statement.setString(1, providerInformation.getName());
|
|
||||||
statement.setString(2, providerInformation.getText());
|
|
||||||
Optional<String> description = providerInformation.getDescription();
|
|
||||||
if (description.isPresent()) {
|
|
||||||
statement.setString(3, description.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(3, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
statement.setInt(4, providerInformation.getPriority());
|
|
||||||
Optional<String> condition = providerInformation.getCondition();
|
|
||||||
if (condition.isPresent()) {
|
|
||||||
statement.setString(5, condition.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(5, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
statement.setBoolean(6, providerInformation.isShownInPlayersTable());
|
|
||||||
statement.setString(7, formatType.name());
|
|
||||||
ExtensionTabTable.set3TabValuesToStatement(statement, 8, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
|
|
||||||
ExtensionIconTable.set3IconValuesToStatement(statement, 11, providerInformation.getIcon());
|
|
||||||
ExtensionPluginTable.set2PluginValuesToStatement(statement, 14, providerInformation.getPluginName(), serverUUID);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
@ -16,8 +16,13 @@
|
|||||||
*/
|
*/
|
||||||
package com.djrapitops.plan.extension.implementation.storage.transactions.providers;
|
package com.djrapitops.plan.extension.implementation.storage.transactions.providers;
|
||||||
|
|
||||||
|
import com.djrapitops.plan.extension.FormatType;
|
||||||
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
||||||
|
import com.djrapitops.plan.extension.implementation.providers.BooleanDataProvider;
|
||||||
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
||||||
|
import com.djrapitops.plan.extension.implementation.providers.NumberDataProvider;
|
||||||
|
import com.djrapitops.plan.extension.implementation.providers.StringDataProvider;
|
||||||
|
import com.djrapitops.plan.storage.database.sql.building.Sql;
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionIconTable;
|
import com.djrapitops.plan.storage.database.sql.tables.ExtensionIconTable;
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionPluginTable;
|
import com.djrapitops.plan.storage.database.sql.tables.ExtensionPluginTable;
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionTabTable;
|
import com.djrapitops.plan.storage.database.sql.tables.ExtensionTabTable;
|
||||||
@ -27,8 +32,6 @@ import com.djrapitops.plan.storage.database.transactions.ThrowawayTransaction;
|
|||||||
|
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Types;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.building.Sql.AND;
|
import static com.djrapitops.plan.storage.database.sql.building.Sql.AND;
|
||||||
@ -36,22 +39,18 @@ import static com.djrapitops.plan.storage.database.sql.building.Sql.WHERE;
|
|||||||
import static com.djrapitops.plan.storage.database.sql.tables.ExtensionProviderTable.*;
|
import static com.djrapitops.plan.storage.database.sql.tables.ExtensionProviderTable.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transaction to store information about a {@link com.djrapitops.plan.extension.implementation.providers.BooleanDataProvider}.
|
* Transaction to store information about a simple {@link DataProvider}.
|
||||||
*
|
*
|
||||||
* @author Rsl1122
|
* @author Rsl1122
|
||||||
*/
|
*/
|
||||||
public class StoreBooleanProviderTransaction extends ThrowawayTransaction {
|
public class StoreProviderTransaction extends ThrowawayTransaction {
|
||||||
|
|
||||||
private final String providedCondition;
|
private final DataProvider<?> provider;
|
||||||
private final boolean hidden;
|
|
||||||
private final UUID serverUUID;
|
private final UUID serverUUID;
|
||||||
private final ProviderInformation providerInformation;
|
|
||||||
|
|
||||||
public StoreBooleanProviderTransaction(DataProvider<Boolean> booleanProvider, String providedCondition, boolean hidden, UUID serverUUID) {
|
public StoreProviderTransaction(DataProvider<?> provider, UUID serverUUID) {
|
||||||
this.providedCondition = providedCondition;
|
this.provider = provider;
|
||||||
this.hidden = hidden;
|
|
||||||
this.serverUUID = serverUUID;
|
this.serverUUID = serverUUID;
|
||||||
this.providerInformation = booleanProvider.getProviderInformation();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -75,91 +74,100 @@ public class StoreBooleanProviderTransaction extends ThrowawayTransaction {
|
|||||||
DESCRIPTION + "=?," +
|
DESCRIPTION + "=?," +
|
||||||
PRIORITY + "=?," +
|
PRIORITY + "=?," +
|
||||||
CONDITION + "=?," +
|
CONDITION + "=?," +
|
||||||
PROVIDED_CONDITION + "=?," +
|
|
||||||
TAB_ID + '=' + ExtensionTabTable.STATEMENT_SELECT_TAB_ID + ',' +
|
|
||||||
ICON_ID + '=' + ExtensionIconTable.STATEMENT_SELECT_ICON_ID + ',' +
|
ICON_ID + '=' + ExtensionIconTable.STATEMENT_SELECT_ICON_ID + ',' +
|
||||||
|
TAB_ID + '=' + ExtensionTabTable.STATEMENT_SELECT_TAB_ID + ',' +
|
||||||
|
SHOW_IN_PLAYERS_TABLE + "=?," +
|
||||||
HIDDEN + "=?," +
|
HIDDEN + "=?," +
|
||||||
SHOW_IN_PLAYERS_TABLE + "=?" +
|
PROVIDED_CONDITION + "=?," +
|
||||||
|
FORMAT_TYPE + "=?," +
|
||||||
|
IS_PLAYER_NAME + "=?" +
|
||||||
WHERE + PLUGIN_ID + '=' + ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID +
|
WHERE + PLUGIN_ID + '=' + ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID +
|
||||||
AND + PROVIDER_NAME + "=?";
|
AND + PROVIDER_NAME + "=?";
|
||||||
|
|
||||||
return new ExecStatement(sql) {
|
return new ExecStatement(sql) {
|
||||||
@Override
|
@Override
|
||||||
public void prepare(PreparedStatement statement) throws SQLException {
|
public void prepare(PreparedStatement statement) throws SQLException {
|
||||||
statement.setString(1, providerInformation.getText());
|
ProviderInformation info = provider.getProviderInformation();
|
||||||
Optional<String> description = providerInformation.getDescription();
|
|
||||||
if (description.isPresent()) {
|
// Found for all providers
|
||||||
statement.setString(2, description.get());
|
statement.setString(1, info.getText());
|
||||||
} else {
|
Sql.setStringOrNull(statement, 2, info.getDescription().orElse(null));
|
||||||
statement.setNull(2, Types.VARCHAR);
|
statement.setInt(3, info.getPriority());
|
||||||
}
|
Sql.setStringOrNull(statement, 4, info.getCondition().orElse(null));
|
||||||
statement.setInt(3, providerInformation.getPriority());
|
ExtensionTabTable.set3TabValuesToStatement(statement, 5, info.getTab().orElse(null), info.getPluginName(), serverUUID);
|
||||||
Optional<String> condition = providerInformation.getCondition();
|
ExtensionIconTable.set3IconValuesToStatement(statement, 8, info.getIcon());
|
||||||
if (condition.isPresent()) {
|
statement.setBoolean(11, info.isShownInPlayersTable());
|
||||||
statement.setString(4, condition.get());
|
|
||||||
} else {
|
// Specific provider cases
|
||||||
statement.setNull(4, Types.VARCHAR);
|
statement.setBoolean(12, BooleanDataProvider.isHidden(provider));
|
||||||
}
|
Sql.setStringOrNull(statement, 13, BooleanDataProvider.getProvidedCondition(provider).orElse(null));
|
||||||
if (providedCondition != null) {
|
Sql.setStringOrNull(statement, 14, NumberDataProvider.getFormatType(provider).map(FormatType::name).orElse(null));
|
||||||
statement.setString(5, providedCondition);
|
statement.setBoolean(15, StringDataProvider.isPlayerName(provider));
|
||||||
} else {
|
|
||||||
statement.setNull(5, Types.VARCHAR);
|
// Find appropriate provider
|
||||||
}
|
ExtensionPluginTable.set2PluginValuesToStatement(statement, 16, info.getPluginName(), serverUUID);
|
||||||
ExtensionTabTable.set3TabValuesToStatement(statement, 6, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
|
statement.setString(18, info.getName());
|
||||||
ExtensionIconTable.set3IconValuesToStatement(statement, 9, providerInformation.getIcon());
|
|
||||||
statement.setBoolean(12, hidden);
|
|
||||||
statement.setBoolean(13, providerInformation.isShownInPlayersTable());
|
|
||||||
ExtensionPluginTable.set2PluginValuesToStatement(statement, 14, providerInformation.getPluginName(), serverUUID);
|
|
||||||
statement.setString(16, providerInformation.getName());
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private Executable insertProvider() {
|
private Executable insertProvider() {
|
||||||
|
/* PROVIDER_NAME
|
||||||
|
PLUGIN_ID
|
||||||
|
|
||||||
|
TEXT
|
||||||
|
DESCRIPTION // Can be null
|
||||||
|
PRIORITY
|
||||||
|
GROUPABLE // default false
|
||||||
|
CONDITION // Can be null, related to @Conditional
|
||||||
|
ICON_ID
|
||||||
|
TAB_ID // Can be null, related to @Tab
|
||||||
|
SHOW_IN_PLAYERS_TABLE // default false
|
||||||
|
HIDDEN // default false, related to @BooleanProvider
|
||||||
|
PROVIDED_CONDITION // Can be null, related to @BooleanProvider
|
||||||
|
FORMAT_TYPE // Can be null, related to @NumberProvider
|
||||||
|
IS_PLAYER_NAME // default false, related to @StringProvider */
|
||||||
String sql = "INSERT INTO " + TABLE_NAME + '(' +
|
String sql = "INSERT INTO " + TABLE_NAME + '(' +
|
||||||
PROVIDER_NAME + ',' +
|
PROVIDER_NAME + ',' +
|
||||||
TEXT + ',' +
|
TEXT + ',' +
|
||||||
DESCRIPTION + ',' +
|
DESCRIPTION + ',' +
|
||||||
PRIORITY + ',' +
|
PRIORITY + ',' +
|
||||||
CONDITION + ',' +
|
CONDITION + ',' +
|
||||||
PROVIDED_CONDITION + ',' +
|
|
||||||
HIDDEN + ',' +
|
|
||||||
SHOW_IN_PLAYERS_TABLE + ',' +
|
SHOW_IN_PLAYERS_TABLE + ',' +
|
||||||
|
HIDDEN + ',' +
|
||||||
|
PROVIDED_CONDITION + ',' +
|
||||||
|
FORMAT_TYPE + ',' +
|
||||||
|
IS_PLAYER_NAME + ',' +
|
||||||
TAB_ID + ',' +
|
TAB_ID + ',' +
|
||||||
ICON_ID + ',' +
|
ICON_ID + ',' +
|
||||||
PLUGIN_ID +
|
PLUGIN_ID +
|
||||||
") VALUES (?,?,?,?,?,?,?,?," +
|
") VALUES (?,?,?,?,?,?,?,?,?,?," +
|
||||||
ExtensionTabTable.STATEMENT_SELECT_TAB_ID + ',' +
|
ExtensionTabTable.STATEMENT_SELECT_TAB_ID + ',' +
|
||||||
ExtensionIconTable.STATEMENT_SELECT_ICON_ID + ',' +
|
ExtensionIconTable.STATEMENT_SELECT_ICON_ID + ',' +
|
||||||
ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID + ')';
|
ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID + ')';
|
||||||
return new ExecStatement(sql) {
|
return new ExecStatement(sql) {
|
||||||
@Override
|
@Override
|
||||||
public void prepare(PreparedStatement statement) throws SQLException {
|
public void prepare(PreparedStatement statement) throws SQLException {
|
||||||
statement.setString(1, providerInformation.getName());
|
ProviderInformation info = provider.getProviderInformation();
|
||||||
statement.setString(2, providerInformation.getText());
|
|
||||||
Optional<String> description = providerInformation.getDescription();
|
// Found for all providers
|
||||||
if (description.isPresent()) {
|
statement.setString(1, info.getName());
|
||||||
statement.setString(3, description.get());
|
statement.setString(2, info.getText());
|
||||||
} else {
|
Sql.setStringOrNull(statement, 3, info.getDescription().orElse(null));
|
||||||
statement.setNull(3, Types.VARCHAR);
|
statement.setInt(4, info.getPriority());
|
||||||
}
|
Sql.setStringOrNull(statement, 5, info.getCondition().orElse(null));
|
||||||
statement.setInt(4, providerInformation.getPriority());
|
statement.setBoolean(6, info.isShownInPlayersTable());
|
||||||
Optional<String> condition = providerInformation.getCondition();
|
|
||||||
if (condition.isPresent()) {
|
// Specific provider cases
|
||||||
statement.setString(5, condition.get());
|
statement.setBoolean(7, BooleanDataProvider.isHidden(provider));
|
||||||
} else {
|
Sql.setStringOrNull(statement, 8, BooleanDataProvider.getProvidedCondition(provider).orElse(null));
|
||||||
statement.setNull(5, Types.VARCHAR);
|
Sql.setStringOrNull(statement, 9, NumberDataProvider.getFormatType(provider).map(FormatType::name).orElse(null));
|
||||||
}
|
statement.setBoolean(10, StringDataProvider.isPlayerName(provider));
|
||||||
if (providedCondition != null) {
|
|
||||||
statement.setString(6, providedCondition);
|
// Found for all providers
|
||||||
} else {
|
ExtensionTabTable.set3TabValuesToStatement(statement, 11, info.getTab().orElse(null), info.getPluginName(), serverUUID);
|
||||||
statement.setNull(6, Types.VARCHAR);
|
ExtensionIconTable.set3IconValuesToStatement(statement, 14, info.getIcon());
|
||||||
}
|
ExtensionPluginTable.set2PluginValuesToStatement(statement, 17, info.getPluginName(), serverUUID);
|
||||||
statement.setBoolean(7, hidden);
|
|
||||||
statement.setBoolean(8, providerInformation.isShownInPlayersTable());
|
|
||||||
ExtensionTabTable.set3TabValuesToStatement(statement, 9, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
|
|
||||||
ExtensionIconTable.set3IconValuesToStatement(statement, 12, providerInformation.getIcon());
|
|
||||||
ExtensionPluginTable.set2PluginValuesToStatement(statement, 15, providerInformation.getPluginName(), serverUUID);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
@ -1,152 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of Player Analytics (Plan).
|
|
||||||
*
|
|
||||||
* Plan is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License v3 as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Plan is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with Plan. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package com.djrapitops.plan.extension.implementation.storage.transactions.providers;
|
|
||||||
|
|
||||||
import com.djrapitops.plan.extension.implementation.ProviderInformation;
|
|
||||||
import com.djrapitops.plan.extension.implementation.providers.DataProvider;
|
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionIconTable;
|
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionPluginTable;
|
|
||||||
import com.djrapitops.plan.storage.database.sql.tables.ExtensionTabTable;
|
|
||||||
import com.djrapitops.plan.storage.database.transactions.ExecStatement;
|
|
||||||
import com.djrapitops.plan.storage.database.transactions.Executable;
|
|
||||||
import com.djrapitops.plan.storage.database.transactions.ThrowawayTransaction;
|
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.Types;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.building.Sql.AND;
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.building.Sql.WHERE;
|
|
||||||
import static com.djrapitops.plan.storage.database.sql.tables.ExtensionProviderTable.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Transaction to store information about a {@link com.djrapitops.plan.extension.implementation.providers.StringDataProvider}.
|
|
||||||
*
|
|
||||||
* @author Rsl1122
|
|
||||||
*/
|
|
||||||
public class StoreStringProviderTransaction extends ThrowawayTransaction {
|
|
||||||
|
|
||||||
private final boolean playerName;
|
|
||||||
private final UUID serverUUID;
|
|
||||||
private final ProviderInformation providerInformation;
|
|
||||||
|
|
||||||
public StoreStringProviderTransaction(DataProvider<String> provider, boolean playerName, UUID serverUUID) {
|
|
||||||
this.playerName = playerName;
|
|
||||||
this.serverUUID = serverUUID;
|
|
||||||
providerInformation = provider.getProviderInformation();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void performOperations() {
|
|
||||||
execute(storeProvider());
|
|
||||||
}
|
|
||||||
|
|
||||||
private Executable storeProvider() {
|
|
||||||
return connection -> {
|
|
||||||
if (!updateProvider().execute(connection)) {
|
|
||||||
return insertProvider().execute(connection);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private Executable updateProvider() {
|
|
||||||
String sql = "UPDATE " + TABLE_NAME +
|
|
||||||
" SET " +
|
|
||||||
TEXT + "=?," +
|
|
||||||
DESCRIPTION + "=?," +
|
|
||||||
PRIORITY + "=?," +
|
|
||||||
CONDITION + "=?," +
|
|
||||||
SHOW_IN_PLAYERS_TABLE + "=?," +
|
|
||||||
IS_PLAYER_NAME + "=?," +
|
|
||||||
TAB_ID + "=" + ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
|
|
||||||
ICON_ID + "=" + ExtensionIconTable.STATEMENT_SELECT_ICON_ID +
|
|
||||||
WHERE + PLUGIN_ID + "=" + ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID +
|
|
||||||
AND + PROVIDER_NAME + "=?";
|
|
||||||
|
|
||||||
return new ExecStatement(sql) {
|
|
||||||
@Override
|
|
||||||
public void prepare(PreparedStatement statement) throws SQLException {
|
|
||||||
statement.setString(1, providerInformation.getText());
|
|
||||||
Optional<String> description = providerInformation.getDescription();
|
|
||||||
if (description.isPresent()) {
|
|
||||||
statement.setString(2, description.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(2, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
statement.setInt(3, providerInformation.getPriority());
|
|
||||||
Optional<String> condition = providerInformation.getCondition();
|
|
||||||
if (condition.isPresent()) {
|
|
||||||
statement.setString(4, condition.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(4, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
statement.setBoolean(5, providerInformation.isShownInPlayersTable());
|
|
||||||
statement.setBoolean(6, playerName);
|
|
||||||
ExtensionTabTable.set3TabValuesToStatement(statement, 7, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
|
|
||||||
ExtensionIconTable.set3IconValuesToStatement(statement, 10, providerInformation.getIcon());
|
|
||||||
ExtensionPluginTable.set2PluginValuesToStatement(statement, 13, providerInformation.getPluginName(), serverUUID);
|
|
||||||
statement.setString(15, providerInformation.getName());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private Executable insertProvider() {
|
|
||||||
String sql = "INSERT INTO " + TABLE_NAME + "(" +
|
|
||||||
PROVIDER_NAME + "," +
|
|
||||||
TEXT + "," +
|
|
||||||
DESCRIPTION + "," +
|
|
||||||
PRIORITY + "," +
|
|
||||||
CONDITION + "," +
|
|
||||||
SHOW_IN_PLAYERS_TABLE + "," +
|
|
||||||
IS_PLAYER_NAME + "," +
|
|
||||||
TAB_ID + "," +
|
|
||||||
ICON_ID + "," +
|
|
||||||
PLUGIN_ID +
|
|
||||||
") VALUES (?,?,?,?,?,?,?," +
|
|
||||||
ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
|
|
||||||
ExtensionIconTable.STATEMENT_SELECT_ICON_ID + "," +
|
|
||||||
ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID + ")";
|
|
||||||
return new ExecStatement(sql) {
|
|
||||||
@Override
|
|
||||||
public void prepare(PreparedStatement statement) throws SQLException {
|
|
||||||
statement.setString(1, providerInformation.getName());
|
|
||||||
statement.setString(2, providerInformation.getText());
|
|
||||||
Optional<String> description = providerInformation.getDescription();
|
|
||||||
if (description.isPresent()) {
|
|
||||||
statement.setString(3, description.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(3, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
statement.setInt(4, providerInformation.getPriority());
|
|
||||||
Optional<String> condition = providerInformation.getCondition();
|
|
||||||
if (condition.isPresent()) {
|
|
||||||
statement.setString(5, condition.get());
|
|
||||||
} else {
|
|
||||||
statement.setNull(5, Types.VARCHAR);
|
|
||||||
}
|
|
||||||
statement.setBoolean(6, providerInformation.isShownInPlayersTable());
|
|
||||||
statement.setBoolean(7, playerName);
|
|
||||||
ExtensionTabTable.set3TabValuesToStatement(statement, 8, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
|
|
||||||
ExtensionIconTable.set3IconValuesToStatement(statement, 11, providerInformation.getIcon());
|
|
||||||
ExtensionPluginTable.set2PluginValuesToStatement(statement, 14, providerInformation.getPluginName(), serverUUID);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
@ -16,6 +16,9 @@
|
|||||||
*/
|
*/
|
||||||
package com.djrapitops.plan.storage.database.sql.building;
|
package com.djrapitops.plan.storage.database.sql.building;
|
||||||
|
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Types;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -61,6 +64,14 @@ public abstract class Sql {
|
|||||||
return TimeUnit.DAYS.toMillis(day + 2L);
|
return TimeUnit.DAYS.toMillis(day + 2L);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setStringOrNull(PreparedStatement statement, int index, String value) throws SQLException {
|
||||||
|
if (value != null) {
|
||||||
|
statement.setString(index, value);
|
||||||
|
} else {
|
||||||
|
statement.setNull(index, Types.VARCHAR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public abstract String epochSecondToDate(String sql);
|
public abstract String epochSecondToDate(String sql);
|
||||||
|
|
||||||
public abstract String dateToEpochSecond(String sql);
|
public abstract String dateToEpochSecond(String sql);
|
||||||
|
@ -49,7 +49,7 @@ public class ExtensionTabTable {
|
|||||||
AND + PLUGIN_ID + "=" + ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID + " LIMIT 1)";
|
AND + PLUGIN_ID + "=" + ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID + " LIMIT 1)";
|
||||||
|
|
||||||
public static void set3TabValuesToStatement(PreparedStatement statement, int parameterIndex, String tabName, String pluginName, UUID serverUUID) throws SQLException {
|
public static void set3TabValuesToStatement(PreparedStatement statement, int parameterIndex, String tabName, String pluginName, UUID serverUUID) throws SQLException {
|
||||||
statement.setString(parameterIndex, tabName);
|
Sql.setStringOrNull(statement, parameterIndex, tabName);
|
||||||
ExtensionPluginTable.set2PluginValuesToStatement(statement, parameterIndex + 1, pluginName, serverUUID);
|
ExtensionPluginTable.set2PluginValuesToStatement(statement, parameterIndex + 1, pluginName, serverUUID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user