Command cmd = cls.getAnnotation(Command.class); if (cmd != null) { result.updateCommandAttributes(cmd, factory); initSubcommands(cmd, result, factory); hasCommandAnnotation = true; commandClassName = method.toString(); Command cmd = method.getAnnotation(Command.class); result.updateCommandAttributes(cmd, factory); result.setAddMethodSubcommands(false); // method commands don't have method subcommands initSubcommands(cmd, result, factory);
private void updateCommandAttributes(CommandSpec result, Command cmd) { // null factory to prevent // javax.lang.model.type.MirroredTypeException: Attempt to access Class object for TypeMirror picocli.CommandLine.NoVersionProvider result.updateCommandAttributes(cmd, null); try { cmd.versionProvider(); } catch (MirroredTypeException ex) { VersionProviderMetaData provider = new VersionProviderMetaData(ex.getTypeMirror()); if (!provider.isDefault()) { result.versionProvider(provider); } } try { cmd.defaultValueProvider(); } catch (MirroredTypeException ex) { DefaultValueProviderMetaData provider = new DefaultValueProviderMetaData(ex.getTypeMirror()); if (!provider.isDefault()) { result.defaultValueProvider(provider); } } }