/** * * @return A list of possibly mutually-exclusive argument sets for this command. */ @Nonnull public List<Arguments> possibleArguments() { return Collections.singletonList( allArguments() ); }
@Override public AdminCommand.Provider findProvider( String name ) { AdminCommand.Provider provider = command.get(); return Objects.equals( name, provider.name() ) ? provider : commands.findProvider( name ); }
AdminCommand command = provider.create( homeDir, configDir, outsideWorld ); try
when( commandProvider.name() ).thenReturn( "foobar" ); Arguments arguments = new Arguments().withDatabase(); when( commandProvider.allArguments() ).thenReturn( arguments ); when( commandProvider.possibleArguments() ).thenReturn( Collections.singletonList( arguments ) ); when( commandProvider.description() ).thenReturn( "This is a description of the foobar command." ); when( commandLocator.findProvider( "foobar" ) ).thenReturn( commandProvider );
@Override public void execute( String... args ) throws IncorrectUsage { if ( args.length > 0 ) { try { AdminCommand.Provider commandProvider = this.locator.findProvider( args[0] ); usage.printUsageForCommand( commandProvider, output ); } catch ( NoSuchElementException e ) { StringBuilder validCommands = new StringBuilder(); locator.getAllProviders() .forEach( commandProvider -> validCommands.append( commandProvider.name() ).append( " " ) ); throw new IncorrectUsage( format( "Unknown command: %s. Available commands are: %s\n", args[0], validCommands ) ); } } else { usage.print( output ); } } }
/** * @return The command's name */ @Nonnull public String name() { return Iterables.last( getKeys() ); }
public final void printAllCommandsUnderSection( Consumer<String> output, List<AdminCommand.Provider> providers ) { output.accept( "" ); output.accept( printable() ); providers.sort( Comparator.comparing( AdminCommand.Provider::name ) ); providers.forEach( provider -> provider.printSummary( s -> output.accept( " " + s ) ) ); }
private static AdminCommand.Provider mockCommand( String name, String summary ) { AdminCommand.Provider commandProvider = mock( AdminCommand.Provider.class ); when( commandProvider.name() ).thenReturn( name ); when( commandProvider.summary() ).thenReturn( summary ); when( commandProvider.commandSection() ).thenReturn( AdminCommandSection.general() ); return commandProvider; } }
void printDetailed( Consumer<String> output ) { for ( Arguments arguments : command.possibleArguments() ) { String left = format( "usage: %s %s", scriptName, command.name() ); output.accept( Arguments.rightColumnFormatted( left, arguments.usage(), left.length() + 1 ) ); } output.accept( "" ); Usage.printEnvironmentVariables( output ); output.accept( command.allArguments().description( command.description() ) ); } }
CannedLocator( AdminCommand.Provider... commands ) { this.commands = new HashMap<>(); for ( AdminCommand.Provider provider : commands ) { this.commands.put( provider.name(), provider ); } }
private static AdminCommand.Provider mockCommand( String name, String summary, AdminCommandSection section ) { AdminCommand.Provider commandProvider = mock( AdminCommand.Provider.class ); when( commandProvider.name() ).thenReturn( name ); when( commandProvider.summary() ).thenReturn( summary ); when( commandProvider.allArguments() ).thenReturn( Arguments.NO_ARGS ); when( commandProvider.possibleArguments() ).thenReturn( Collections.singletonList( Arguments.NO_ARGS ) ); when( commandProvider.description() ).thenReturn( "description" ); when( commandProvider.commandSection() ).thenReturn( section ); return commandProvider; } }
private static AdminCommand.Provider mockCommand( String name ) { AdminCommand.Provider commandProvider = mock( AdminCommand.Provider.class ); when( commandProvider.name() ).thenReturn( name ); when( commandProvider.commandSection() ).thenReturn( AdminCommandSection.general() ); return commandProvider; } }