package org.jivesoftware.smackx.commands; /** * A factory for creating local commands. It's useful in cases where * instantiation of a command is more complicated than just using the default * constructor. For example, when arguments must be passed into the constructor * or when using a dependency injection framework. When a LocalCommandFactory * isn't used, you can provide the AdHocCommandManager a Class object instead. * For more details, see * {@link AdHocCommandManager#registerCommand(String, String, LocalCommandFactory)} * . * * @author Matt Tucker */ public interface LocalCommandFactory { /** * Returns an instance of a LocalCommand. * * @return a LocalCommand instance. * @throws InstantiationException * if creating an instance failed. * @throws IllegalAccessException * if creating an instance is not allowed. */ public LocalCommand getInstance() throws InstantiationException, IllegalAccessException; }