✨ Allow default suggestion providers in @Parser
This commit is contained in:
parent
e5a35afb8a
commit
6cc3a21619
4 changed files with 55 additions and 7 deletions
|
|
@ -58,6 +58,7 @@ import java.lang.reflect.Parameter;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
|
@ -317,7 +318,20 @@ public final class AnnotationParser<C> {
|
|||
));
|
||||
}
|
||||
try {
|
||||
final BiFunction<CommandContext<C>, String, List<String>> suggestionsProvider;
|
||||
if (parser.suggestions().isEmpty()) {
|
||||
suggestionsProvider = (context, input) -> Collections.emptyList();
|
||||
} else {
|
||||
suggestionsProvider = this.manager.getParserRegistry().getSuggestionProvider(parser.suggestions())
|
||||
.orElseThrow(() -> new NullPointerException(
|
||||
String.format(
|
||||
"Cannot find the suggestions provider with name '%s'",
|
||||
parser.suggestions()
|
||||
)
|
||||
));
|
||||
}
|
||||
final MethodArgumentParser<C, ?> methodArgumentParser = new MethodArgumentParser<>(
|
||||
suggestionsProvider,
|
||||
instance,
|
||||
method
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue