[AB-197] splitting utility maven module into separate maven modules

aligning some package names
removing some unnecessary computed values from liquibase
This commit is contained in:
Sheldan
2021-03-12 17:29:49 +01:00
parent e2da800d84
commit 2ed456c164
835 changed files with 12790 additions and 3310 deletions

View File

@@ -1,12 +1,12 @@
package dev.sheldan.abstracto.core;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import java.util.Collections;
import java.util.List;
public interface FeatureAware {
FeatureEnum getFeature();
FeatureDefinition getFeature();
default List<FeatureMode> getFeatureModeLimitations() { return Collections.emptyList();}
}

View File

@@ -1,11 +1,11 @@
package dev.sheldan.abstracto.core.command;
import dev.sheldan.abstracto.core.command.config.ModuleInfo;
import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import dev.sheldan.abstracto.core.command.config.ModuleDefinition;
import org.springframework.stereotype.Component;
@Component
public class UtilityModuleInterface implements ModuleInterface {
public class UtilityModuleDefinition implements ModuleDefinition {
public static final String UTILITY = "utility";

View File

@@ -3,7 +3,7 @@ package dev.sheldan.abstracto.core.command.condition;
import dev.sheldan.abstracto.core.command.Command;
import dev.sheldan.abstracto.core.command.condition.detail.FeatureDisabledConditionDetail;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.service.FeatureConfigService;
import dev.sheldan.abstracto.core.service.FeatureFlagService;
import lombok.extern.slf4j.Slf4j;
@@ -22,7 +22,7 @@ public class FeatureEnabledCondition implements CommandCondition {
@Override
public ConditionResult shouldExecute(CommandContext context, Command command) {
FeatureEnum feature = command.getFeature();
FeatureDefinition feature = command.getFeature();
boolean featureFlagValue = true;
if(feature != null) {
featureFlagValue = featureFlagService.getFeatureFlagValue(feature, context.getGuild().getIdLong());

View File

@@ -3,7 +3,7 @@ package dev.sheldan.abstracto.core.command.condition;
import dev.sheldan.abstracto.core.command.Command;
import dev.sheldan.abstracto.core.command.condition.detail.IncorrectFeatureModeConditionDetail;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.service.FeatureModeService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -18,7 +18,7 @@ public class FeatureModeCondition implements CommandCondition {
@Override
public ConditionResult shouldExecute(CommandContext context, Command command) {
if(!command.getFeatureModeLimitations().isEmpty()){
FeatureEnum feature = command.getFeature();
FeatureDefinition feature = command.getFeature();
if(feature != null) {
for (FeatureMode featureModeLimitation : command.getFeatureModeLimitations()) {
if(modeService.featureModeActive(feature, context.getUserInitiatedContext().getGuild().getIdLong(), featureModeLimitation)) {

View File

@@ -2,7 +2,7 @@ package dev.sheldan.abstracto.core.command.condition.detail;
import dev.sheldan.abstracto.core.command.condition.ConditionDetail;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.models.exception.IncorrectFeatureModeModel;
@@ -12,8 +12,8 @@ public class IncorrectFeatureModeConditionDetail implements ConditionDetail {
private final IncorrectFeatureModeModel model;
public IncorrectFeatureModeConditionDetail(FeatureEnum featureEnum, List<FeatureMode> requiredModes) {
this.model = IncorrectFeatureModeModel.builder().featureEnum(featureEnum).requiredModes(requiredModes).build();
public IncorrectFeatureModeConditionDetail(FeatureDefinition featureDefinition, List<FeatureMode> requiredModes) {
this.model = IncorrectFeatureModeModel.builder().featureDefinition(featureDefinition).requiredModes(requiredModes).build();
}
@Override

View File

@@ -3,7 +3,7 @@ package dev.sheldan.abstracto.core.command.config;
import org.springframework.stereotype.Component;
@Component
public class AbstractoModuleInterface implements ModuleInterface {
public class AbstractoModuleDefinition implements ModuleDefinition {
@Override
public ModuleInfo getInfo() {
return ModuleInfo.builder().name("default").templated(true).build();

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.core.command.config;
public interface ModuleInterface {
public interface ModuleDefinition {
ModuleInfo getInfo();
String getParentModule();
}

View File

@@ -9,7 +9,7 @@ import java.util.List;
@Builder
@Getter
public class PackedModule {
private ModuleInterface moduleInterface;
private ModuleDefinition moduleDefinition;
private PackedModule parentModule;
private List<PackedModule> subModules;
private List<Command> commands;

View File

@@ -11,6 +11,6 @@ import java.util.List;
@Setter
@Getter
public class SingleLevelPackedModule {
private ModuleInterface moduleInterface;
private ModuleDefinition moduleDefinition;
private List<Command> commands;
}

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.core.command.config.features;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@@ -11,8 +11,8 @@ import java.util.List;
public class CoreFeature implements FeatureConfig {
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
@Override

View File

@@ -1,15 +1,15 @@
package dev.sheldan.abstracto.core.command.config.features;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import lombok.Getter;
@Getter
public enum CoreFeatures implements FeatureEnum {
public enum CoreFeatureDefinition implements FeatureDefinition {
CORE_FEATURE("core");
private String key;
CoreFeatures(String key) {
CoreFeatureDefinition(String key) {
this.key = key;
}
}

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.core.command.exception;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.core.models.exception.IncorrectFeatureModeModel;
@@ -11,8 +11,8 @@ import java.util.List;
public class IncorrectFeatureModeException extends AbstractoRunTimeException implements Templatable {
private final IncorrectFeatureModeModel model;
public IncorrectFeatureModeException(FeatureEnum featureEnum, List<FeatureMode> requiredModes) {
this.model = IncorrectFeatureModeModel.builder().featureEnum(featureEnum).requiredModes(requiredModes).build();
public IncorrectFeatureModeException(FeatureDefinition featureDefinition, List<FeatureMode> requiredModes) {
this.model = IncorrectFeatureModeModel.builder().featureDefinition(featureDefinition).requiredModes(requiredModes).build();
}
@Override

View File

@@ -2,7 +2,7 @@ package dev.sheldan.abstracto.core.command.service;
import dev.sheldan.abstracto.core.command.Command;
import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import dev.sheldan.abstracto.core.command.config.ModuleDefinition;
import dev.sheldan.abstracto.core.command.execution.UnParsedCommandParameter;
import net.dv8tion.jda.api.entities.Message;
@@ -12,7 +12,7 @@ public interface CommandRegistry {
Command findCommandByParameters(String name, UnParsedCommandParameter context);
Command findCommand(String message);
List<Command> getAllCommands();
List<Command> getAllCommandsFromModule(ModuleInterface module);
List<Command> getAllCommandsFromModule(ModuleDefinition module);
boolean isCommand(Message message);
boolean commandExists(String name);
Command getCommandByName(String name);

View File

@@ -6,7 +6,7 @@ import dev.sheldan.abstracto.core.command.config.Parameters;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.UnParsedCommandParameter;
import dev.sheldan.abstracto.core.command.models.database.ACommand;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.core.models.database.AServer;
import net.dv8tion.jda.api.entities.Message;
@@ -14,17 +14,17 @@ import net.dv8tion.jda.api.entities.Message;
import java.util.concurrent.CompletableFuture;
public interface CommandService {
ACommand createCommand(String name, String moduleName, FeatureEnum featureEnum);
ACommand createCommand(String name, String moduleName, FeatureDefinition featureDefinition);
boolean doesCommandExist(String name);
void allowCommandForRole(ACommand aCommand, ARole role);
void allowFeatureForRole(FeatureEnum featureEnum, ARole role);
void allowFeatureForRole(FeatureDefinition featureDefinition, ARole role);
void makeRoleImmuneForCommand(ACommand aCommand, ARole role);
void makeRoleAffectedByCommand(ACommand aCommand, ARole role);
void restrictCommand(ACommand aCommand, AServer server);
String generateUsage(Command command);
void unRestrictCommand(ACommand aCommand, AServer server);
void disAllowCommandForRole(ACommand aCommand, ARole role);
void disAllowFeatureForRole(FeatureEnum featureEnum, ARole role);
void disAllowFeatureForRole(FeatureDefinition featureDefinition, ARole role);
ConditionResult isCommandExecutable(Command command, CommandContext commandContext);
UnParsedCommandParameter getUnParsedCommandParameter(String messageContent, Message message);
CompletableFuture<Parameters> getParametersForCommand(String commandName, Message messageContainingContent);

View File

@@ -1,16 +1,16 @@
package dev.sheldan.abstracto.core.command.service;
import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import dev.sheldan.abstracto.core.command.config.ModuleDefinition;
import dev.sheldan.abstracto.core.command.config.SingleLevelPackedModule;
import java.util.List;
public interface ModuleRegistry {
List<ModuleInterface> getModuleInterfaces();
SingleLevelPackedModule getPackedModule(ModuleInterface moduleInterface);
List<ModuleDefinition> getModuleInterfaces();
SingleLevelPackedModule getPackedModule(ModuleDefinition moduleDefinition);
boolean moduleExists(String name);
ModuleInterface getModuleByName(String name);
List<ModuleInterface> getSubModules(ModuleInterface moduleInterface);
ModuleInterface getDefaultModule();
ModuleDefinition getModuleByName(String name);
List<ModuleDefinition> getSubModules(ModuleDefinition moduleDefinition);
ModuleDefinition getDefaultModule();
}

View File

@@ -8,7 +8,7 @@ import java.util.Collections;
import java.util.List;
public interface FeatureConfig extends Serializable {
FeatureEnum getFeature();
FeatureDefinition getFeature();
default List<FeatureConfig> getRequiredFeatures() {
return Collections.emptyList();
}

View File

@@ -2,6 +2,6 @@ package dev.sheldan.abstracto.core.config;
import java.io.Serializable;
public interface FeatureEnum extends Serializable {
public interface FeatureDefinition extends Serializable {
String getKey();
}

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.core.models.exception;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import lombok.Builder;
import lombok.Getter;
@@ -14,5 +14,5 @@ import java.util.List;
@Builder
public class IncorrectFeatureModeModel implements Serializable {
private List<FeatureMode> requiredModes;
private FeatureEnum featureEnum;
private FeatureDefinition featureDefinition;
}

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.core.models.template.commands.help;
import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import dev.sheldan.abstracto.core.command.config.ModuleDefinition;
import dev.sheldan.abstracto.core.command.config.SingleLevelPackedModule;
import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
import lombok.Getter;
@@ -14,5 +14,5 @@ import java.util.List;
@SuperBuilder
public class HelpModuleDetailsModel extends UserInitiatedServerContext {
private SingleLevelPackedModule module;
private List<ModuleInterface> subModules;
private List<ModuleDefinition> subModules;
}

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.core.models.template.commands.help;
import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import dev.sheldan.abstracto.core.command.config.ModuleDefinition;
import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
@@ -12,5 +12,5 @@ import java.util.List;
@Setter
@SuperBuilder
public class HelpModuleOverviewModel extends UserInitiatedServerContext {
private List<ModuleInterface> modules;
private List<ModuleDefinition> modules;
}

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.config.PostTargetEnum;
import dev.sheldan.abstracto.core.models.FeatureValidationResult;
@@ -13,13 +13,13 @@ import java.util.List;
public interface FeatureConfigService {
List<String> getAllFeatures();
List<FeatureConfig> getAllFeatureConfigs();
FeatureConfig getFeatureDisplayForFeature(FeatureEnum featureEnum);
FeatureConfig getFeatureDisplayForFeature(FeatureDefinition featureDefinition);
FeatureConfig getFeatureDisplayForFeature(String key);
boolean doesFeatureExist(FeatureConfig name);
boolean doesFeatureExist(String name);
List<String> getFeaturesAsList();
List<String> getFeatureModesFromFeatureAsString(String featureName);
FeatureEnum getFeatureEnum(String key);
FeatureDefinition getFeatureEnum(String key);
PostTargetEnum getPostTargetEnumByKey(String key);
FeatureValidationResult validateFeatureSetup(FeatureConfig featureConfig, AServer server);
FeatureMode getFeatureModeByKey(FeatureConfig featureConfig, String key);

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AFeatureFlag;
import dev.sheldan.abstracto.core.models.database.AServer;
@@ -12,10 +12,10 @@ public interface FeatureFlagService {
void enableFeature(FeatureConfig name, AServer server);
void disableFeature(FeatureConfig name, Long serverId);
void disableFeature(FeatureConfig name, AServer server);
AFeatureFlag createInstanceFromDefaultConfig(FeatureEnum name, Long serverId);
AFeatureFlag createInstanceFromDefaultConfig(FeatureEnum name, AServer server);
boolean getFeatureFlagValue(FeatureEnum key, Long serverId);
boolean getFeatureFlagValue(FeatureEnum key, AServer server);
AFeatureFlag updateFeatureFlag(FeatureEnum key, Long serverId, Boolean newValue);
AFeatureFlag updateFeatureFlag(FeatureEnum key, AServer server, Boolean newValue);
AFeatureFlag createInstanceFromDefaultConfig(FeatureDefinition name, Long serverId);
AFeatureFlag createInstanceFromDefaultConfig(FeatureDefinition name, AServer server);
boolean getFeatureFlagValue(FeatureDefinition key, Long serverId);
boolean getFeatureFlagValue(FeatureDefinition key, AServer server);
AFeatureFlag updateFeatureFlag(FeatureDefinition key, Long serverId, Boolean newValue);
AFeatureFlag updateFeatureFlag(FeatureDefinition key, AServer server, Boolean newValue);
}

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.FeatureAware;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.AServer;
@@ -11,16 +11,16 @@ import java.util.List;
public interface FeatureModeService {
void enableFeatureModeForFeature(FeatureEnum featureEnum, AServer server, FeatureMode mode);
void setFutureModeForFuture(FeatureEnum featureEnum, AServer server, FeatureMode mode, Boolean newValue);
void disableFeatureModeForFeature(FeatureEnum featureEnum, AServer server, FeatureMode mode);
boolean featureModeActive(FeatureEnum featureEnum, AServer server, FeatureMode mode);
boolean featureModeActive(FeatureEnum featureEnum, Long serverId, FeatureMode mode);
void validateActiveFeatureMode(Long serverId, FeatureEnum featureEnum, FeatureMode mode);
void enableFeatureModeForFeature(FeatureDefinition featureDefinition, AServer server, FeatureMode mode);
void setFutureModeForFuture(FeatureDefinition featureDefinition, AServer server, FeatureMode mode, Boolean newValue);
void disableFeatureModeForFeature(FeatureDefinition featureDefinition, AServer server, FeatureMode mode);
boolean featureModeActive(FeatureDefinition featureDefinition, AServer server, FeatureMode mode);
boolean featureModeActive(FeatureDefinition featureDefinition, Long serverId, FeatureMode mode);
void validateActiveFeatureMode(Long serverId, FeatureDefinition featureDefinition, FeatureMode mode);
FeatureMode getFeatureModeForKey(String key);
List<FeatureMode> getAllAvailableFeatureModes();
List<FeatureModeDisplay> getEffectiveFeatureModes(AServer server);
List<FeatureModeDisplay> getEffectiveFeatureModes(AServer server, AFeature feature);
boolean necessaryFeatureModesMet(FeatureEnum featureEnum, List<FeatureMode> featureModes, Long serverId);
boolean necessaryFeatureModesMet(FeatureDefinition featureDefinition, List<FeatureMode> featureModes, Long serverId);
boolean necessaryFeatureModesMet(FeatureAware featureAware, Long serverId);
}

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.core.service.management;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.property.FeatureFlagProperty;
@@ -9,6 +9,6 @@ import java.util.List;
public interface DefaultFeatureFlagManagementService {
List<String> getDefaultFeatureKeys();
FeatureFlagProperty getDefaultFeatureFlagProperty(AFeature feature);
FeatureFlagProperty getDefaultFeatureFlagProperty(FeatureEnum feature);
FeatureFlagProperty getDefaultFeatureFlagProperty(FeatureDefinition feature);
List<FeatureFlagProperty> getAllDefaultFeatureFlags();
}

View File

@@ -2,7 +2,7 @@ package dev.sheldan.abstracto.core.command.condition;
import dev.sheldan.abstracto.core.command.Command;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
import dev.sheldan.abstracto.core.service.FeatureModeService;
@@ -38,7 +38,7 @@ public class FeatureModeConditionTest {
private FeatureMode featureMode;
@Mock
private FeatureEnum featureEnum;
private FeatureDefinition featureDefinition;
@Mock
private Guild server;
@@ -59,8 +59,8 @@ public class FeatureModeConditionTest {
when(commandContext.getUserInitiatedContext()).thenReturn(userInitiatedServerContext);
when(server.getIdLong()).thenReturn(SERVER_ID);
when(userInitiatedServerContext.getGuild()).thenReturn(server);
when(command.getFeature()).thenReturn(featureEnum);
when(modeService.featureModeActive(featureEnum, SERVER_ID, featureMode)).thenReturn(true);
when(command.getFeature()).thenReturn(featureDefinition);
when(modeService.featureModeActive(featureDefinition, SERVER_ID, featureMode)).thenReturn(true);
when(command.getFeatureModeLimitations()).thenReturn(Arrays.asList(featureMode));
CommandTestUtilities.checkSuccessfulCondition(testUnit.shouldExecute(commandContext, command));
}
@@ -70,8 +70,8 @@ public class FeatureModeConditionTest {
when(commandContext.getUserInitiatedContext()).thenReturn(userInitiatedServerContext);
when(server.getIdLong()).thenReturn(SERVER_ID);
when(userInitiatedServerContext.getGuild()).thenReturn(server);
when(command.getFeature()).thenReturn(featureEnum);
when(modeService.featureModeActive(featureEnum, SERVER_ID, featureMode)).thenReturn(false);
when(command.getFeature()).thenReturn(featureDefinition);
when(modeService.featureModeActive(featureDefinition, SERVER_ID, featureMode)).thenReturn(false);
when(command.getFeatureModeLimitations()).thenReturn(Arrays.asList(featureMode));
CommandTestUtilities.checkUnmetCondition(testUnit.shouldExecute(commandContext, command));
}