diff --git a/wpilibNewCommands/src/main/java/edu/wpi/first/wpilibj2/command/Commands.java b/wpilibNewCommands/src/main/java/edu/wpi/first/wpilibj2/command/Commands.java index 9cd71c52404..7295e3cd43c 100644 --- a/wpilibNewCommands/src/main/java/edu/wpi/first/wpilibj2/command/Commands.java +++ b/wpilibNewCommands/src/main/java/edu/wpi/first/wpilibj2/command/Commands.java @@ -144,13 +144,14 @@ public static Command either(Command onTrue, Command onFalse, BooleanSupplier se /** * Runs one of several commands, based on the selector function. * + * @param The type of key used to select the command * @param selector the selector function * @param commands map of commands to select from * @return the command * @see SelectCommand */ - public static Command select(Map commands, Supplier selector) { - return new SelectCommand(commands, selector); + public static Command select(Map commands, Supplier selector) { + return new SelectCommand<>(commands, selector); } /** diff --git a/wpilibNewCommands/src/main/java/edu/wpi/first/wpilibj2/command/SelectCommand.java b/wpilibNewCommands/src/main/java/edu/wpi/first/wpilibj2/command/SelectCommand.java index 2bffd9775fd..28d06eb0851 100644 --- a/wpilibNewCommands/src/main/java/edu/wpi/first/wpilibj2/command/SelectCommand.java +++ b/wpilibNewCommands/src/main/java/edu/wpi/first/wpilibj2/command/SelectCommand.java @@ -19,10 +19,12 @@ * subsystems its components require. * *

This class is provided by the NewCommands VendorDep + * + * @param The type of key used to select the command */ -public class SelectCommand extends Command { - private final Map m_commands; - private final Supplier m_selector; +public class SelectCommand extends Command { + private final Map m_commands; + private final Supplier m_selector; private Command m_selectedCommand; private boolean m_runsWhenDisabled = true; private InterruptionBehavior m_interruptBehavior = InterruptionBehavior.kCancelIncoming; @@ -36,7 +38,7 @@ public class SelectCommand extends Command { * @param commands the map of commands to choose from * @param selector the selector to determine which command to run */ - public SelectCommand(Map commands, Supplier selector) { + public SelectCommand(Map commands, Supplier selector) { m_commands = requireNonNullParam(commands, "commands", "SelectCommand"); m_selector = requireNonNullParam(selector, "selector", "SelectCommand"); diff --git a/wpilibNewCommands/src/test/java/edu/wpi/first/wpilibj2/command/RobotDisabledCommandTest.java b/wpilibNewCommands/src/test/java/edu/wpi/first/wpilibj2/command/RobotDisabledCommandTest.java index 0914c25b8fc..a248810e330 100644 --- a/wpilibNewCommands/src/test/java/edu/wpi/first/wpilibj2/command/RobotDisabledCommandTest.java +++ b/wpilibNewCommands/src/test/java/edu/wpi/first/wpilibj2/command/RobotDisabledCommandTest.java @@ -141,8 +141,8 @@ void selectRunWhenDisabledTest() { MockCommandHolder command4Holder = new MockCommandHolder(false); Command command4 = command4Holder.getMock(); - Command runWhenDisabled = new SelectCommand(Map.of(1, command1, 2, command2), () -> 1); - Command dontRunWhenDisabled = new SelectCommand(Map.of(1, command3, 2, command4), () -> 1); + Command runWhenDisabled = new SelectCommand<>(Map.of(1, command1, 2, command2), () -> 1); + Command dontRunWhenDisabled = new SelectCommand<>(Map.of(1, command3, 2, command4), () -> 1); try (CommandScheduler scheduler = new CommandScheduler()) { scheduler.schedule(runWhenDisabled, dontRunWhenDisabled); diff --git a/wpilibNewCommands/src/test/java/edu/wpi/first/wpilibj2/command/SelectCommandTest.java b/wpilibNewCommands/src/test/java/edu/wpi/first/wpilibj2/command/SelectCommandTest.java index 736f120a973..0ce3b790577 100644 --- a/wpilibNewCommands/src/test/java/edu/wpi/first/wpilibj2/command/SelectCommandTest.java +++ b/wpilibNewCommands/src/test/java/edu/wpi/first/wpilibj2/command/SelectCommandTest.java @@ -13,7 +13,8 @@ import java.util.Map; import org.junit.jupiter.api.Test; -class SelectCommandTest extends CommandTestBase implements MultiCompositionTestBase { +class SelectCommandTest extends CommandTestBase + implements MultiCompositionTestBase> { @Test void selectCommandTest() { try (CommandScheduler scheduler = new CommandScheduler()) { @@ -25,8 +26,8 @@ void selectCommandTest() { MockCommandHolder command3Holder = new MockCommandHolder(true); Command command3 = command3Holder.getMock(); - SelectCommand selectCommand = - new SelectCommand( + SelectCommand selectCommand = + new SelectCommand<>( Map.ofEntries( Map.entry("one", command1), Map.entry("two", command2), @@ -61,8 +62,8 @@ void selectCommandInvalidKeyTest() { MockCommandHolder command3Holder = new MockCommandHolder(true); Command command3 = command3Holder.getMock(); - SelectCommand selectCommand = - new SelectCommand( + SelectCommand selectCommand = + new SelectCommand<>( Map.ofEntries( Map.entry("one", command1), Map.entry("two", command2), @@ -88,8 +89,8 @@ void selectCommandRequirementTest() { MockCommandHolder command3Holder = new MockCommandHolder(true, system3, system4); Command command3 = command3Holder.getMock(); - SelectCommand selectCommand = - new SelectCommand( + SelectCommand selectCommand = + new SelectCommand<>( Map.ofEntries( Map.entry("one", command1), Map.entry("two", command2), @@ -108,11 +109,11 @@ void selectCommandRequirementTest() { } @Override - public SelectCommand compose(Command... members) { - var map = new HashMap(); + public SelectCommand compose(Command... members) { + var map = new HashMap(); for (int i = 0; i < members.length; i++) { map.put(i, members[i]); } - return new SelectCommand(map, () -> 0); + return new SelectCommand<>(map, () -> 0); } } diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/selectcommand/RobotContainer.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/selectcommand/RobotContainer.java index b6aed819ebf..bd3e6772c34 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/selectcommand/RobotContainer.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/selectcommand/RobotContainer.java @@ -36,7 +36,7 @@ private CommandSelector select() { // selector does not have to be an enum; it could be any desired type (string, integer, // boolean, double...) private final Command m_exampleSelectCommand = - new SelectCommand( + new SelectCommand<>( // Maps selector values to commands Map.ofEntries( Map.entry(CommandSelector.ONE, new PrintCommand("Command one was selected!")),