diff --git a/build.gradle b/build.gradle index 071e3ec6..0b510edf 100644 --- a/build.gradle +++ b/build.gradle @@ -100,7 +100,7 @@ subprojects { } dependencies { - api 'com.google.code.findbugs:jsr305:3.0.2' + compileOnly 'org.checkerframework:checker-qual:3.5.0' testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.7.0' } diff --git a/cloud-core/src/main/java/cloud/commandframework/Command.java b/cloud-core/src/main/java/cloud/commandframework/Command.java index b43a587e..dc6a6656 100644 --- a/cloud-core/src/main/java/cloud/commandframework/Command.java +++ b/cloud-core/src/main/java/cloud/commandframework/Command.java @@ -35,9 +35,9 @@ import cloud.commandframework.permission.Permission; import cloud.commandframework.types.tuples.Pair; import cloud.commandframework.types.tuples.Triplet; import com.google.common.reflect.TypeToken; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; @@ -55,11 +55,11 @@ import java.util.function.Function; */ public class Command { - @Nonnull private final Map, Description> arguments; - @Nonnull private final CommandExecutionHandler commandExecutionHandler; - @Nullable private final Class senderType; - @Nonnull private final CommandPermission commandPermission; - @Nonnull private final CommandMeta commandMeta; + private final Map<@NonNull CommandArgument, @NonNull Description> arguments; + private final CommandExecutionHandler commandExecutionHandler; + private final Class senderType; + private final CommandPermission commandPermission; + private final CommandMeta commandMeta; /** * Construct a new command @@ -70,11 +70,11 @@ public class Command { * @param commandPermission Command permission * @param commandMeta Command meta instance */ - public Command(@Nonnull final Map, Description> commandArguments, - @Nonnull final CommandExecutionHandler commandExecutionHandler, + public Command(@NonNull final Map<@NonNull CommandArgument, @NonNull Description> commandArguments, + @NonNull final CommandExecutionHandler<@NonNull C> commandExecutionHandler, @Nullable final Class senderType, - @Nonnull final CommandPermission commandPermission, - @Nonnull final CommandMeta commandMeta) { + @NonNull final CommandPermission commandPermission, + @NonNull final CommandMeta commandMeta) { this.arguments = Objects.requireNonNull(commandArguments, "Command arguments may not be null"); if (this.arguments.size() == 0) { throw new IllegalArgumentException("At least one command argument is required"); @@ -107,10 +107,10 @@ public class Command { * @param senderType Required sender type. May be {@code null} * @param commandMeta Command meta instance */ - public Command(@Nonnull final Map, Description> commandArguments, - @Nonnull final CommandExecutionHandler commandExecutionHandler, + public Command(@NonNull final Map<@NonNull CommandArgument, @NonNull Description> commandArguments, + @NonNull final CommandExecutionHandler<@NonNull C> commandExecutionHandler, @Nullable final Class senderType, - @Nonnull final CommandMeta commandMeta) { + @NonNull final CommandMeta commandMeta) { this(commandArguments, commandExecutionHandler, senderType, Permission.empty(), commandMeta); } @@ -122,10 +122,10 @@ public class Command { * @param commandPermission Command permission * @param commandMeta Command meta instance */ - public Command(@Nonnull final Map, Description> commandArguments, - @Nonnull final CommandExecutionHandler commandExecutionHandler, - @Nonnull final CommandPermission commandPermission, - @Nonnull final CommandMeta commandMeta) { + public Command(@NonNull final Map<@NonNull CommandArgument, @NonNull Description> commandArguments, + @NonNull final CommandExecutionHandler<@NonNull C> commandExecutionHandler, + @NonNull final CommandPermission commandPermission, + @NonNull final CommandMeta commandMeta) { this(commandArguments, commandExecutionHandler, null, commandPermission, commandMeta); } @@ -140,12 +140,11 @@ public class Command { * @param Command sender type * @return Command builder */ - @Nonnull - public static Builder newBuilder(@Nonnull final String commandName, - @Nonnull final CommandMeta commandMeta, - @Nonnull final Description description, - @Nonnull final String... aliases) { - final Map, Description> map = new LinkedHashMap<>(); + public static @NonNull Builder newBuilder(@NonNull final String commandName, + @NonNull final CommandMeta commandMeta, + @NonNull final Description description, + @NonNull final String... aliases) { + final Map<@NonNull CommandArgument, @NonNull Description> map = new LinkedHashMap<>(); map.put(StaticArgument.required(commandName, aliases), description); return new Builder<>(null, commandMeta, null, map, new CommandExecutionHandler.NullCommandExecutionHandler<>(), Permission.empty()); @@ -161,10 +160,9 @@ public class Command { * @param Command sender type * @return Command builder */ - @Nonnull - public static Builder newBuilder(@Nonnull final String commandName, - @Nonnull final CommandMeta commandMeta, - @Nonnull final String... aliases) { + public static @NonNull Builder newBuilder(@NonNull final String commandName, + @NonNull final CommandMeta commandMeta, + @NonNull final String... aliases) { final Map, Description> map = new LinkedHashMap<>(); map.put(StaticArgument.required(commandName, aliases), Description.empty()); return new Builder<>(null, commandMeta, null, map, @@ -176,8 +174,7 @@ public class Command { * * @return Copy of the command argument array */ - @Nonnull - public List> getArguments() { + public @NonNull List> getArguments() { return new ArrayList<>(this.arguments.keySet()); } @@ -186,8 +183,7 @@ public class Command { * * @return Command execution handler */ - @Nonnull - public CommandExecutionHandler getCommandExecutionHandler() { + public CommandExecutionHandler<@NonNull C> getCommandExecutionHandler() { return this.commandExecutionHandler; } @@ -196,8 +192,7 @@ public class Command { * * @return Required sender type */ - @Nonnull - public Optional> getSenderType() { + public @NonNull Optional> getSenderType() { return Optional.ofNullable(this.senderType); } @@ -206,8 +201,7 @@ public class Command { * * @return Command permission */ - @Nonnull - public CommandPermission getCommandPermission() { + public @NonNull CommandPermission getCommandPermission() { return this.commandPermission; } @@ -216,8 +210,7 @@ public class Command { * * @return Command meta */ - @Nonnull - public CommandMeta getCommandMeta() { + public @NonNull CommandMeta getCommandMeta() { return this.commandMeta; } @@ -227,8 +220,7 @@ public class Command { * @param argument Argument * @return Argument description */ - @Nonnull - public String getArgumentDescription(@Nonnull final CommandArgument argument) { + public @NonNull String getArgumentDescription(@NonNull final CommandArgument argument) { return this.arguments.get(argument).getDescription(); } @@ -260,19 +252,19 @@ public class Command { */ public static final class Builder { - @Nonnull private final CommandMeta commandMeta; - @Nonnull private final Map, Description> commandArguments; - @Nonnull private final CommandExecutionHandler commandExecutionHandler; - @Nullable private final Class senderType; - @Nonnull private final CommandPermission commandPermission; - @Nullable private final CommandManager commandManager; + private final CommandMeta commandMeta; + private final Map, Description> commandArguments; + private final CommandExecutionHandler commandExecutionHandler; + private final Class senderType; + private final CommandPermission commandPermission; + private final CommandManager commandManager; private Builder(@Nullable final CommandManager commandManager, - @Nonnull final CommandMeta commandMeta, + @NonNull final CommandMeta commandMeta, @Nullable final Class senderType, - @Nonnull final Map, Description> commandArguments, - @Nonnull final CommandExecutionHandler commandExecutionHandler, - @Nonnull final CommandPermission commandPermission) { + @NonNull final Map<@NonNull CommandArgument, @NonNull Description> commandArguments, + @NonNull final CommandExecutionHandler<@NonNull C> commandExecutionHandler, + @NonNull final CommandPermission commandPermission) { this.commandManager = commandManager; this.senderType = senderType; this.commandArguments = Objects.requireNonNull(commandArguments, "Arguments may not be null"); @@ -288,8 +280,7 @@ public class Command { * @param value Meta value * @return New builder instance using the inserted meta key-value pair */ - @Nonnull - public Builder meta(@Nonnull final String key, @Nonnull final String value) { + public @NonNull Builder meta(@NonNull final String key, @NonNull final String value) { final CommandMeta commandMeta = SimpleCommandMeta.builder().with(this.commandMeta).with(key, value).build(); return new Builder<>(this.commandManager, commandMeta, this.senderType, this.commandArguments, this.commandExecutionHandler, this.commandPermission); @@ -303,8 +294,7 @@ public class Command { * @param commandManager Command manager * @return New builder instance using the provided command manager */ - @Nonnull - public Builder manager(@Nullable final CommandManager commandManager) { + public @NonNull Builder manager(@Nullable final CommandManager commandManager) { return new Builder<>(commandManager, this.commandMeta, this.senderType, this.commandArguments, this.commandExecutionHandler, this.commandPermission); } @@ -316,8 +306,8 @@ public class Command { * @param aliases Argument aliases * @return New builder instance with the modified command chain */ - @Nonnull - public Builder literal(@Nonnull final String main, @Nonnull final String... aliases) { + public @NonNull Builder literal(@NonNull final String main, + @NonNull final String... aliases) { return this.argument(StaticArgument.required(main, aliases)); } @@ -329,10 +319,9 @@ public class Command { * @param aliases Argument aliases * @return New builder instance with the modified command chain */ - @Nonnull - public Builder literal(@Nonnull final String main, - @Nonnull final Description description, - @Nonnull final String... aliases) { + public @NonNull Builder literal(@NonNull final String main, + @NonNull final Description description, + @NonNull final String... aliases) { return this.argument(StaticArgument.required(main, aliases), description); } @@ -343,8 +332,7 @@ public class Command { * @param Argument type * @return New builder instance with the command argument inserted into the argument list */ - @Nonnull - public Builder argument(@Nonnull final CommandArgument argument) { + public @NonNull Builder argument(@NonNull final CommandArgument argument) { return this.argument(argument, Description.empty()); } @@ -356,9 +344,8 @@ public class Command { * @param Argument type * @return New builder instance with the command argument inserted into the argument list */ - @Nonnull - public Builder argument(@Nonnull final CommandArgument argument, - @Nonnull final Description description) { + public @NonNull Builder argument(@NonNull final CommandArgument argument, + @NonNull final Description description) { final Map, Description> commandArgumentMap = new LinkedHashMap<>(this.commandArguments); commandArgumentMap.put(argument, description); return new Builder<>(this.commandManager, this.commandMeta, this.senderType, commandArgumentMap, @@ -374,10 +361,9 @@ public class Command { * @param Argument type * @return New builder instance with the command argument inserted into the argument list */ - @Nonnull - public Builder argument(@Nonnull final Class clazz, - @Nonnull final String name, - @Nonnull final Consumer> builderConsumer) { + public @NonNull Builder argument(@NonNull final Class clazz, + @NonNull final String name, + @NonNull final Consumer> builderConsumer) { final CommandArgument.Builder builder = CommandArgument.ofType(clazz, name); if (this.commandManager != null) { builder.manager(this.commandManager); @@ -524,8 +510,7 @@ public class Command { * @param commandExecutionHandler New execution handler * @return New builder instance using the command execution handler */ - @Nonnull - public Builder handler(@Nonnull final CommandExecutionHandler commandExecutionHandler) { + public @NonNull Builder handler(@NonNull final CommandExecutionHandler commandExecutionHandler) { return new Builder<>(this.commandManager, this.commandMeta, this.senderType, this.commandArguments, commandExecutionHandler, this.commandPermission); } @@ -536,8 +521,7 @@ public class Command { * @param senderType Required sender type * @return New builder instance using the command execution handler */ - @Nonnull - public Builder withSenderType(@Nonnull final Class senderType) { + public @NonNull Builder withSenderType(@NonNull final Class senderType) { return new Builder<>(this.commandManager, this.commandMeta, senderType, this.commandArguments, this.commandExecutionHandler, this.commandPermission); } @@ -548,8 +532,7 @@ public class Command { * @param permission Command permission * @return New builder instance using the command permission */ - @Nonnull - public Builder withPermission(@Nonnull final CommandPermission permission) { + public @NonNull Builder withPermission(@NonNull final CommandPermission permission) { return new Builder<>(this.commandManager, this.commandMeta, this.senderType, this.commandArguments, this.commandExecutionHandler, permission); } @@ -560,8 +543,7 @@ public class Command { * @param permission Command permission * @return New builder instance using the command permission */ - @Nonnull - public Builder withPermission(@Nonnull final String permission) { + public @NonNull Builder withPermission(@NonNull final String permission) { return new Builder<>(this.commandManager, this.commandMeta, this.senderType, this.commandArguments, this.commandExecutionHandler, Permission.of(permission)); } @@ -577,8 +559,7 @@ public class Command { * @param command Command to proxy * @return New builder that proxies the given command */ - @Nonnull - public Builder proxies(@Nonnull final Command command) { + public @NonNull Builder proxies(@NonNull final Command command) { Builder builder = this; for (final CommandArgument argument : command.getArguments()) { if (argument instanceof StaticArgument) { @@ -599,8 +580,7 @@ public class Command { * * @return New builder instance that indicates that the constructed command should be hidden */ - @Nonnull - public Builder hidden() { + public @NonNull Builder hidden() { return this.meta("hidden", "true"); } @@ -609,8 +589,7 @@ public class Command { * * @return Built command */ - @Nonnull - public Command build() { + public @NonNull Command build() { return new Command<>(Collections.unmodifiableMap(this.commandArguments), this.commandExecutionHandler, this.senderType, diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/CommandArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/CommandArgument.java index c5532d7e..76b2df91 100644 --- a/cloud-core/src/main/java/cloud/commandframework/arguments/CommandArgument.java +++ b/cloud-core/src/main/java/cloud/commandframework/arguments/CommandArgument.java @@ -31,8 +31,6 @@ import cloud.commandframework.arguments.parser.ArgumentParseResult; import cloud.commandframework.arguments.parser.ParserParameters; import cloud.commandframework.context.CommandContext; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; import java.util.List; import java.util.Objects; import java.util.function.BiFunction; diff --git a/cloud-core/src/main/java/cloud/commandframework/execution/postprocessor/AcceptingCommandPostprocessor.java b/cloud-core/src/main/java/cloud/commandframework/execution/postprocessor/AcceptingCommandPostprocessor.java index 9c4eb4a8..25f005db 100644 --- a/cloud-core/src/main/java/cloud/commandframework/execution/postprocessor/AcceptingCommandPostprocessor.java +++ b/cloud-core/src/main/java/cloud/commandframework/execution/postprocessor/AcceptingCommandPostprocessor.java @@ -23,7 +23,7 @@ // package cloud.commandframework.execution.postprocessor; -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; /** * {@link CommandPostprocessor} that does nothing besides indicating that the context @@ -39,7 +39,7 @@ public final class AcceptingCommandPostprocessor implements CommandPostproces public static final String PROCESSED_INDICATOR_KEY = "__COMMAND_POST_PROCESSED__"; @Override - public void accept(@Nonnull final CommandPostprocessingContext context) { + public void accept(@NonNull final CommandPostprocessingContext context) { context.getCommandContext().store(PROCESSED_INDICATOR_KEY, "true"); } diff --git a/cloud-core/src/main/java/cloud/commandframework/execution/postprocessor/CommandPostprocessingContext.java b/cloud-core/src/main/java/cloud/commandframework/execution/postprocessor/CommandPostprocessingContext.java index 33f9cfa0..0d034468 100644 --- a/cloud-core/src/main/java/cloud/commandframework/execution/postprocessor/CommandPostprocessingContext.java +++ b/cloud-core/src/main/java/cloud/commandframework/execution/postprocessor/CommandPostprocessingContext.java @@ -25,8 +25,8 @@ package cloud.commandframework.execution.postprocessor; import cloud.commandframework.Command; import cloud.commandframework.context.CommandContext; +import org.checkerframework.checker.nullness.qual.NonNull; -import javax.annotation.Nonnull; import java.util.Objects; /** @@ -36,8 +36,8 @@ import java.util.Objects; */ public final class CommandPostprocessingContext { - private final CommandContext commandContext; - private final Command command; + private final CommandContext<@NonNull C> commandContext; + private final Command<@NonNull C> command; /** * Construct a new command postprocessing context @@ -45,8 +45,8 @@ public final class CommandPostprocessingContext { * @param commandContext Command context * @param command Command instance */ - public CommandPostprocessingContext(@Nonnull final CommandContext commandContext, - @Nonnull final Command command) { + public CommandPostprocessingContext(@NonNull final CommandContext<@NonNull C> commandContext, + @NonNull final Command<@NonNull C> command) { this.commandContext = commandContext; this.command = command; } @@ -56,8 +56,7 @@ public final class CommandPostprocessingContext { * * @return Command context */ - @Nonnull - public CommandContext getCommandContext() { + public @NonNull CommandContext<@NonNull C> getCommandContext() { return this.commandContext; } @@ -66,8 +65,7 @@ public final class CommandPostprocessingContext { * * @return Command instance */ - @Nonnull - public Command getCommand() { + public @NonNull Command<@NonNull C> getCommand() { return this.command; } diff --git a/cloud-core/src/main/java/cloud/commandframework/internal/CommandRegistrationHandler.java b/cloud-core/src/main/java/cloud/commandframework/internal/CommandRegistrationHandler.java index 8fc2d379..988a567f 100644 --- a/cloud-core/src/main/java/cloud/commandframework/internal/CommandRegistrationHandler.java +++ b/cloud-core/src/main/java/cloud/commandframework/internal/CommandRegistrationHandler.java @@ -24,8 +24,7 @@ package cloud.commandframework.internal; import cloud.commandframework.Command; - -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; /** * Utility that registers commands natively for whatever @@ -40,8 +39,7 @@ public interface CommandRegistrationHandler { * * @return Constructed registration */ - @Nonnull - static CommandRegistrationHandler nullCommandRegistrationHandler() { + static @NonNull CommandRegistrationHandler nullCommandRegistrationHandler() { return new NullCommandRegistrationHandler(); } @@ -52,7 +50,7 @@ public interface CommandRegistrationHandler { * @return {@code true} if the command was registered successfully, * else {@code false} */ - boolean registerCommand(@Nonnull Command command); + boolean registerCommand(@NonNull Command command); final class NullCommandRegistrationHandler implements CommandRegistrationHandler { @@ -60,7 +58,7 @@ public interface CommandRegistrationHandler { } @Override - public boolean registerCommand(@Nonnull final Command command) { + public boolean registerCommand(@NonNull final Command command) { return true; } diff --git a/cloud-core/src/main/java/cloud/commandframework/permission/CommandPermission.java b/cloud-core/src/main/java/cloud/commandframework/permission/CommandPermission.java index bfea4562..83e440b4 100644 --- a/cloud-core/src/main/java/cloud/commandframework/permission/CommandPermission.java +++ b/cloud-core/src/main/java/cloud/commandframework/permission/CommandPermission.java @@ -23,7 +23,8 @@ // package cloud.commandframework.permission; -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; + import java.util.Collection; /** @@ -36,8 +37,7 @@ public interface CommandPermission { * * @return Permission nodes */ - @Nonnull - Collection getPermissions(); + @NonNull Collection<@NonNull CommandPermission> getPermissions(); /** * Get a string representation of the permission @@ -45,7 +45,6 @@ public interface CommandPermission { * @return String representation of the permission node */ @Override - @Nonnull String toString(); } diff --git a/cloud-core/src/main/java/cloud/commandframework/permission/OrPermission.java b/cloud-core/src/main/java/cloud/commandframework/permission/OrPermission.java index eefc07ef..6bec1ac1 100644 --- a/cloud-core/src/main/java/cloud/commandframework/permission/OrPermission.java +++ b/cloud-core/src/main/java/cloud/commandframework/permission/OrPermission.java @@ -23,7 +23,8 @@ // package cloud.commandframework.permission; -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; + import java.util.Collection; import java.util.HashSet; import java.util.Iterator; @@ -37,7 +38,7 @@ public final class OrPermission implements CommandPermission { private final Collection permissions; - private OrPermission(@Nonnull final Collection permissions) { + private OrPermission(@NonNull final Collection permissions) { this.permissions = permissions; } @@ -47,8 +48,7 @@ public final class OrPermission implements CommandPermission { * @param permissions Permissions to join * @return Constructed permission */ - @Nonnull - public static CommandPermission of(@Nonnull final Collection permissions) { + public static @NonNull CommandPermission of(@NonNull final Collection permissions) { final Set permissionSet = new HashSet<>(); for (final CommandPermission permission : permissions) { permissionSet.addAll(permission.getPermissions()); @@ -56,9 +56,8 @@ public final class OrPermission implements CommandPermission { return new OrPermission(permissionSet); } - @Nonnull @Override - public Collection getPermissions() { + public @NonNull Collection<@NonNull CommandPermission> getPermissions() { return this.permissions; } diff --git a/cloud-core/src/main/java/cloud/commandframework/permission/Permission.java b/cloud-core/src/main/java/cloud/commandframework/permission/Permission.java index 840ee57e..9f12c189 100644 --- a/cloud-core/src/main/java/cloud/commandframework/permission/Permission.java +++ b/cloud-core/src/main/java/cloud/commandframework/permission/Permission.java @@ -23,7 +23,8 @@ // package cloud.commandframework.permission; -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; + import java.util.Collection; import java.util.Collections; import java.util.Objects; @@ -40,7 +41,7 @@ public final class Permission implements CommandPermission { private final String permission; - private Permission(@Nonnull final String permission) { + private Permission(@NonNull final String permission) { this.permission = permission; } @@ -49,8 +50,7 @@ public final class Permission implements CommandPermission { * * @return Command permission */ - @Nonnull - public static Permission empty() { + public static @NonNull Permission empty() { return EMPTY; } @@ -60,8 +60,7 @@ public final class Permission implements CommandPermission { * @param string Command permission * @return Created command permission */ - @Nonnull - public static Permission of(@Nonnull final String string) { + public static @NonNull Permission of(@NonNull final String string) { return new Permission(string); } @@ -70,14 +69,12 @@ public final class Permission implements CommandPermission { * * @return Command permission */ - @Nonnull public String getPermission() { return this.permission; } - @Nonnull @Override - public Collection getPermissions() { + public @NonNull Collection<@NonNull CommandPermission> getPermissions() { return Collections.singleton(this); } @@ -86,7 +83,6 @@ public final class Permission implements CommandPermission { * * @return Command permission */ - @Nonnull @Override public String toString() { return this.permission; diff --git a/cloud-core/src/main/java/cloud/commandframework/types/tuples/Pair.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Pair.java index f222e108..8b7ce2de 100644 --- a/cloud-core/src/main/java/cloud/commandframework/types/tuples/Pair.java +++ b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Pair.java @@ -23,7 +23,8 @@ // package cloud.commandframework.types.tuples; -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; + import java.util.Objects; /** @@ -34,13 +35,11 @@ import java.util.Objects; */ public class Pair implements Tuple { - @Nonnull private final U first; - @Nonnull private final V second; - protected Pair(@Nonnull final U first, - @Nonnull final V second) { + protected Pair(@NonNull final U first, + @NonNull final V second) { this.first = first; this.second = second; } @@ -54,9 +53,8 @@ public class Pair implements Tuple { * @param Second type * @return Created pair */ - @Nonnull - public static Pair of(@Nonnull final U first, - @Nonnull final V second) { + public static @NonNull Pair<@NonNull U, @NonNull V> of(@NonNull final U first, + @NonNull final V second) { return new Pair<>(first, second); } @@ -65,8 +63,7 @@ public class Pair implements Tuple { * * @return First value */ - @Nonnull - public final U getFirst() { + public final @NonNull U getFirst() { return this.first; } @@ -75,8 +72,7 @@ public class Pair implements Tuple { * * @return Second value */ - @Nonnull - public final V getSecond() { + public final @NonNull V getSecond() { return this.second; } diff --git a/cloud-core/src/main/java/cloud/commandframework/types/tuples/Quartet.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Quartet.java index bacc604c..e34d8bdf 100644 --- a/cloud-core/src/main/java/cloud/commandframework/types/tuples/Quartet.java +++ b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Quartet.java @@ -23,7 +23,8 @@ // package cloud.commandframework.types.tuples; -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; + import java.util.Objects; /** @@ -36,19 +37,15 @@ import java.util.Objects; */ public class Quartet implements Tuple { - @Nonnull private final U first; - @Nonnull private final V second; - @Nonnull private final W third; - @Nonnull private final X fourth; - protected Quartet(@Nonnull final U first, - @Nonnull final V second, - @Nonnull final W third, - @Nonnull final X fourth) { + protected Quartet(@NonNull final U first, + @NonNull final V second, + @NonNull final W third, + @NonNull final X fourth) { this.first = first; this.second = second; this.third = third; @@ -68,11 +65,10 @@ public class Quartet implements Tuple { * @param Fourth type * @return Created quartet */ - @Nonnull - public static Quartet of(@Nonnull final U first, - @Nonnull final V second, - @Nonnull final W third, - @Nonnull final X fourth) { + public static @NonNull Quartet<@NonNull U, @NonNull V, @NonNull W, @NonNull X> of(@NonNull final U first, + @NonNull final V second, + @NonNull final W third, + @NonNull final X fourth) { return new Quartet<>(first, second, third, fourth); } @@ -81,8 +77,7 @@ public class Quartet implements Tuple { * * @return First value */ - @Nonnull - public final U getFirst() { + public final @NonNull U getFirst() { return this.first; } @@ -91,8 +86,7 @@ public class Quartet implements Tuple { * * @return Second value */ - @Nonnull - public final V getSecond() { + public final @NonNull V getSecond() { return this.second; } @@ -101,8 +95,7 @@ public class Quartet implements Tuple { * * @return Third value */ - @Nonnull - public final W getThird() { + public final @NonNull W getThird() { return this.third; } @@ -111,8 +104,7 @@ public class Quartet implements Tuple { * * @return Fourth value */ - @Nonnull - public final X getFourth() { + public final @NonNull X getFourth() { return this.fourth; } diff --git a/cloud-core/src/main/java/cloud/commandframework/types/tuples/Quintet.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Quintet.java index c007e11d..d7567fbf 100644 --- a/cloud-core/src/main/java/cloud/commandframework/types/tuples/Quintet.java +++ b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Quintet.java @@ -23,7 +23,8 @@ // package cloud.commandframework.types.tuples; -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; + import java.util.Objects; /** @@ -37,22 +38,17 @@ import java.util.Objects; */ public class Quintet implements Tuple { - @Nonnull private final U first; - @Nonnull private final V second; - @Nonnull private final W third; - @Nonnull private final X fourth; - @Nonnull private final Y fifth; - protected Quintet(@Nonnull final U first, - @Nonnull final V second, - @Nonnull final W third, - @Nonnull final X fourth, - @Nonnull final Y fifth) { + protected Quintet(@NonNull final U first, + @NonNull final V second, + @NonNull final W third, + @NonNull final X fourth, + @NonNull final Y fifth) { this.first = first; this.second = second; this.third = third; @@ -75,12 +71,12 @@ public class Quintet implements Tuple { * @param Fifth type * @return Created quintet */ - @Nonnull - public static Quintet of(@Nonnull final U first, - @Nonnull final V second, - @Nonnull final W third, - @Nonnull final X fourth, - @Nonnull final Y fifth) { + public static @NonNull Quintet<@NonNull U, @NonNull V, @NonNull W, @NonNull X, @NonNull Y> of( + @NonNull final U first, + @NonNull final V second, + @NonNull final W third, + @NonNull final X fourth, + @NonNull final Y fifth) { return new Quintet<>(first, second, third, fourth, fifth); } @@ -89,8 +85,7 @@ public class Quintet implements Tuple { * * @return First value */ - @Nonnull - public final U getFirst() { + public final @NonNull U getFirst() { return this.first; } @@ -99,8 +94,7 @@ public class Quintet implements Tuple { * * @return Second value */ - @Nonnull - public final V getSecond() { + public final @NonNull V getSecond() { return this.second; } @@ -109,8 +103,7 @@ public class Quintet implements Tuple { * * @return Third value */ - @Nonnull - public final W getThird() { + public final @NonNull W getThird() { return this.third; } @@ -119,8 +112,7 @@ public class Quintet implements Tuple { * * @return Fourth value */ - @Nonnull - public final X getFourth() { + public final @NonNull X getFourth() { return this.fourth; } @@ -129,8 +121,7 @@ public class Quintet implements Tuple { * * @return Fifth value */ - @Nonnull - public final Y getFifth() { + public final @NonNull Y getFifth() { return this.fifth; } diff --git a/cloud-core/src/main/java/cloud/commandframework/types/tuples/Sextet.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Sextet.java index fb2cb554..42631255 100644 --- a/cloud-core/src/main/java/cloud/commandframework/types/tuples/Sextet.java +++ b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Sextet.java @@ -23,7 +23,8 @@ // package cloud.commandframework.types.tuples; -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; + import java.util.Objects; /** @@ -38,25 +39,19 @@ import java.util.Objects; */ public class Sextet implements Tuple { - @Nonnull private final U first; - @Nonnull private final V second; - @Nonnull private final W third; - @Nonnull private final X fourth; - @Nonnull private final Y fifth; - @Nonnull private final Z sixth; - protected Sextet(@Nonnull final U first, - @Nonnull final V second, - @Nonnull final W third, - @Nonnull final X fourth, - @Nonnull final Y fifth, - @Nonnull final Z sixth) { + protected Sextet(@NonNull final U first, + @NonNull final V second, + @NonNull final W third, + @NonNull final X fourth, + @NonNull final Y fifth, + @NonNull final Z sixth) { this.first = first; this.second = second; this.third = third; @@ -82,13 +77,13 @@ public class Sextet implements Tuple { * @param Sixth type * @return Created sextet */ - @Nonnull - public static Sextet of(@Nonnull final U first, - @Nonnull final V second, - @Nonnull final W third, - @Nonnull final X fourth, - @Nonnull final Y fifth, - @Nonnull final Z sixth) { + public static @NonNull Sextet<@NonNull U, @NonNull V, @NonNull W, @NonNull X, @NonNull Y, @NonNull Z> of( + @NonNull final U first, + @NonNull final V second, + @NonNull final W third, + @NonNull final X fourth, + @NonNull final Y fifth, + @NonNull final Z sixth) { return new Sextet<>(first, second, third, fourth, fifth, sixth); } @@ -97,8 +92,7 @@ public class Sextet implements Tuple { * * @return First value */ - @Nonnull - public final U getFirst() { + public final @NonNull U getFirst() { return this.first; } @@ -107,8 +101,7 @@ public class Sextet implements Tuple { * * @return Second value */ - @Nonnull - public final V getSecond() { + public final @NonNull V getSecond() { return this.second; } @@ -117,8 +110,7 @@ public class Sextet implements Tuple { * * @return Third value */ - @Nonnull - public final W getThird() { + public final @NonNull W getThird() { return this.third; } @@ -127,8 +119,7 @@ public class Sextet implements Tuple { * * @return Fourth value */ - @Nonnull - public final X getFourth() { + public final @NonNull X getFourth() { return this.fourth; } @@ -137,8 +128,7 @@ public class Sextet implements Tuple { * * @return Fifth value */ - @Nonnull - public final Y getFifth() { + public final @NonNull Y getFifth() { return this.fifth; } @@ -147,8 +137,7 @@ public class Sextet implements Tuple { * * @return Sixth value */ - @Nonnull - public final Z getSixth() { + public final @NonNull Z getSixth() { return this.sixth; } diff --git a/cloud-core/src/main/java/cloud/commandframework/types/tuples/Triplet.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Triplet.java index 02afeee1..f3fe04bc 100644 --- a/cloud-core/src/main/java/cloud/commandframework/types/tuples/Triplet.java +++ b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Triplet.java @@ -23,7 +23,8 @@ // package cloud.commandframework.types.tuples; -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; + import java.util.Objects; /** @@ -35,16 +36,13 @@ import java.util.Objects; */ public class Triplet implements Tuple { - @Nonnull private final U first; - @Nonnull private final V second; - @Nonnull private final W third; - protected Triplet(@Nonnull final U first, - @Nonnull final V second, - @Nonnull final W third) { + protected Triplet(@NonNull final U first, + @NonNull final V second, + @NonNull final W third) { this.first = first; this.second = second; this.third = third; @@ -61,10 +59,9 @@ public class Triplet implements Tuple { * @param Third type * @return Created triplet */ - @Nonnull - public static Triplet of(@Nonnull final U first, - @Nonnull final V second, - @Nonnull final W third) { + public static @NonNull Triplet<@NonNull U, @NonNull V, @NonNull W> of(@NonNull final U first, + @NonNull final V second, + @NonNull final W third) { return new Triplet<>(first, second, third); } @@ -73,8 +70,7 @@ public class Triplet implements Tuple { * * @return First value */ - @Nonnull - public final U getFirst() { + public final @NonNull U getFirst() { return this.first; } @@ -83,8 +79,7 @@ public class Triplet implements Tuple { * * @return Second value */ - @Nonnull - public final V getSecond() { + public final @NonNull V getSecond() { return this.second; } @@ -93,8 +88,7 @@ public class Triplet implements Tuple { * * @return Third value */ - @Nonnull - public final W getThird() { + public final @NonNull W getThird() { return this.third; } diff --git a/cloud-core/src/main/java/cloud/commandframework/types/tuples/Tuples.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Tuples.java deleted file mode 100644 index 4428f52e..00000000 --- a/cloud-core/src/main/java/cloud/commandframework/types/tuples/Tuples.java +++ /dev/null @@ -1,147 +0,0 @@ -// -// MIT License -// -// Copyright (c) 2020 Alexander Söderberg & Contributors -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. -// -package cloud.commandframework.types.tuples; - -import javax.annotation.Nonnull; - -/** - * Utility class for dealing with tuples - */ -public final class Tuples { - - static final int SIZE_PAIR = 2; - static final int SIZE_TRIPLET = 3; - static final int SIZE_QUARTET = 4; - static final int SIZE_QUINTET = 5; - static final int SIZE_SEXTET = 6; - - private Tuples() { - } - - /** - * Create a new pair - * - * @param first First value - * @param second Second value - * @param First type - * @param Second type - * @return Created pair - */ - @Nonnull - public static Pair of(@Nonnull final U first, - @Nonnull final V second) { - return Pair.of(first, second); - } - - /** - * Create a new triplet - * - * @param first First value - * @param second Second value - * @param third Third value - * @param First type - * @param Second type - * @param Third type - * @return Created triplet - */ - @Nonnull - public static Triplet of(@Nonnull final U first, - @Nonnull final V second, - @Nonnull final W third) { - return Triplet.of(first, second, third); - } - - /** - * Create a new quartet - * - * @param first First value - * @param second Second value - * @param third Third value - * @param fourth Fourth value - * @param First type - * @param Second type - * @param Third type - * @param Fourth type - * @return Created quartet - */ - @Nonnull - public static Quartet of(@Nonnull final U first, - @Nonnull final V second, - @Nonnull final W third, - @Nonnull final X fourth) { - return Quartet.of(first, second, third, fourth); - } - - /** - * Create a new quintet - * - * @param first First value - * @param second Second value - * @param third Third value - * @param fourth Fourth value - * @param fifth Fifth value - * @param First type - * @param Second type - * @param Third type - * @param Fourth type - * @param Fifth type - * @return Created quintet - */ - @Nonnull - public static Quintet of(@Nonnull final U first, - @Nonnull final V second, - @Nonnull final W third, - @Nonnull final X fourth, - @Nonnull final Y fifth) { - return Quintet.of(first, second, third, fourth, fifth); - } - - /** - * Create a new sextet - * - * @param first First value - * @param second Second value - * @param third Third value - * @param fourth Fourth value - * @param fifth Fifth value - * @param sixth Sixth value - * @param First type - * @param Second type - * @param Third type - * @param Fourth type - * @param Fifth type - * @param Sixth type - * @return Created sextet - */ - @Nonnull - public static Sextet of(@Nonnull final U first, - @Nonnull final V second, - @Nonnull final W third, - @Nonnull final X fourth, - @Nonnull final Y fifth, - @Nonnull final Z sixth) { - return Sextet.of(first, second, third, fourth, fifth, sixth); - } - -} diff --git a/cloud-services/src/main/java/cloud/commandframework/services/AnnotatedMethodService.java b/cloud-services/src/main/java/cloud/commandframework/services/AnnotatedMethodService.java index f3d144d7..36744ce5 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/AnnotatedMethodService.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/AnnotatedMethodService.java @@ -25,9 +25,9 @@ package cloud.commandframework.services; import cloud.commandframework.services.annotations.Order; import cloud.commandframework.services.types.Service; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.reflect.Method; @@ -40,7 +40,8 @@ class AnnotatedMethodService implements Service implements Service implements Service, TypeToken>> lookupServices( - @Nonnull final Object instance) throws Exception { + @NonNull Map, TypeToken>> lookupServices( + @NonNull final Object instance) throws Exception { final Map, TypeToken>> map = new HashMap<>(); final Class clazz = instance.getClass(); for (final Method method : clazz.getDeclaredMethods()) { diff --git a/cloud-services/src/main/java/cloud/commandframework/services/ChunkedRequestContext.java b/cloud-services/src/main/java/cloud/commandframework/services/ChunkedRequestContext.java index 2d390485..590c5118 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/ChunkedRequestContext.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/ChunkedRequestContext.java @@ -23,7 +23,8 @@ // package cloud.commandframework.services; -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; + import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -38,18 +39,18 @@ import java.util.Map; * @param Context/Request type * @param Result type */ -public abstract class ChunkedRequestContext { +public abstract class ChunkedRequestContext<@NonNull Context, @NonNull Result> { private final Object lock = new Object(); - private final List requests; - private final Map results; + private final List<@NonNull Context> requests; + private final Map<@NonNull Context, @NonNull Result> results; /** * Initialize a new request * * @param requests Request contexts */ - protected ChunkedRequestContext(@Nonnull final Collection requests) { + protected ChunkedRequestContext(@NonNull final Collection requests) { this.requests = new ArrayList<>(requests); this.results = new HashMap<>(requests.size()); } @@ -59,8 +60,7 @@ public abstract class ChunkedRequestContext { * * @return Unmodifiable map of results */ - @Nonnull - public final Map getAvailableResults() { + public final @NonNull Map<@NonNull Context, @NonNull Result> getAvailableResults() { synchronized (this.lock) { return Collections.unmodifiableMap(this.results); } @@ -71,8 +71,7 @@ public abstract class ChunkedRequestContext { * * @return Unmodifiable list of remaining requests */ - @Nonnull - public final List getRemaining() { + public final @NonNull List<@NonNull Context> getRemaining() { synchronized (this.lock) { return Collections.unmodifiableList(this.requests); } @@ -84,7 +83,7 @@ public abstract class ChunkedRequestContext { * @param context Context * @param result Result */ - public final void storeResult(@Nonnull final Context context, @Nonnull final Result result) { + public final void storeResult(@NonNull final Context context, @NonNull final Result result) { synchronized (this.lock) { this.results.put(context, result); this.requests.remove(context); diff --git a/cloud-services/src/main/java/cloud/commandframework/services/PipelineException.java b/cloud-services/src/main/java/cloud/commandframework/services/PipelineException.java index df5b2cf5..320bebc2 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/PipelineException.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/PipelineException.java @@ -23,7 +23,7 @@ // package cloud.commandframework.services; -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; /** * Wrapper for exceptions thrown during pipeline execution. @@ -37,7 +37,7 @@ public final class PipelineException extends RuntimeException { * * @param cause Cause of the exception */ - public PipelineException(@Nonnull final Exception cause) { + public PipelineException(@NonNull final Exception cause) { super(cause); } @@ -47,7 +47,7 @@ public final class PipelineException extends RuntimeException { * @param message Message explaining the exception * @param cause Cause of the exception */ - public PipelineException(@Nonnull final String message, @Nonnull final Exception cause) { + public PipelineException(@NonNull final String message, @NonNull final Exception cause) { super(message, cause); } diff --git a/cloud-services/src/main/java/cloud/commandframework/services/ServiceFilterHandler.java b/cloud-services/src/main/java/cloud/commandframework/services/ServiceFilterHandler.java index 3f409bdb..ce8ba255 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/ServiceFilterHandler.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/ServiceFilterHandler.java @@ -24,16 +24,16 @@ package cloud.commandframework.services; import cloud.commandframework.services.types.Service; +import org.checkerframework.checker.nullness.qual.NonNull; -import javax.annotation.Nonnull; import java.util.function.Predicate; enum ServiceFilterHandler { INSTANCE; boolean passes( - @Nonnull final ServiceRepository.ServiceWrapper> service, - @Nonnull final Context context) { + @NonNull final ServiceRepository.ServiceWrapper> service, + @NonNull final Context context) { if (!service.isDefaultImplementation()) { for (final Predicate predicate : service.getFilters()) { try { diff --git a/cloud-services/src/main/java/cloud/commandframework/services/ServicePipeline.java b/cloud-services/src/main/java/cloud/commandframework/services/ServicePipeline.java index 36bba794..e4b18b4c 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/ServicePipeline.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/ServicePipeline.java @@ -25,8 +25,8 @@ package cloud.commandframework.services; import io.leangen.geantyref.TypeToken; import cloud.commandframework.services.types.Service; +import org.checkerframework.checker.nullness.qual.NonNull; -import javax.annotation.Nonnull; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -45,7 +45,7 @@ public final class ServicePipeline { private final Map>, ServiceRepository> repositories; private final Executor executor; - ServicePipeline(@Nonnull final Executor executor) { + ServicePipeline(@NonNull final Executor executor) { this.repositories = new HashMap<>(); this.executor = executor; } @@ -55,8 +55,7 @@ public final class ServicePipeline { * * @return Builder instance */ - @Nonnull - public static ServicePipelineBuilder builder() { + public static @NonNull ServicePipelineBuilder builder() { return new ServicePipelineBuilder(); } @@ -71,9 +70,9 @@ public final class ServicePipeline { * @param Service result type * @return ServicePipeline The service pipeline instance */ - public ServicePipeline registerServiceType( - @Nonnull final TypeToken> type, - @Nonnull final Service defaultImplementation) { + public @NonNull ServicePipeline registerServiceType( + @NonNull final TypeToken> type, + @NonNull final Service<@NonNull Context, @NonNull Result> defaultImplementation) { synchronized (this.lock) { if (repositories.containsKey(type)) { throw new IllegalArgumentException(String @@ -105,8 +104,8 @@ public final class ServicePipeline { * @throws Exception Any exceptions thrown during the registration process */ @SuppressWarnings("unchecked") - public ServicePipeline registerMethods( - @Nonnull final T instance) throws Exception { + public @NonNull ServicePipeline registerMethods( + @NonNull final T instance) throws Exception { synchronized (this.lock) { final Map, TypeToken>> services = AnnotatedMethodServiceFactory.INSTANCE.lookupServices(instance); @@ -139,9 +138,9 @@ public final class ServicePipeline { * @return ServicePipeline The service pipeline instance */ public ServicePipeline registerServiceImplementation( - @Nonnull final TypeToken> type, - @Nonnull final Service implementation, - @Nonnull final Collection> filters) { + @NonNull final TypeToken> type, + @NonNull final Service implementation, + @NonNull final Collection> filters) { synchronized (this.lock) { final ServiceRepository repository = getRepository(type); repository.registerImplementation(implementation, filters); @@ -163,9 +162,9 @@ public final class ServicePipeline { * @return ServicePipeline The service pipeline instance */ public ServicePipeline registerServiceImplementation( - @Nonnull final Class> type, - @Nonnull final Service implementation, - @Nonnull final Collection> filters) { + @NonNull final Class> type, + @NonNull final Service implementation, + @NonNull final Collection> filters) { return registerServiceImplementation(TypeToken.get(type), implementation, filters); } @@ -177,15 +176,15 @@ public final class ServicePipeline { * @param Context type * @return Service pumper instance */ - @Nonnull - public ServicePump pump(@Nonnull final Context context) { + @NonNull + public ServicePump pump(@NonNull final Context context) { return new ServicePump<>(this, context); } @SuppressWarnings("unchecked") - @Nonnull + @NonNull ServiceRepository getRepository( - @Nonnull final TypeToken> type) { + @NonNull final TypeToken> type) { final ServiceRepository repository = (ServiceRepository) this.repositories.get(type); if (repository == null) { @@ -200,7 +199,7 @@ public final class ServicePipeline { * * @return Returns an Immutable collection of the service types registered. */ - @Nonnull + @NonNull public Collection>> getRecognizedTypes() { return Collections.unmodifiableCollection(this.repositories.keySet()); } @@ -215,10 +214,10 @@ public final class ServicePipeline { * @return Returns an collection of the {@link TypeToken}s of the implementations for a given * service. Iterator order matches the priority when pumping contexts through the pipeline */ - @Nonnull + @NonNull @SuppressWarnings("unchecked") public > Collection> getImplementations( - @Nonnull final TypeToken type) { + @NonNull final TypeToken type) { ServiceRepository repository = getRepository(type); List> collection = new LinkedList<>(); final LinkedList.ServiceWrapper>> @@ -232,7 +231,7 @@ public final class ServicePipeline { return Collections.unmodifiableList(collection); } - @Nonnull + @NonNull Executor getExecutor() { return this.executor; } diff --git a/cloud-services/src/main/java/cloud/commandframework/services/ServicePipelineBuilder.java b/cloud-services/src/main/java/cloud/commandframework/services/ServicePipelineBuilder.java index dfc58127..2ee96546 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/ServicePipelineBuilder.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/ServicePipelineBuilder.java @@ -23,7 +23,8 @@ // package cloud.commandframework.services; -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; + import java.util.Objects; import java.util.concurrent.Executor; import java.util.concurrent.Executors; @@ -44,8 +45,7 @@ public final class ServicePipelineBuilder { * * @return New service pipeline */ - @Nonnull - public ServicePipeline build() { + public @NonNull ServicePipeline build() { return new ServicePipeline(this.executor); } @@ -56,8 +56,7 @@ public final class ServicePipelineBuilder { * @param executor New executor * @return Builder instance */ - @Nonnull - public ServicePipelineBuilder withExecutor(@Nonnull final Executor executor) { + public @NonNull ServicePipelineBuilder withExecutor(@NonNull final Executor executor) { this.executor = Objects.requireNonNull(executor, "Executor may not be null"); return this; } diff --git a/cloud-services/src/main/java/cloud/commandframework/services/ServicePump.java b/cloud-services/src/main/java/cloud/commandframework/services/ServicePump.java index 278a851a..29c129f8 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/ServicePump.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/ServicePump.java @@ -25,8 +25,7 @@ package cloud.commandframework.services; import cloud.commandframework.services.types.Service; import io.leangen.geantyref.TypeToken; - -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; /** * Class that forwards a context to a service type that consumes said context @@ -38,7 +37,8 @@ public final class ServicePump { private final ServicePipeline servicePipeline; private final Context context; - ServicePump(final ServicePipeline servicePipeline, final Context context) { + ServicePump(@NonNull final ServicePipeline servicePipeline, + @NonNull final Context context) { this.servicePipeline = servicePipeline; this.context = context; } @@ -50,9 +50,8 @@ public final class ServicePump { * @param Result type * @return Service spigot instance */ - @Nonnull - public ServiceSpigot through( - @Nonnull final TypeToken> type) { + public @NonNull ServiceSpigot<@NonNull Context, @NonNull Result> through( + @NonNull final TypeToken> type) { return new ServiceSpigot<>(this.servicePipeline, this.context, type); } @@ -63,9 +62,8 @@ public final class ServicePump { * @param Result type * @return Service spigot instance */ - @Nonnull - public ServiceSpigot through( - @Nonnull final Class> clazz) { + public @NonNull ServiceSpigot<@NonNull Context, @NonNull Result> through( + @NonNull final Class> clazz) { return this.through(TypeToken.get(clazz)); } diff --git a/cloud-services/src/main/java/cloud/commandframework/services/ServiceRepository.java b/cloud-services/src/main/java/cloud/commandframework/services/ServiceRepository.java index 239b3aee..b463bdb4 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/ServiceRepository.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/ServiceRepository.java @@ -26,8 +26,8 @@ package cloud.commandframework.services; import io.leangen.geantyref.TypeToken; import cloud.commandframework.services.annotations.Order; import cloud.commandframework.services.types.Service; +import org.checkerframework.checker.nullness.qual.NonNull; -import javax.annotation.Nonnull; import java.util.Collection; import java.util.Collections; import java.util.Comparator; @@ -54,7 +54,7 @@ public final class ServiceRepository { * * @param serviceType Service type */ - ServiceRepository(@Nonnull final TypeToken> serviceType) { + ServiceRepository(@NonNull final TypeToken> serviceType) { this.serviceType = serviceType; this.implementations = new LinkedList<>(); } @@ -66,8 +66,8 @@ public final class ServiceRepository { * @param filters Filters that will be used to determine whether or not the service gets used * @param Type of the implementation */ - > void registerImplementation(@Nonnull final T service, - @Nonnull final Collection> filters) { + > void registerImplementation(@NonNull final T service, + @NonNull final Collection> filters) { synchronized (this.lock) { this.implementations.add(new ServiceWrapper<>(service, filters)); } @@ -78,7 +78,7 @@ public final class ServiceRepository { * * @return Queue containing all implementations */ - @Nonnull + @NonNull LinkedList>> getQueue() { synchronized (this.lock) { return new LinkedList<>(this.implementations); @@ -101,8 +101,8 @@ public final class ServiceRepository { private final int registrationOrder = ServiceRepository.this.registrationOrder++; private final ExecutionOrder executionOrder; - private ServiceWrapper(@Nonnull final T implementation, - @Nonnull final Collection> filters) { + private ServiceWrapper(@NonNull final T implementation, + @NonNull final Collection> filters) { this.defaultImplementation = implementations.isEmpty(); this.implementation = implementation; this.filters = filters; @@ -118,12 +118,12 @@ public final class ServiceRepository { this.executionOrder = executionOrder; } - @Nonnull + @NonNull T getImplementation() { return this.implementation; } - @Nonnull + @NonNull Collection> getFilters() { return Collections.unmodifiableCollection(this.filters); } @@ -140,7 +140,7 @@ public final class ServiceRepository { } @Override - public int compareTo(@Nonnull final ServiceWrapper other) { + public int compareTo(@NonNull final ServiceWrapper other) { return Comparator.>comparingInt( wrapper -> wrapper.isDefaultImplementation() ? Integer.MIN_VALUE diff --git a/cloud-services/src/main/java/cloud/commandframework/services/ServiceSpigot.java b/cloud-services/src/main/java/cloud/commandframework/services/ServiceSpigot.java index 488d2b53..3d1e6195 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/ServiceSpigot.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/ServiceSpigot.java @@ -27,8 +27,8 @@ import io.leangen.geantyref.TypeToken; import cloud.commandframework.services.types.ConsumerService; import cloud.commandframework.services.types.Service; import cloud.commandframework.services.types.SideEffectService; +import org.checkerframework.checker.nullness.qual.NonNull; -import javax.annotation.Nonnull; import java.util.LinkedList; import java.util.concurrent.CompletableFuture; import java.util.function.BiConsumer; @@ -45,8 +45,9 @@ public final class ServiceSpigot { private final ServicePipeline pipeline; private final ServiceRepository repository; - ServiceSpigot(@Nonnull final ServicePipeline pipeline, @Nonnull final Context context, - @Nonnull final TypeToken> type) { + ServiceSpigot(@NonNull final ServicePipeline pipeline, + @NonNull final Context context, + @NonNull final TypeToken> type) { this.context = context; this.pipeline = pipeline; this.repository = pipeline.getRepository(type); @@ -72,11 +73,11 @@ public final class ServiceSpigot { * @see PipelineException PipelineException wraps exceptions thrown during filtering and result * retrieval */ - @Nonnull @SuppressWarnings("unchecked") - public Result getResult() + public @NonNull Result getResult() throws IllegalStateException, PipelineException { - final LinkedList.ServiceWrapper>> + final LinkedList + .ServiceWrapper>> queue = this.repository.getQueue(); queue.sort(null); // Sort using the built in comparator method ServiceRepository.ServiceWrapper> @@ -128,7 +129,7 @@ public final class ServiceSpigot { * default implementation * @throws IllegalStateException If a {@link SideEffectService} returns {@code null} */ - public void getResult(@Nonnull final BiConsumer consumer) { + public void getResult(@NonNull final BiConsumer consumer) { try { consumer.accept(getResult(), null); } catch (final PipelineException pipelineException) { @@ -145,8 +146,7 @@ public final class ServiceSpigot { * * @return Generated result */ - @Nonnull - public CompletableFuture getResultAsynchronously() { + public @NonNull CompletableFuture getResultAsynchronously() { return CompletableFuture.supplyAsync(this::getResult, this.pipeline.getExecutor()); } @@ -155,8 +155,7 @@ public final class ServiceSpigot { * * @return New pump, for the result of this request */ - @Nonnull - public ServicePump forward() { + public @NonNull ServicePump forward() { return this.pipeline.pump(this.getResult()); } @@ -165,8 +164,7 @@ public final class ServiceSpigot { * * @return New pump, for the result of this request */ - @Nonnull - public CompletableFuture> forwardAsynchronously() { + public @NonNull CompletableFuture> forwardAsynchronously() { return this.getResultAsynchronously().thenApply(pipeline::pump); } diff --git a/cloud-services/src/main/java/cloud/commandframework/services/types/ConsumerService.java b/cloud-services/src/main/java/cloud/commandframework/services/types/ConsumerService.java index 245c0a7d..e6577f86 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/types/ConsumerService.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/types/ConsumerService.java @@ -24,8 +24,8 @@ package cloud.commandframework.services.types; import cloud.commandframework.services.State; +import org.checkerframework.checker.nullness.qual.NonNull; -import javax.annotation.Nonnull; import java.util.function.Consumer; /** @@ -49,9 +49,8 @@ public interface ConsumerService throw new PipeBurst(); } - @Nonnull @Override - default State handle(@Nonnull final Context context) { + default @NonNull State handle(@NonNull final Context context) { try { this.accept(context); } catch (final PipeBurst burst) { @@ -67,7 +66,7 @@ public interface ConsumerService * @param context Context to consume */ @Override - void accept(@Nonnull Context context); + void accept(@NonNull Context context); class PipeBurst extends RuntimeException { diff --git a/cloud-services/src/main/java/cloud/commandframework/services/types/PartialResultService.java b/cloud-services/src/main/java/cloud/commandframework/services/types/PartialResultService.java index 68906d45..18772c4d 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/types/PartialResultService.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/types/PartialResultService.java @@ -24,9 +24,9 @@ package cloud.commandframework.services.types; import cloud.commandframework.services.ChunkedRequestContext; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; import java.util.List; import java.util.Map; @@ -38,11 +38,10 @@ import java.util.Map; * @param Chunk request context */ public interface PartialResultService> - extends Service> { + extends Service> { @Override - @Nullable - default Map handle(@Nonnull final Chunked context) { + default @Nullable Map<@NonNull Context, @NonNull Result> handle(@NonNull final Chunked context) { if (!context.isCompleted()) { this.handleRequests(context.getRemaining()).forEach(context::storeResult); } @@ -59,7 +58,6 @@ public interface PartialResultService handleRequests(@Nonnull List requests); + @NonNull Map<@NonNull Context, @NonNull Result> handleRequests(@NonNull List requests); } diff --git a/cloud-services/src/main/java/cloud/commandframework/services/types/Service.java b/cloud-services/src/main/java/cloud/commandframework/services/types/Service.java index 54876b33..7bffe09f 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/types/Service.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/types/Service.java @@ -25,9 +25,9 @@ package cloud.commandframework.services.types; import cloud.commandframework.services.ExecutionOrder; import cloud.commandframework.services.PipelineException; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; import java.util.function.Function; /** @@ -39,7 +39,7 @@ import java.util.function.Function; * @param Response type, this is what is produced by the service ("provided") */ @FunctionalInterface -public interface Service extends Function { +public interface Service extends Function<@NonNull Context, @Nullable Result> { /** * Provide a response for the given context. If the service implementation cannot provide a @@ -52,11 +52,10 @@ public interface Service extends Function { * @throws Exception Any exception that occurs during the handling can be thrown, and will be * wrapped by a {@link PipelineException} */ - @Nullable - Result handle(@Nonnull Context context) throws Exception; + @Nullable Result handle(@NonNull Context context) throws Exception; @Override - default Result apply(@Nonnull Context context) { + default @Nullable Result apply(@NonNull Context context) { try { return this.handle(context); } catch (final Exception exception) { @@ -70,8 +69,7 @@ public interface Service extends Function { * * @return Execution order */ - @Nullable - default ExecutionOrder order() { + default @Nullable ExecutionOrder order() { return null; } diff --git a/cloud-services/src/main/java/cloud/commandframework/services/types/SideEffectService.java b/cloud-services/src/main/java/cloud/commandframework/services/types/SideEffectService.java index f2118a62..679b958b 100644 --- a/cloud-services/src/main/java/cloud/commandframework/services/types/SideEffectService.java +++ b/cloud-services/src/main/java/cloud/commandframework/services/types/SideEffectService.java @@ -24,8 +24,7 @@ package cloud.commandframework.services.types; import cloud.commandframework.services.State; - -import javax.annotation.Nonnull; +import org.checkerframework.checker.nullness.qual.NonNull; /** * Service implementation that alters the state of the owning application in some way. A @@ -49,7 +48,6 @@ public interface SideEffectService extends Service { * wrapped by a {@link cloud.commandframework.services.PipelineException} */ @Override - @Nonnull - State handle(@Nonnull Context context) throws Exception; + @NonNull State handle(@NonNull Context context) throws Exception; } diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/AnnotatedMethodTest.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/AnnotatedMethodTest.java index dacc5c11..10151e4a 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/AnnotatedMethodTest.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/AnnotatedMethodTest.java @@ -25,12 +25,10 @@ package cloud.commandframework.services.mock; import cloud.commandframework.services.annotations.ServiceImplementation; -import javax.annotation.Nonnull; - public class AnnotatedMethodTest { @ServiceImplementation(MockService.class) - public MockService.MockResult handle(@Nonnull final MockService.MockContext context) { + public MockService.MockResult handle(final MockService.MockContext context) { return new MockService.MockResult(context.getString().length()); } diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/CompletingPartialResultService.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/CompletingPartialResultService.java index 764bdf20..d2c31b65 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/CompletingPartialResultService.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/CompletingPartialResultService.java @@ -23,17 +23,14 @@ // package cloud.commandframework.services.mock; -import javax.annotation.Nonnull; import java.util.HashMap; import java.util.List; import java.util.Map; public class CompletingPartialResultService implements MockPartialResultService { - @Nonnull @Override - public Map handleRequests( - @Nonnull List requests) { + public Map handleRequests(List requests) { final Map map = new HashMap<>(); for (final MockChunkedRequest.Animal animal : requests) { if (animal.getName().equals("cow")) { diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultMockService.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultMockService.java index 504aea08..0dad4ac5 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultMockService.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultMockService.java @@ -23,14 +23,10 @@ // package cloud.commandframework.services.mock; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - public class DefaultMockService implements MockService { - @Nullable @Override - public MockResult handle(@Nonnull final MockContext mockContext) + public MockResult handle(final MockContext mockContext) throws Exception { if (mockContext.getString().equals("pls throw exception")) { throw new TotallyIntentionalException(); diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultPartialRequestService.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultPartialRequestService.java index bf65ac32..f79becfa 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultPartialRequestService.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultPartialRequestService.java @@ -23,17 +23,14 @@ // package cloud.commandframework.services.mock; -import javax.annotation.Nonnull; import java.util.HashMap; import java.util.List; import java.util.Map; public class DefaultPartialRequestService implements MockPartialResultService { - @Nonnull @Override - public Map handleRequests( - @Nonnull final List requests) { + public Map handleRequests(final List requests) { final Map map = new HashMap<>(requests.size()); for (final MockChunkedRequest.Animal animal : requests) { diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultSideEffectService.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultSideEffectService.java index fadc3241..8e624d53 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultSideEffectService.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/DefaultSideEffectService.java @@ -25,13 +25,10 @@ package cloud.commandframework.services.mock; import cloud.commandframework.services.State; -import javax.annotation.Nonnull; - public class DefaultSideEffectService implements MockSideEffectService { - @Nonnull @Override - public State handle(@Nonnull final MockPlayer mockPlayer) { + public State handle(final MockPlayer mockPlayer) { mockPlayer.setHealth(0); return State.ACCEPTED; } diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/InterruptingMockConsumer.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/InterruptingMockConsumer.java index 07a393f6..1e9b25a5 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/InterruptingMockConsumer.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/InterruptingMockConsumer.java @@ -25,12 +25,10 @@ package cloud.commandframework.services.mock; import cloud.commandframework.services.types.ConsumerService; -import javax.annotation.Nonnull; - public class InterruptingMockConsumer implements MockConsumerService { @Override - public void accept(@Nonnull final MockService.MockContext mockContext) { + public void accept(final MockService.MockContext mockContext) { ConsumerService.interrupt(); } diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/MockChunkedRequest.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/MockChunkedRequest.java index 114f5733..708909fa 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/MockChunkedRequest.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/MockChunkedRequest.java @@ -25,13 +25,12 @@ package cloud.commandframework.services.mock; import cloud.commandframework.services.ChunkedRequestContext; -import javax.annotation.Nonnull; import java.util.Collection; public class MockChunkedRequest extends ChunkedRequestContext { - public MockChunkedRequest(@Nonnull final Collection requests) { + public MockChunkedRequest(final Collection requests) { super(requests); } @@ -39,11 +38,10 @@ public class MockChunkedRequest private final String name; - public Animal(@Nonnull final String name) { + public Animal(final String name) { this.name = name; } - @Nonnull public String getName() { return this.name; } @@ -54,11 +52,10 @@ public class MockChunkedRequest private final String sound; - public Sound(@Nonnull final String sound) { + public Sound(final String sound) { this.sound = sound; } - @Nonnull public String getSound() { return this.sound; } diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/MockOrderedFirst.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/MockOrderedFirst.java index 5b6f4b49..0e973696 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/MockOrderedFirst.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/MockOrderedFirst.java @@ -26,15 +26,11 @@ package cloud.commandframework.services.mock; import cloud.commandframework.services.ExecutionOrder; import cloud.commandframework.services.annotations.Order; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - @Order(ExecutionOrder.FIRST) public class MockOrderedFirst implements MockService { - @Nullable @Override - public MockResult handle(@Nonnull final MockContext mockContext) { + public MockResult handle(final MockContext mockContext) { return new MockResult(1); } diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/MockOrderedLast.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/MockOrderedLast.java index 66f11341..8d1dcad1 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/MockOrderedLast.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/MockOrderedLast.java @@ -26,15 +26,11 @@ package cloud.commandframework.services.mock; import cloud.commandframework.services.ExecutionOrder; import cloud.commandframework.services.annotations.Order; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - @Order(ExecutionOrder.LAST) public class MockOrderedLast implements MockService { - @Nullable @Override - public MockResult handle(@Nonnull final MockContext mockContext) { + public MockResult handle(final MockContext mockContext) { return new MockResult(2); } diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/MockResultConsumer.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/MockResultConsumer.java index ab8f3042..c6714447 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/MockResultConsumer.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/MockResultConsumer.java @@ -26,13 +26,10 @@ package cloud.commandframework.services.mock; import cloud.commandframework.services.State; import cloud.commandframework.services.types.SideEffectService; -import javax.annotation.Nonnull; - public class MockResultConsumer implements SideEffectService { - @Nonnull @Override - public State handle(@Nonnull final MockService.MockResult mockResultConsumer) { + public State handle(final MockService.MockResult mockResultConsumer) { return State.ACCEPTED; } diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/MockService.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/MockService.java index 19b26cf9..b9daaea9 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/MockService.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/MockService.java @@ -25,8 +25,6 @@ package cloud.commandframework.services.mock; import cloud.commandframework.services.types.Service; -import javax.annotation.Nonnull; - public interface MockService extends Service { class MockContext { @@ -34,21 +32,19 @@ public interface MockService extends Service { - @Nullable @Override - public MockResult handle(@Nonnull final MockContext mockContext) { + public MockResult handle(final MockContext mockContext) { return new MockResult(999); } diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/SecondaryMockSideEffectService.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/SecondaryMockSideEffectService.java index 3d30c2b2..ca881c4e 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/SecondaryMockSideEffectService.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/SecondaryMockSideEffectService.java @@ -25,13 +25,10 @@ package cloud.commandframework.services.mock; import cloud.commandframework.services.State; -import javax.annotation.Nonnull; - public class SecondaryMockSideEffectService implements MockSideEffectService { - @Nonnull @Override - public State handle(@Nonnull final MockPlayer mockPlayer) { + public State handle(final MockPlayer mockPlayer) { return null; } diff --git a/cloud-services/src/test/java/cloud/commandframework/services/mock/StateSettingConsumerService.java b/cloud-services/src/test/java/cloud/commandframework/services/mock/StateSettingConsumerService.java index 1487af02..5d2cf8cc 100644 --- a/cloud-services/src/test/java/cloud/commandframework/services/mock/StateSettingConsumerService.java +++ b/cloud-services/src/test/java/cloud/commandframework/services/mock/StateSettingConsumerService.java @@ -23,12 +23,10 @@ // package cloud.commandframework.services.mock; -import javax.annotation.Nonnull; - public class StateSettingConsumerService implements MockConsumerService { @Override - public void accept(@Nonnull final MockService.MockContext mockContext) { + public void accept(final MockService.MockContext mockContext) { mockContext.setState(""); }