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 which has a key and the codec as * arguments. * * @author Pedro Ruivo * @since 6.0 */ public class KeyWithCodecCommandHandler extends KeyCommandHandler { protected final ArgumentWithValue codec; public KeyWithCodecCommandHandler(CacheCommand cacheCommand, CliCommandBuffer buffer) { super(cacheCommand, buffer); this.codec = new ArgumentWithValue(this, null, -1, "--codec"); } public static class GetProvider implements CommandHandlerProvider { @Override public CommandHandler createCommandHandler(CommandContext ctx) { return new KeyWithCodecCommandHandler(CacheCommand.GET, CliCommandBuffer.INSTANCE); } @Override public boolean isTabComplete() { return true; } @Override public String[] getNames() { return new String[] { CacheCommand.GET.getName() }; } } public static class LocateProvider implements CommandHandlerProvider { @Override public CommandHandler createCommandHandler(CommandContext ctx) { return new KeyWithCodecCommandHandler(CacheCommand.LOCATE, CliCommandBuffer.INSTANCE); } @Override public boolean isTabComplete() { return true; } @Override public String[] getNames() { return new String[] { CacheCommand.LOCATE.getName() }; } } public static class RemoveProvider implements CommandHandlerProvider { @Override public CommandHandler createCommandHandler(CommandContext ctx) { return new KeyWithCodecCommandHandler(CacheCommand.REMOVE, CliCommandBuffer.INSTANCE); } @Override public boolean isTabComplete() { return true; } @Override public String[] getNames() { return new String[] { CacheCommand.REMOVE.getName() }; } } }