Skip to content

Commit c091332

Browse files
author
Kaleidox
committed
improve verbosity
1 parent 8f70a0f commit c091332

File tree

1 file changed

+14
-34
lines changed

1 file changed

+14
-34
lines changed

src/main/java/org/comroid/commands/impl/CommandManager.java

Lines changed: 14 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,8 @@ public final void initialize() {
105105
}
106106

107107
public final Stream<AutoFillOption> autoComplete(
108-
CommandResponseHandler source,
109-
@Doc("Do not include currentValue") String[] fullCommand,
110-
String argName, @Nullable String currentValue, Object... extraArgs
108+
CommandResponseHandler source, @Doc("Do not include currentValue") String[] fullCommand, String argName,
109+
@Nullable String currentValue, Object... extraArgs
111110
) {
112111
var usage = createUsageBase(source, fullCommand, extraArgs);
113112
return autoComplete(usage, argName, currentValue);
@@ -130,14 +129,11 @@ public final CommandUsage createUsageBase(CommandResponseHandler source, String[
130129
of(this, source).flatMap(cast(CommandContextProvider.class))).collect(Collectors.toUnmodifiableSet());
131130
var expand = expand(it -> contextProviders.stream().flatMap(ccp -> ccp.expandContext(it)));
132131
of(this, source).flatMap(expand).distinct().forEach(builder::context);
133-
concat(streamChildren(Object.class), Arrays.stream(context)).flatMap(expand)
134-
.distinct()
135-
.forEach(builder::context);
132+
concat(streamChildren(Object.class), Arrays.stream(context)).flatMap(expand).distinct().forEach(builder::context);
136133
return builder.build();
137134
}
138135

139-
public final Stream<AutoFillOption> autoComplete(
140-
CommandUsage usage, String argName, @Nullable String currentValue) {
136+
public final Stream<AutoFillOption> autoComplete(CommandUsage usage, String argName, @Nullable String currentValue) {
141137
try {
142138
// initialize usage
143139
usage.advanceFull();
@@ -162,9 +158,7 @@ public final Stream<AutoFillOption> autoComplete(
162158
return currentCallFirstParam.orElseGet(paramTrace::peek)
163159
.autoFill(usage, argName, currentValue)
164160
.filter(IAutoFillProvider.stringCheck(currentValue))
165-
.map(seq -> seq instanceof AutoFillOption afo
166-
? afo
167-
: new AutoFillOption(seq.toString(), seq.toString()));
161+
.map(seq -> seq instanceof AutoFillOption afo ? afo : new AutoFillOption(seq.toString(), seq.toString()));
168162
// else try sub-callables
169163
else return Stream.of(stackTrace.peek())
170164
.filter(callable -> isPermitted(usage, callable))
@@ -177,10 +171,7 @@ public final Stream<AutoFillOption> autoComplete(
177171
}
178172
}
179173

180-
public final @Nullable Object execute(
181-
CommandResponseHandler source, String[] fullCommand,
182-
@Nullable Map<String, Object> namedArgs, Object... extraArgs
183-
) {
174+
public final @Nullable Object execute(CommandResponseHandler source, String[] fullCommand, @Nullable Map<String, Object> namedArgs, Object... extraArgs) {
184175
var usage = createUsageBase(source, fullCommand, extraArgs);
185176
return execute(usage, namedArgs);
186177
}
@@ -192,7 +183,7 @@ public final Stream<AutoFillOption> autoComplete(
192183
usage.advanceFull();
193184

194185
Call call = usage.getStackTrace().peek().asCall();
195-
if (call == null) throw new CommandError("No such command");
186+
if (call == null) throw new CommandError("No such command: " + String.join(" ", usage.getFullCommand()));
196187

197188
validatePermitted(usage, call);
198189

@@ -215,19 +206,14 @@ public final Stream<AutoFillOption> autoComplete(
215206
}
216207
} else {
217208
// find contextual argument
218-
useArgs[i] = usage.getContext()
219-
.stream()
220-
.filter(type.getTargetClass()::isInstance)
221-
.findAny()
222-
.orElse(null);
209+
useArgs[i] = usage.getContext().stream().filter(type.getTargetClass()::isInstance).findAny().orElse(null);
223210
}
224211
}
225212

226213
// execute method
227214
result = response = call.getCallable().invoke(call.getTarget(), useArgs);
228215
} catch (InvocationTargetException itex) {
229-
if (itex.getCause() instanceof CommandError err)
230-
response = err.getResponse() == null ? tryHandleThrowable(usage, err) : err.getResponse();
216+
if (itex.getCause() instanceof CommandError err) response = err.getResponse() == null ? tryHandleThrowable(usage, err) : err.getResponse();
231217
else throw itex;
232218
} catch (CommandError err) {
233219
response = err.getResponse() == null ? tryHandleThrowable(usage, err) : err.getResponse();
@@ -254,8 +240,8 @@ protected Optional<AbstractCommandAdapter> adapter() {
254240
}
255241

256242
private String tryHandleThrowable(CommandUsage usage, Throwable t) {
257-
return Stream.concat(children(CommandErrorHandler.class).sorted(Comparator.comparing(Object::getClass,
258-
Order.COMPARATOR)), of((CommandErrorHandler) usage.getSource()))
243+
return Stream.concat(children(CommandErrorHandler.class).sorted(Comparator.comparing(Object::getClass, Order.COMPARATOR)),
244+
of((CommandErrorHandler) usage.getSource()))
259245
.sorted(Comparator.comparingInt(handler -> handler instanceof CommandResponseHandler ? 1 : 0))
260246
.flatMap(handler -> handler.handleThrowable(usage, t).stream())
261247
.findFirst()
@@ -285,9 +271,7 @@ private boolean isPermitted(CommandUsage usage, Callable callable) {
285271
}
286272

287273
private void validatePermitted(CommandUsage usage, Callable callable) {
288-
if (!isPermitted(usage, callable))
289-
throw PermissionChecker.insufficientPermissions("missing permission '" + callable.getAttribute()
290-
.permission() + "'");
274+
if (!isPermitted(usage, callable)) throw PermissionChecker.insufficientPermissions("missing permission '" + callable.getAttribute().permission() + "'");
291275
}
292276

293277
private Group createGroupNode(@Nullable Object target, Class<?> source) {
@@ -339,10 +323,7 @@ private void registerGroups(@Nullable Object target, Collection<? super Group> n
339323
}
340324

341325
private org.comroid.commands.node.Parameter createParameterNode(int index, Parameter source) {
342-
var attribute = Annotations.findAnnotations(Command.Arg.class, source)
343-
.findFirst()
344-
.orElseThrow()
345-
.getAnnotation();
326+
var attribute = Annotations.findAnnotations(Command.Arg.class, source).findFirst().orElseThrow().getAnnotation();
346327
// construct parameter node
347328
var builder = org.comroid.commands.node.Parameter.builder()
348329
.name(Optional.ofNullable(attribute.value())
@@ -356,8 +337,7 @@ private org.comroid.commands.node.Parameter createParameterNode(int index, Param
356337
.index(index);
357338

358339
// init special types
359-
if (source.getType().isEnum()) builder.autoFillProvider(new EnumBasedAutoFillProvider<>(Polyfill.uncheckedCast(
360-
source.getType())));
340+
if (source.getType().isEnum()) builder.autoFillProvider(new EnumBasedAutoFillProvider<>(Polyfill.uncheckedCast(source.getType())));
361341
else if (attribute.autoFill().length > 0) builder.autoFillProvider(new ArrayBasedAutoFillProvider(attribute.autoFill()));
362342

363343
// init custom autofill providers

0 commit comments

Comments
 (0)