package org.infinispan.server.cli.handlers; import org.infinispan.server.cli.util.CliCommandBuffer; import org.jboss.as.cli.CommandContext; import org.jboss.as.cli.CommandHandler; import org.jboss.as.cli.CommandHandlerProvider; import org.jboss.as.cli.impl.ArgumentWithValue; /** * The {@link CommandHandler} implementation for Infinispan CLI commands which have * the cache name as an argument. * * @author Pedro Ruivo * @since 6.1 */ public class CacheNameArgumentCommandHandler extends NoArgumentsCliCommandHandler { protected final ArgumentWithValue cacheName; protected CacheNameArgumentCommandHandler(CacheCommand command, CliCommandBuffer buffer) { super(command, buffer); cacheName = new ArgumentWithValue(this, new CacheNameCommandCompleter(), 0, "--cache-name"); } public static class BeginProvider implements CommandHandlerProvider { @Override public CommandHandler createCommandHandler(CommandContext ctx) { return new CacheNameArgumentCommandHandler(CacheCommand.BEGIN, CliCommandBuffer.INSTANCE); } @Override public boolean isTabComplete() { return true; } @Override public String[] getNames() { return new String[] { CacheCommand.BEGIN.getName() }; } } public static class ClearProvider implements CommandHandlerProvider { @Override public CommandHandler createCommandHandler(CommandContext ctx) { return new CacheNameArgumentCommandHandler(CacheCommand.CLEARCACHE, CliCommandBuffer.INSTANCE); } @Override public boolean isTabComplete() { return true; } @Override public String[] getNames() { return new String[] { CacheCommand.CLEARCACHE.getName() }; } } public static class CommitProvider implements CommandHandlerProvider { @Override public CommandHandler createCommandHandler(CommandContext ctx) { return new CacheNameArgumentCommandHandler(CacheCommand.COMMIT, CliCommandBuffer.INSTANCE); } @Override public boolean isTabComplete() { return true; } @Override public String[] getNames() { return new String[] { CacheCommand.COMMIT.getName() }; } } public static class InfoProvider implements CommandHandlerProvider { @Override public CommandHandler createCommandHandler(CommandContext ctx) { return new CacheNameArgumentCommandHandler(CacheCommand.INFO, CliCommandBuffer.INSTANCE); } @Override public boolean isTabComplete() { return true; } @Override public String[] getNames() { return new String[] { CacheCommand.INFO.getName() }; } } public static class RollbackProvider implements CommandHandlerProvider { @Override public CommandHandler createCommandHandler(CommandContext ctx) { return new CacheNameArgumentCommandHandler(CacheCommand.ROLLBACK, CliCommandBuffer.INSTANCE); } @Override public boolean isTabComplete() { return true; } @Override public String[] getNames() { return new String[] { CacheCommand.ROLLBACK.getName() }; } } public static class StartProvider implements CommandHandlerProvider { @Override public CommandHandler createCommandHandler(CommandContext ctx) { return new CacheNameArgumentCommandHandler(CacheCommand.START, CliCommandBuffer.INSTANCE); } @Override public boolean isTabComplete() { return true; } @Override public String[] getNames() { return new String[] { CacheCommand.START.getName() }; } } }