@Override
public void complete(final CommandCompleterState st)
{
PluginCommandCompleterState state = ((PluginCommandCompleterState) st);
OptionMetadata option = state.getOption();
if ((option != null) && (state.getCommandContext() != null))
{
CommandParserContext commandContext = state.getCommandContext();
Map<OptionMetadata, Object> valueMap = commandContext.getValueMap();
if (valueMap.isEmpty() || valueMap.containsKey(option))
{
if (option.hasCustomCompleter())
{
CommandCompleter completer = BeanManagerUtils.getContextualInstance(manager, option.getCompleterType());
if (completer == null)
{
throw new RuntimeException("Could not instantiate completer of type: "
+ option.getCompleterType().getName()
+ ", completers must be valid CDI beans (public top-level classes.)");
}
completer.complete(state);
}
else if (option.isEnum())
{
@SuppressWarnings("unchecked")
EnumCompleter completer = new EnumCompleter((Class<Enum<?>>) option.getType());
completer.complete(state);
}
else if (isJavaResourceAssignable(option))
{
completeJavaPaths(state, option, valueMap, new ResourceFilter()