package edu.uw.zookeeper.client.cli; import static com.google.common.base.Preconditions.checkNotNull; import com.google.common.base.Joiner; import edu.uw.zookeeper.common.Pair; public class Invocation<T> { public static <T> Invocation<T> create(Pair<CommandDescriptor, T> command, Object[] arguments) { return new Invocation<T>(command, arguments); } private final Pair<CommandDescriptor, T> command; private final Object[] arguments; public Invocation(Pair<CommandDescriptor, T> command, Object[] arguments) { super(); this.command = checkNotNull(command); this.arguments = checkNotNull(arguments); } public Pair<CommandDescriptor, T> getCommand() { return command; } public Object[] getArguments() { return arguments; } @Override public String toString() { return Joiner.on(' ').join(getArguments()); } }