All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinispan.server.cli.handlers.ContainerCommandHandler Maven / Gradle / Ivy

package org.infinispan.server.cli.handlers;

import java.util.Collection;
import java.util.Collections;

import org.infinispan.server.cli.util.InfinispanUtil;
import org.jboss.as.cli.CommandContext;
import org.jboss.as.cli.CommandHandler;
import org.jboss.as.cli.CommandHandlerProvider;
import org.jboss.as.cli.CommandLineException;
import org.jboss.as.cli.handlers.CommandHandlerWithArguments;
import org.jboss.as.cli.impl.ArgumentWithValue;
import org.jboss.as.cli.impl.DefaultCompleter;
import org.jboss.as.cli.operation.OperationFormatException;

/**
 * {@link CommandHandler} implementation with the {@code container} command logic.
 * 

* The {@code container} command changes the container in which the Infinispan CLI command are * executed against. The command is only executed in the client. * * @author Pedro Ruivo * @since 6.1 */ public class ContainerCommandHandler extends CommandHandlerWithArguments { private final ArgumentWithValue containerName; public ContainerCommandHandler() { super(); containerName = new ArgumentWithValue(this, new DefaultCompleter(new DefaultCompleter.CandidatesProvider() { @Override public Collection getAllCandidates(CommandContext ctx) { try { return InfinispanUtil.getContainerNames(ctx); } catch (OperationFormatException e) { return Collections.emptyList(); } } }), 0, "--container-name"); } @Override public boolean isAvailable(CommandContext ctx) { return ctx.getModelControllerClient() != null; } @Override public boolean isBatchMode(CommandContext ctx) { return false; } @Override public void handle(CommandContext ctx) throws CommandLineException { recognizeArguments(ctx); String containerName = this.containerName.getValue(ctx.getParsedCommandLine()); if (containerName == null) { ctx.printColumns(InfinispanUtil.getContainerNames(ctx)); } else { InfinispanUtil.changeToContainer(ctx, containerName); } } public static class Provider implements CommandHandlerProvider { @Override public CommandHandler createCommandHandler(CommandContext ctx) { return new ContainerCommandHandler(); } @Override public boolean isTabComplete() { return true; } @Override public String[] getNames() { return new String[] { CacheCommand.CONTAINER.getName() }; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy