es.gob.afirma.standalone.plugins.PluginCommandAction Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of afirma-ui-simpleafirma-plugins Show documentation
Show all versions of afirma-ui-simpleafirma-plugins Show documentation
Base para la construccion de plugins de AutoFirma
The newest version!
package es.gob.afirma.standalone.plugins;
import java.util.Arrays;
/**
* Acción ejecutable desde línea de comandos.
*/
public abstract class PluginCommandAction {
private final String command;
private AfirmaPlugin plugin;
/**
* Construye la acción para un comando concreto.
* @param command Comando ante el que se desencadenará la acción.
*/
public PluginCommandAction(final String command) {
this.command = command;
}
/**
* Recupera el comando que desencadena la acción. Este comando no puede coincidir
* con otro comando ya existente o puede que nunca se ejecute la acción.
* @return Comando.
*/
public String getCommand() {
return this.command;
}
/**
* Establece el plugin al que pertenece la acción.
* @param plugin Plugin al que pertenece la acción.
*/
public final void setPlugin(final AfirmaPlugin plugin) {
this.plugin = plugin;
}
/**
* Recupera el plugin al que pertenece la acción.
* @return Plugin al que pertenece la acción.
*/
public final AfirmaPlugin getPlugin() {
return this.plugin;
}
/**
* Obtiene un texto de ayuda con la sintaxis y detalles del comando.
* @return Texto de ayuda.
*/
public abstract String getHelpText();
/**
* Ejecuta la acción con unos argumentos recibidos por línea de comandos.
* @param args Argumentos para ejecutar la acción.
* @return Texto que se devolverá por línea de comandos tras la ejecución
* o {@code null} si no se devuelve nada.
* @throws IllegalArgumentException Cuando hay un error en el comando de llamada. En este caso,
* el mensajede la excepción describirá el problema.
* @throws PluginControlledException Cuando ha ocurrido un error durante la ejecución de
* la operación. En este caso, el mensaje de la excepción se mostrará al
* usuario.
*/
public final String start(final String[] args)
throws IllegalArgumentException, PluginControlledException {
String[] processedArgs;
if (args == null) {
processedArgs = null;
} else if (args.length > 0 && this.command.equalsIgnoreCase(args[0])) {
processedArgs = Arrays.copyOfRange(args, 1, args.length);
} else {
processedArgs = Arrays.copyOf(args, args.length);
}
return process(processedArgs);
}
/**
* Operación que se deberá ejecutar al iniciarse el comando.
* @param args Argumentos recibidos para la ejecución del comando (omitiendo el propio
* comando).
* @return Texto que se devolverá por línea de comandos tras la ejecución
* o {@code null} si debe imprimir nada.
* @throws IllegalArgumentException Cuando hay un error en el comando de llamada. En este caso,
* el mensajede la excepción describirá el problema.
* @throws PluginControlledException Cuando ha ocurrido un error durante la ejecución de
* la operación. En este caso, el mensaje de la excepción se mostrará al
* usuario.
*/
protected abstract String process(String[] args)
throws IllegalArgumentException, PluginControlledException;
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy