From 014caa29059d55b4898abc2311bb652ef054132b Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Mon, 26 Jun 2017 09:44:29 +0200 Subject: [PATCH] Pass S (source type, was sometimes T) through to all nodes, so Command can have source type --- .../java/com/mojang/brigadier/Command.java | 4 +- .../mojang/brigadier/CommandDispatcher.java | 45 +++++++++---------- .../brigadier/builder/ArgumentBuilder.java | 16 +++---- .../builder/LiteralArgumentBuilder.java | 14 +++--- .../builder/RequiredArgumentBuilder.java | 12 ++--- .../brigadier/context/CommandContext.java | 16 +++---- .../context/CommandContextBuilder.java | 22 ++++----- .../brigadier/tree/ArgumentCommandNode.java | 6 +-- .../mojang/brigadier/tree/CommandNode.java | 22 ++++----- .../brigadier/tree/LiteralCommandNode.java | 6 +-- .../brigadier/tree/RootCommandNode.java | 4 +- .../brigadier/CommandDispatcherTest.java | 14 +++--- .../CommandDispatcherUsagesTest.java | 2 +- .../builder/ArgumentBuilderTest.java | 15 ++++--- .../builder/LiteralArgumentBuilderTest.java | 12 ++--- .../builder/RequiredArgumentBuilderTest.java | 10 ++--- .../brigadier/context/CommandContextTest.java | 9 ++-- .../tree/AbstractCommandNodeTest.java | 10 ++--- .../tree/ArgumentCommandNodeTest.java | 9 ++-- .../tree/LiteralCommandNodeTest.java | 8 ++-- .../brigadier/tree/RootCommandNodeTest.java | 16 +++---- 21 files changed, 136 insertions(+), 136 deletions(-) diff --git a/src/main/java/com/mojang/brigadier/Command.java b/src/main/java/com/mojang/brigadier/Command.java index 2ee5e7a..6272359 100644 --- a/src/main/java/com/mojang/brigadier/Command.java +++ b/src/main/java/com/mojang/brigadier/Command.java @@ -2,6 +2,6 @@ package com.mojang.brigadier; import com.mojang.brigadier.context.CommandContext; -public interface Command { - void run(CommandContext context); +public interface Command { + void run(CommandContext context); } diff --git a/src/main/java/com/mojang/brigadier/CommandDispatcher.java b/src/main/java/com/mojang/brigadier/CommandDispatcher.java index 575c97c..c82d9d3 100644 --- a/src/main/java/com/mojang/brigadier/CommandDispatcher.java +++ b/src/main/java/com/mojang/brigadier/CommandDispatcher.java @@ -17,14 +17,7 @@ import java.util.Set; import java.util.function.Predicate; import java.util.stream.Collectors; -public class CommandDispatcher { - private static final Predicate HAS_COMMAND = new Predicate() { - @Override - public boolean test(CommandNode input) { - return input != null && (input.getCommand() != null || input.getChildren().stream().anyMatch(HAS_COMMAND)); - } - }; - +public class CommandDispatcher { public static final SimpleCommandExceptionType ERROR_UNKNOWN_COMMAND = new SimpleCommandExceptionType("command.unknown", "Unknown command"); public static final String ARGUMENT_SEPARATOR = " "; private static final String USAGE_OPTIONAL_OPEN = "["; @@ -33,23 +26,29 @@ public class CommandDispatcher { private static final String USAGE_REQUIRED_CLOSE = ")"; private static final String USAGE_OR = "|"; - private final RootCommandNode root = new RootCommandNode(); + private final RootCommandNode root = new RootCommandNode<>(); + private final Predicate> hasCommand = new Predicate>() { + @Override + public boolean test(CommandNode input) { + return input != null && (input.getCommand() != null || input.getChildren().stream().anyMatch(hasCommand)); + } + }; - public void register(LiteralArgumentBuilder command) { + public void register(LiteralArgumentBuilder command) { root.addChild(command.build()); } - public void execute(String command, T source) throws CommandException { - CommandContext context = parseNodes(root, command, new CommandContextBuilder<>(source)); + public void execute(String command, S source) throws CommandException { + CommandContext context = parseNodes(root, command, new CommandContextBuilder<>(source)); context.getCommand().run(context); } - private CommandContext parseNodes(CommandNode node, String command, CommandContextBuilder contextBuilder) throws CommandException { + private CommandContext parseNodes(CommandNode node, String command, CommandContextBuilder contextBuilder) throws CommandException { CommandException exception = null; - for (CommandNode child : node.getChildren()) { + for (CommandNode child : node.getChildren()) { try { - CommandContextBuilder context = contextBuilder.copy(); + CommandContextBuilder context = contextBuilder.copy(); String remaining = child.parse(command, context); if (child.getCommand() != null) { context.withCommand(child.getCommand()); @@ -74,10 +73,10 @@ public class CommandDispatcher { return contextBuilder.build(); } - public String getUsage(String command, T source) throws CommandException { - CommandContext context = parseNodes(root, command, new CommandContextBuilder<>(source)); - CommandNode base = Iterables.getLast(context.getNodes().keySet()); - List children = base.getChildren().stream().filter(HAS_COMMAND).collect(Collectors.toList()); + public String getUsage(String command, S source) throws CommandException { + CommandContext context = parseNodes(root, command, new CommandContextBuilder<>(source)); + CommandNode base = Iterables.getLast(context.getNodes().keySet()); + List> children = base.getChildren().stream().filter(hasCommand).collect(Collectors.toList()); boolean optional = base.getCommand() != null; if (children.isEmpty()) { @@ -113,10 +112,10 @@ public class CommandDispatcher { return result.toString(); } - private Set findSuggestions(CommandNode node, String command, CommandContextBuilder contextBuilder, Set result) { - for (CommandNode child : node.getChildren()) { + private Set findSuggestions(CommandNode node, String command, CommandContextBuilder contextBuilder, Set result) { + for (CommandNode child : node.getChildren()) { try { - CommandContextBuilder context = contextBuilder.copy(); + CommandContextBuilder context = contextBuilder.copy(); String remaining = child.parse(command, context); if (remaining.isEmpty()) { child.listSuggestions(command, result); @@ -131,7 +130,7 @@ public class CommandDispatcher { return result; } - public String[] getCompletionSuggestions(String command, T source) { + public String[] getCompletionSuggestions(String command, S source) { final Set nodes = findSuggestions(root, command, new CommandContextBuilder<>(source), Sets.newLinkedHashSet()); return nodes.toArray(new String[nodes.size()]); diff --git a/src/main/java/com/mojang/brigadier/builder/ArgumentBuilder.java b/src/main/java/com/mojang/brigadier/builder/ArgumentBuilder.java index 4c5696f..a72ce7a 100644 --- a/src/main/java/com/mojang/brigadier/builder/ArgumentBuilder.java +++ b/src/main/java/com/mojang/brigadier/builder/ArgumentBuilder.java @@ -6,29 +6,29 @@ import com.mojang.brigadier.tree.RootCommandNode; import java.util.Collection; -public abstract class ArgumentBuilder> { - private final RootCommandNode arguments = new RootCommandNode(); - private Command command; +public abstract class ArgumentBuilder> { + private final RootCommandNode arguments = new RootCommandNode<>(); + private Command command; protected abstract T getThis(); - public T then(ArgumentBuilder argument) { + public T then(ArgumentBuilder argument) { arguments.addChild(argument.build()); return getThis(); } - public Collection getArguments() { + public Collection> getArguments() { return arguments.getChildren(); } - public T executes(Command command) { + public T executes(Command command) { this.command = command; return getThis(); } - protected Command getCommand() { + protected Command getCommand() { return command; } - public abstract CommandNode build(); + public abstract CommandNode build(); } diff --git a/src/main/java/com/mojang/brigadier/builder/LiteralArgumentBuilder.java b/src/main/java/com/mojang/brigadier/builder/LiteralArgumentBuilder.java index 1d6f7a1..f540cab 100644 --- a/src/main/java/com/mojang/brigadier/builder/LiteralArgumentBuilder.java +++ b/src/main/java/com/mojang/brigadier/builder/LiteralArgumentBuilder.java @@ -3,19 +3,19 @@ package com.mojang.brigadier.builder; import com.mojang.brigadier.tree.CommandNode; import com.mojang.brigadier.tree.LiteralCommandNode; -public class LiteralArgumentBuilder extends ArgumentBuilder { +public class LiteralArgumentBuilder extends ArgumentBuilder> { private final String literal; protected LiteralArgumentBuilder(String literal) { this.literal = literal; } - public static LiteralArgumentBuilder literal(String name) { - return new LiteralArgumentBuilder(name); + public static LiteralArgumentBuilder literal(String name) { + return new LiteralArgumentBuilder<>(name); } @Override - protected LiteralArgumentBuilder getThis() { + protected LiteralArgumentBuilder getThis() { return this; } @@ -24,10 +24,10 @@ public class LiteralArgumentBuilder extends ArgumentBuilder build() { + LiteralCommandNode result = new LiteralCommandNode<>(getLiteral(), getCommand()); - for (CommandNode argument : getArguments()) { + for (CommandNode argument : getArguments()) { result.addChild(argument); } diff --git a/src/main/java/com/mojang/brigadier/builder/RequiredArgumentBuilder.java b/src/main/java/com/mojang/brigadier/builder/RequiredArgumentBuilder.java index 4aee9fd..7aad5af 100644 --- a/src/main/java/com/mojang/brigadier/builder/RequiredArgumentBuilder.java +++ b/src/main/java/com/mojang/brigadier/builder/RequiredArgumentBuilder.java @@ -4,7 +4,7 @@ import com.mojang.brigadier.arguments.CommandArgumentType; import com.mojang.brigadier.tree.ArgumentCommandNode; import com.mojang.brigadier.tree.CommandNode; -public class RequiredArgumentBuilder extends ArgumentBuilder> { +public class RequiredArgumentBuilder extends ArgumentBuilder> { private final String name; private final CommandArgumentType type; @@ -13,12 +13,12 @@ public class RequiredArgumentBuilder extends ArgumentBuilder RequiredArgumentBuilder argument(String name, CommandArgumentType type) { + public static RequiredArgumentBuilder argument(String name, CommandArgumentType type) { return new RequiredArgumentBuilder<>(name, type); } @Override - protected RequiredArgumentBuilder getThis() { + protected RequiredArgumentBuilder getThis() { return this; } @@ -30,10 +30,10 @@ public class RequiredArgumentBuilder extends ArgumentBuilder build() { - ArgumentCommandNode result = new ArgumentCommandNode<>(getName(), getType(), getCommand()); + public ArgumentCommandNode build() { + ArgumentCommandNode result = new ArgumentCommandNode<>(getName(), getType(), getCommand()); - for (CommandNode argument : getArguments()) { + for (CommandNode argument : getArguments()) { result.addChild(argument); } diff --git a/src/main/java/com/mojang/brigadier/context/CommandContext.java b/src/main/java/com/mojang/brigadier/context/CommandContext.java index 06e2471..30ad752 100644 --- a/src/main/java/com/mojang/brigadier/context/CommandContext.java +++ b/src/main/java/com/mojang/brigadier/context/CommandContext.java @@ -9,26 +9,26 @@ import com.mojang.brigadier.tree.CommandNode; import java.util.Map; -public class CommandContext { +public class CommandContext { private final Joiner JOINER = Joiner.on(CommandDispatcher.ARGUMENT_SEPARATOR); - private final T source; + private final S source; private final Map> arguments; - private final Command command; - private final Map nodes; + private final Command command; + private final Map, String> nodes; - public CommandContext(T source, Map> arguments, Command command, Map nodes) { + public CommandContext(S source, Map> arguments, Command command, Map, String> nodes) { this.source = source; this.arguments = arguments; this.command = command; this.nodes = nodes; } - public Command getCommand() { + public Command getCommand() { return command; } - public T getSource() { + public S getSource() { return source; } @@ -75,7 +75,7 @@ public class CommandContext { return JOINER.join(nodes.values()); } - public Map getNodes() { + public Map, String> getNodes() { return nodes; } } diff --git a/src/main/java/com/mojang/brigadier/context/CommandContextBuilder.java b/src/main/java/com/mojang/brigadier/context/CommandContextBuilder.java index 97c8c7e..7b51349 100644 --- a/src/main/java/com/mojang/brigadier/context/CommandContextBuilder.java +++ b/src/main/java/com/mojang/brigadier/context/CommandContextBuilder.java @@ -6,17 +6,17 @@ import com.mojang.brigadier.tree.CommandNode; import java.util.Map; -public class CommandContextBuilder { +public class CommandContextBuilder { private final Map> arguments = Maps.newHashMap(); - private final Map nodes = Maps.newLinkedHashMap(); - private final T source; - private Command command; + private final Map, String> nodes = Maps.newLinkedHashMap(); + private final S source; + private Command command; - public CommandContextBuilder(T source) { + public CommandContextBuilder(S source) { this.source = source; } - public CommandContextBuilder withArgument(String name, ParsedArgument argument) { + public CommandContextBuilder withArgument(String name, ParsedArgument argument) { this.arguments.put(name, argument); return this; } @@ -25,25 +25,25 @@ public class CommandContextBuilder { return arguments; } - public CommandContextBuilder withCommand(Command command) { + public CommandContextBuilder withCommand(Command command) { this.command = command; return this; } - public CommandContextBuilder withNode(CommandNode node, String raw) { + public CommandContextBuilder withNode(CommandNode node, String raw) { this.nodes.put(node, raw); return this; } - public CommandContextBuilder copy() { - CommandContextBuilder copy = new CommandContextBuilder<>(source); + public CommandContextBuilder copy() { + CommandContextBuilder copy = new CommandContextBuilder<>(source); copy.command = this.command; copy.arguments.putAll(this.arguments); copy.nodes.putAll(this.nodes); return copy; } - public CommandContext build() { + public CommandContext build() { return new CommandContext<>(source, arguments, command, nodes); } } diff --git a/src/main/java/com/mojang/brigadier/tree/ArgumentCommandNode.java b/src/main/java/com/mojang/brigadier/tree/ArgumentCommandNode.java index b34fefc..dd1c400 100644 --- a/src/main/java/com/mojang/brigadier/tree/ArgumentCommandNode.java +++ b/src/main/java/com/mojang/brigadier/tree/ArgumentCommandNode.java @@ -8,14 +8,14 @@ import com.mojang.brigadier.exceptions.CommandException; import java.util.Set; -public class ArgumentCommandNode extends CommandNode { +public class ArgumentCommandNode extends CommandNode { private static final String USAGE_ARGUMENT_OPEN = "<"; private static final String USAGE_ARGUMENT_CLOSE = ">"; private final String name; private final CommandArgumentType type; - public ArgumentCommandNode(String name, CommandArgumentType type, Command command) { + public ArgumentCommandNode(String name, CommandArgumentType type, Command command) { super(command); this.name = name; this.type = type; @@ -40,7 +40,7 @@ public class ArgumentCommandNode extends CommandNode { } @Override - public String parse(String command, CommandContextBuilder contextBuilder) throws CommandException { + public String parse(String command, CommandContextBuilder contextBuilder) throws CommandException { ParsedArgument parsed = type.parse(command); int start = parsed.getRaw().length(); diff --git a/src/main/java/com/mojang/brigadier/tree/CommandNode.java b/src/main/java/com/mojang/brigadier/tree/CommandNode.java index be66cbe..30474ac 100644 --- a/src/main/java/com/mojang/brigadier/tree/CommandNode.java +++ b/src/main/java/com/mojang/brigadier/tree/CommandNode.java @@ -9,30 +9,30 @@ import java.util.Collection; import java.util.Map; import java.util.Set; -public abstract class CommandNode { - private final Map children = Maps.newLinkedHashMap(); - private Command command; +public abstract class CommandNode { + private final Map> children = Maps.newLinkedHashMap(); + private Command command; - protected CommandNode(Command command) { + protected CommandNode(Command command) { this.command = command; } - public Command getCommand() { + public Command getCommand() { return command; } - public Collection getChildren() { + public Collection> getChildren() { return children.values(); } - public void addChild(CommandNode node) { - CommandNode child = children.get(node.getMergeKey()); + public void addChild(CommandNode node) { + CommandNode child = children.get(node.getMergeKey()); if (child != null) { // We've found something to merge onto if (node.getCommand() != null) { child.command = node.getCommand(); } - for (CommandNode grandchild : node.getChildren()) { + for (CommandNode grandchild : node.getChildren()) { child.addChild(grandchild); } } else { @@ -45,7 +45,7 @@ public abstract class CommandNode { if (this == o) return true; if (!(o instanceof CommandNode)) return false; - CommandNode that = (CommandNode) o; + CommandNode that = (CommandNode) o; if (!children.equals(that.children)) return false; if (command != null ? !command.equals(that.command) : that.command != null) return false; @@ -62,7 +62,7 @@ public abstract class CommandNode { public abstract String getUsageText(); - public abstract String parse(String command, CommandContextBuilder contextBuilder) throws CommandException; + public abstract String parse(String command, CommandContextBuilder contextBuilder) throws CommandException; public abstract void listSuggestions(String command, Set output); } diff --git a/src/main/java/com/mojang/brigadier/tree/LiteralCommandNode.java b/src/main/java/com/mojang/brigadier/tree/LiteralCommandNode.java index ac42c1a..51ed4a6 100644 --- a/src/main/java/com/mojang/brigadier/tree/LiteralCommandNode.java +++ b/src/main/java/com/mojang/brigadier/tree/LiteralCommandNode.java @@ -8,12 +8,12 @@ import com.mojang.brigadier.exceptions.ParameterizedCommandExceptionType; import java.util.Set; -public class LiteralCommandNode extends CommandNode { +public class LiteralCommandNode extends CommandNode { public static final ParameterizedCommandExceptionType ERROR_INCORRECT_LITERAL = new ParameterizedCommandExceptionType("argument.literal.incorrect", "Expected literal ${expected}", "expected"); private final String literal; - public LiteralCommandNode(String literal, Command command) { + public LiteralCommandNode(String literal, Command command) { super(command); this.literal = literal; } @@ -28,7 +28,7 @@ public class LiteralCommandNode extends CommandNode { } @Override - public String parse(String command, CommandContextBuilder contextBuilder) throws CommandException { + public String parse(String command, CommandContextBuilder contextBuilder) throws CommandException { String expected = literal + (command.length() > literal.length() ? CommandDispatcher.ARGUMENT_SEPARATOR : ""); if (!command.startsWith(expected)) { diff --git a/src/main/java/com/mojang/brigadier/tree/RootCommandNode.java b/src/main/java/com/mojang/brigadier/tree/RootCommandNode.java index 4d2e4ca..1596715 100644 --- a/src/main/java/com/mojang/brigadier/tree/RootCommandNode.java +++ b/src/main/java/com/mojang/brigadier/tree/RootCommandNode.java @@ -5,7 +5,7 @@ import com.mojang.brigadier.exceptions.CommandException; import java.util.Set; -public class RootCommandNode extends CommandNode { +public class RootCommandNode extends CommandNode { public RootCommandNode() { super(null); } @@ -21,7 +21,7 @@ public class RootCommandNode extends CommandNode { } @Override - public String parse(String command, CommandContextBuilder contextBuilder) throws CommandException { + public String parse(String command, CommandContextBuilder contextBuilder) throws CommandException { return command; } diff --git a/src/test/java/com/mojang/brigadier/CommandDispatcherTest.java b/src/test/java/com/mojang/brigadier/CommandDispatcherTest.java index 9eb70b0..131cf34 100644 --- a/src/test/java/com/mojang/brigadier/CommandDispatcherTest.java +++ b/src/test/java/com/mojang/brigadier/CommandDispatcherTest.java @@ -26,7 +26,7 @@ import static org.mockito.Mockito.*; public class CommandDispatcherTest { private CommandDispatcher subject; @Mock - private Command command; + private Command command; @Mock private Object source; @@ -35,6 +35,7 @@ public class CommandDispatcherTest { subject = new CommandDispatcher<>(); } + @SuppressWarnings("unchecked") @Test public void testCreateAndExecuteCommand() throws Exception { subject.register(literal("foo").executes(command)); @@ -43,6 +44,7 @@ public class CommandDispatcherTest { verify(command).run(any(CommandContext.class)); } + @SuppressWarnings("unchecked") @Test public void testCreateAndMergeCommands() throws Exception { subject.register(literal("base").then(literal("foo")).executes(command)); @@ -53,11 +55,12 @@ public class CommandDispatcherTest { verify(command, times(2)).run(any(CommandContext.class)); } + @SuppressWarnings("unchecked") @Test public void testCreateAndExecuteOverlappingCommands() throws Exception { - Command one = mock(Command.class); - Command two = mock(Command.class); - Command three = mock(Command.class); + Command one = mock(Command.class); + Command two = mock(Command.class); + Command three = mock(Command.class); subject.register( literal("foo").then( @@ -109,9 +112,10 @@ public class CommandDispatcherTest { } } + @SuppressWarnings("unchecked") @Test public void testExecuteSubcommand() throws Exception { - Command subCommand = mock(Command.class); + Command subCommand = mock(Command.class); subject.register(literal("foo").then( literal("a") diff --git a/src/test/java/com/mojang/brigadier/CommandDispatcherUsagesTest.java b/src/test/java/com/mojang/brigadier/CommandDispatcherUsagesTest.java index 2228080..a05446e 100644 --- a/src/test/java/com/mojang/brigadier/CommandDispatcherUsagesTest.java +++ b/src/test/java/com/mojang/brigadier/CommandDispatcherUsagesTest.java @@ -24,7 +24,7 @@ public class CommandDispatcherUsagesTest { @Mock private Object source; @Mock - private Command command; + private Command command; @Before public void setUp() throws Exception { diff --git a/src/test/java/com/mojang/brigadier/builder/ArgumentBuilderTest.java b/src/test/java/com/mojang/brigadier/builder/ArgumentBuilderTest.java index 3ac84fe..971b9d0 100644 --- a/src/test/java/com/mojang/brigadier/builder/ArgumentBuilderTest.java +++ b/src/test/java/com/mojang/brigadier/builder/ArgumentBuilderTest.java @@ -8,34 +8,35 @@ import static com.mojang.brigadier.arguments.IntegerArgumentType.integer; import static com.mojang.brigadier.builder.RequiredArgumentBuilder.argument; import static org.hamcrest.Matchers.hasItems; import static org.hamcrest.Matchers.hasSize; +import static org.hamcrest.core.IsCollectionContaining.hasItem; import static org.junit.Assert.assertThat; public class ArgumentBuilderTest { - private TestableArgumentBuilder builder; + private TestableArgumentBuilder builder; @Before public void setUp() throws Exception { - builder = new TestableArgumentBuilder(); + builder = new TestableArgumentBuilder<>(); } @Test public void testArguments() throws Exception { - RequiredArgumentBuilder argument = argument("bar", integer()); + RequiredArgumentBuilder argument = argument("bar", integer()); builder.then(argument); assertThat(builder.getArguments(), hasSize(1)); - assertThat(builder.getArguments(), hasItems((CommandNode) argument.build())); + assertThat(builder.getArguments(), hasItem((CommandNode) argument.build())); } - private static class TestableArgumentBuilder extends ArgumentBuilder { + private static class TestableArgumentBuilder extends ArgumentBuilder> { @Override - protected TestableArgumentBuilder getThis() { + protected TestableArgumentBuilder getThis() { return this; } @Override - public CommandNode build() { + public CommandNode build() { return null; } } diff --git a/src/test/java/com/mojang/brigadier/builder/LiteralArgumentBuilderTest.java b/src/test/java/com/mojang/brigadier/builder/LiteralArgumentBuilderTest.java index 341f605..3ecaa6a 100644 --- a/src/test/java/com/mojang/brigadier/builder/LiteralArgumentBuilderTest.java +++ b/src/test/java/com/mojang/brigadier/builder/LiteralArgumentBuilderTest.java @@ -13,26 +13,26 @@ import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; public class LiteralArgumentBuilderTest { - private LiteralArgumentBuilder builder; + private LiteralArgumentBuilder builder; @Mock private - Command command; + Command command; @Before public void setUp() throws Exception { - builder = new LiteralArgumentBuilder("foo"); + builder = new LiteralArgumentBuilder<>("foo"); } @Test public void testBuild() throws Exception { - LiteralCommandNode node = builder.build(); + LiteralCommandNode node = builder.build(); assertThat(node.getLiteral(), is("foo")); } @Test public void testBuildWithExecutor() throws Exception { - LiteralCommandNode node = builder.executes(command).build(); + LiteralCommandNode node = builder.executes(command).build(); assertThat(node.getLiteral(), is("foo")); assertThat(node.getCommand(), is(command)); @@ -42,7 +42,7 @@ public class LiteralArgumentBuilderTest { public void testBuildWithChildren() throws Exception { builder.then(argument("bar", integer())); builder.then(argument("baz", integer())); - LiteralCommandNode node = builder.build(); + LiteralCommandNode node = builder.build(); assertThat(node.getChildren(), hasSize(2)); } diff --git a/src/test/java/com/mojang/brigadier/builder/RequiredArgumentBuilderTest.java b/src/test/java/com/mojang/brigadier/builder/RequiredArgumentBuilderTest.java index c851216..11d2b69 100644 --- a/src/test/java/com/mojang/brigadier/builder/RequiredArgumentBuilderTest.java +++ b/src/test/java/com/mojang/brigadier/builder/RequiredArgumentBuilderTest.java @@ -16,10 +16,10 @@ import static org.junit.Assert.assertThat; public class RequiredArgumentBuilderTest { @Mock private CommandArgumentType type; - private RequiredArgumentBuilder builder; + private RequiredArgumentBuilder builder; @Mock private - Command command; + Command command; @Before public void setUp() throws Exception { @@ -28,7 +28,7 @@ public class RequiredArgumentBuilderTest { @Test public void testBuild() throws Exception { - ArgumentCommandNode node = builder.build(); + ArgumentCommandNode node = builder.build(); assertThat(node.getName(), is("foo")); assertThat(node.getType(), is(type)); @@ -36,7 +36,7 @@ public class RequiredArgumentBuilderTest { @Test public void testBuildWithExecutor() throws Exception { - ArgumentCommandNode node = builder.executes(command).build(); + ArgumentCommandNode node = builder.executes(command).build(); assertThat(node.getName(), is("foo")); assertThat(node.getType(), is(type)); @@ -47,7 +47,7 @@ public class RequiredArgumentBuilderTest { public void testBuildWithChildren() throws Exception { builder.then(argument("bar", integer())); builder.then(argument("baz", integer())); - ArgumentCommandNode node = builder.build(); + ArgumentCommandNode node = builder.build(); assertThat(node.getChildren(), hasSize(2)); } diff --git a/src/test/java/com/mojang/brigadier/context/CommandContextTest.java b/src/test/java/com/mojang/brigadier/context/CommandContextTest.java index c643a81..ca29ee6 100644 --- a/src/test/java/com/mojang/brigadier/context/CommandContextTest.java +++ b/src/test/java/com/mojang/brigadier/context/CommandContextTest.java @@ -49,13 +49,14 @@ public class CommandContextTest { assertThat(builder.build().getSource(), is(source)); } + @SuppressWarnings("unchecked") @Test public void testEquals() throws Exception { Object otherSource = new Object(); - Command command = mock(Command.class); - Command otherCommand = mock(Command.class); - CommandNode node = mock(CommandNode.class); - CommandNode otherNode = mock(CommandNode.class); + Command command = mock(Command.class); + Command otherCommand = mock(Command.class); + CommandNode node = mock(CommandNode.class); + CommandNode otherNode = mock(CommandNode.class); new EqualsTester() .addEqualityGroup(new CommandContextBuilder<>(source).build(), new CommandContextBuilder<>(source).build()) .addEqualityGroup(new CommandContextBuilder<>(otherSource).build(), new CommandContextBuilder<>(otherSource).build()) diff --git a/src/test/java/com/mojang/brigadier/tree/AbstractCommandNodeTest.java b/src/test/java/com/mojang/brigadier/tree/AbstractCommandNodeTest.java index 26a153d..a71b7d1 100644 --- a/src/test/java/com/mojang/brigadier/tree/AbstractCommandNodeTest.java +++ b/src/test/java/com/mojang/brigadier/tree/AbstractCommandNodeTest.java @@ -15,11 +15,11 @@ import static org.junit.Assert.assertThat; public abstract class AbstractCommandNodeTest { @Mock private Command command; - protected abstract CommandNode getCommandNode(); + protected abstract CommandNode getCommandNode(); @Test public void testAddChild() throws Exception { - CommandNode node = getCommandNode(); + CommandNode node = getCommandNode(); node.addChild(literal("child1").build()); node.addChild(literal("child2").build()); @@ -30,7 +30,7 @@ public abstract class AbstractCommandNodeTest { @Test public void testAddChildMergesGrandchildren() throws Exception { - CommandNode node = getCommandNode(); + CommandNode node = getCommandNode(); node.addChild(literal("child").then( literal("grandchild1") @@ -46,7 +46,7 @@ public abstract class AbstractCommandNodeTest { @Test public void testAddChildPreservesCommand() throws Exception { - CommandNode node = getCommandNode(); + CommandNode node = getCommandNode(); node.addChild(literal("child").executes(command).build()); node.addChild(literal("child").build()); @@ -56,7 +56,7 @@ public abstract class AbstractCommandNodeTest { @Test public void testAddChildOverwritesCommand() throws Exception { - CommandNode node = getCommandNode(); + CommandNode node = getCommandNode(); node.addChild(literal("child").build()); node.addChild(literal("child").executes(command).build()); diff --git a/src/test/java/com/mojang/brigadier/tree/ArgumentCommandNodeTest.java b/src/test/java/com/mojang/brigadier/tree/ArgumentCommandNodeTest.java index f433529..043ae93 100644 --- a/src/test/java/com/mojang/brigadier/tree/ArgumentCommandNodeTest.java +++ b/src/test/java/com/mojang/brigadier/tree/ArgumentCommandNodeTest.java @@ -7,28 +7,25 @@ import com.mojang.brigadier.Command; import com.mojang.brigadier.arguments.IntegerArgumentType; import com.mojang.brigadier.context.CommandContextBuilder; import com.mojang.brigadier.exceptions.CommandException; -import com.mojang.brigadier.exceptions.CommandExceptionType; import org.junit.Before; import org.junit.Test; -import java.util.Map; import java.util.Set; import static com.mojang.brigadier.arguments.IntegerArgumentType.integer; import static com.mojang.brigadier.builder.RequiredArgumentBuilder.argument; import static org.hamcrest.Matchers.empty; -import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; import static org.mockito.Mockito.mock; public class ArgumentCommandNodeTest extends AbstractCommandNodeTest { - private ArgumentCommandNode node; + private ArgumentCommandNode node; private CommandContextBuilder contextBuilder; @Override - protected CommandNode getCommandNode() { + protected CommandNode getCommandNode() { return node; } @@ -79,7 +76,7 @@ public class ArgumentCommandNodeTest extends AbstractCommandNodeTest { @Test public void testEquals() throws Exception { - Command command = mock(Command.class); + @SuppressWarnings("unchecked") Command command = (Command) mock(Command.class); new EqualsTester() .addEqualityGroup( diff --git a/src/test/java/com/mojang/brigadier/tree/LiteralCommandNodeTest.java b/src/test/java/com/mojang/brigadier/tree/LiteralCommandNodeTest.java index 8005f07..e1462a2 100644 --- a/src/test/java/com/mojang/brigadier/tree/LiteralCommandNodeTest.java +++ b/src/test/java/com/mojang/brigadier/tree/LiteralCommandNodeTest.java @@ -6,11 +6,9 @@ import com.google.common.testing.EqualsTester; import com.mojang.brigadier.Command; import com.mojang.brigadier.context.CommandContextBuilder; import com.mojang.brigadier.exceptions.CommandException; -import com.mojang.brigadier.exceptions.CommandExceptionType; import org.junit.Before; import org.junit.Test; -import java.util.Map; import java.util.Set; import static com.mojang.brigadier.builder.LiteralArgumentBuilder.literal; @@ -22,11 +20,11 @@ import static org.junit.Assert.fail; import static org.mockito.Mockito.mock; public class LiteralCommandNodeTest extends AbstractCommandNodeTest { - private LiteralCommandNode node; + private LiteralCommandNode node; private CommandContextBuilder contextBuilder; @Override - protected CommandNode getCommandNode() { + protected CommandNode getCommandNode() { return node; } @@ -94,7 +92,7 @@ public class LiteralCommandNodeTest extends AbstractCommandNodeTest { @Test public void testEquals() throws Exception { - Command command = mock(Command.class); + @SuppressWarnings("unchecked") Command command = mock(Command.class); new EqualsTester() .addEqualityGroup( diff --git a/src/test/java/com/mojang/brigadier/tree/RootCommandNodeTest.java b/src/test/java/com/mojang/brigadier/tree/RootCommandNodeTest.java index 2dfa392..ac491fc 100644 --- a/src/test/java/com/mojang/brigadier/tree/RootCommandNodeTest.java +++ b/src/test/java/com/mojang/brigadier/tree/RootCommandNodeTest.java @@ -14,16 +14,16 @@ import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; public class RootCommandNodeTest extends AbstractCommandNodeTest { - private RootCommandNode node; + private RootCommandNode node; @Override - protected CommandNode getCommandNode() { + protected CommandNode getCommandNode() { return node; } @Before public void setUp() throws Exception { - node = new RootCommandNode(); + node = new RootCommandNode<>(); } @Test @@ -33,7 +33,7 @@ public class RootCommandNodeTest extends AbstractCommandNodeTest { @Test(expected = UnsupportedOperationException.class) public void testAddChildNoRoot() throws Exception { - node.addChild(new RootCommandNode()); + node.addChild(new RootCommandNode<>()); } @Test @@ -52,14 +52,14 @@ public class RootCommandNodeTest extends AbstractCommandNodeTest { public void testEquals() throws Exception { new EqualsTester() .addEqualityGroup( - new RootCommandNode(), - new RootCommandNode() + new RootCommandNode<>(), + new RootCommandNode<>() ) .addEqualityGroup( - new RootCommandNode() {{ + new RootCommandNode() {{ addChild(literal("foo").build()); }}, - new RootCommandNode() {{ + new RootCommandNode() {{ addChild(literal("foo").build()); }} )