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

es.gob.afirma.standalone.plugins.PluginInfo Maven / Gradle / Ivy

The newest version!
package es.gob.afirma.standalone.plugins;


/**
 * Información de un plugin.
 */
public class PluginInfo extends MinimalPluginInfo {

	private static final int DEFAULT_VERSION_CODE = 1;

	private static final String DEFAULT_VERSION = "1.0"; //$NON-NLS-1$

	private final String name;
	private String description;
	private String version;
	private String[] authors;
	private String[] contacts;

	private String configPanel;

	private String inlineProcessorClassname;

	private Permission[] permissions;

	private GenericMenuOption menu;

	private PluginButton[] buttons;

	private PluginCommand[] commands;

	/**
	 * Crea la información básica de un plugin. El nombre interno del plugin,
	 * es el nombre con el cual se instalara, pero no se mostrará al usuario. El nombre
	 * comú sí se podrá mostrar. El nombre interno debe
	 * permanecer invariable
	 * @param internalName Nombre interno del plugin.
	 * @param name Nombre legible del plugin.
	 */
	public PluginInfo(final String internalName, final String name) {
		super(internalName, DEFAULT_VERSION_CODE);

		if (name == null) {
			throw new NullPointerException("El nombre del plugin no puede ser nulo"); //$NON-NLS-1$
		}

		this.name = name;
		this.description = ""; //$NON-NLS-1$
		this.version = DEFAULT_VERSION;
		this.authors = null;
		this.contacts = null;
		this.configPanel = null;
		this.inlineProcessorClassname = null;
	}

	/**
	 * Recupera el nombre legible del plugin.
	 * @return Nombre del plugin.
	 */
	public String getName() {
		return this.name;
	}

	/**
	 * Recupera la descripción del plugin.
	 * @return Descripción del plugin.
	 */
	public String getDescription() {
		return this.description;
	}

	/**
	 * Estable la descripción del plugin.
	 * @param description Descripción del plugin.
	 */
	public void setDescription(final String description) {
		this.description = description;
	}

	/**
	 * Establece la version de código del plugin.
	 * @param versionCode Versión.
	 */
	public void setVersionCode(final int versionCode) {
		this.versionCode = versionCode;
	}

	/**
	 * Recupera la cadena con la identificación de la versión del plugin.
	 * @return Cadena con la versión.
	 */
	public String getVersion() {
		return this.version;
	}

	/**
	 * Estable el número de versión del plugin.
	 * @param version Versión del plugin.
	 */
	public void setVersion(final String version) {
		if (version != null) {
			this.version = version;
		}
	}

	/**
	 * Recupera el listado de autores del plugin.
	 * @return Listado de autores.
	 */
	public String[] getAuthors() {
		return this.authors != null ? this.authors.clone() : null;
	}

	/**
	 * Establece el listado de autores del plugin.
	 * @param authors Listado de autores.
	 */
	public void setAuthors(final String[] authors) {
		this.authors = authors != null ? authors.clone() : null;
	}

	/**
	 * Recupera el listado de información de contacto del soporte del plugin.
	 * @return Listado contactos.
	 */
	public String[] getContacts() {
		return this.contacts != null ? this.contacts.clone() : null;
	}

	/**
	 * Establece el listado de información de contacto del soporte del plugin.
	 * @param contacts Listado contactos.
	 */
	public void setContacts(final String[] contacts) {
		this.contacts = contacts != null ? contacts.clone() : null;
	}

	/**
	 * Comprueba si el plugin admite configuración por parte del usuario.
	 * @return {@code true} si el plugin admite configuración, {@code false}
	 * en caso contrario.
	 */
	public String getConfigPanel() {
		return this.configPanel;
	}

	/**
	 * Establece el nombre de la clase con el panel de configuración del plugin. Esta clase
	 * deberá extender {@link es.gob.afirma.standalone.plugins.ConfigurationPanel}.
	 * @param configPanel Nombre de la clase del panel de configuración.
	 */
	public void setConfigPanel(final String configPanel) {
		this.configPanel = configPanel;
	}

	/**
	 * Recupera el listado de permisos solicitados por la aplicación.
	 * @return Listado de permisos.
	 */
	public Permission[] getPermissions() {
		return this.permissions != null ? this.permissions.clone() : null;
	}

	/**
	 * Establece el listado de permisos solicitados por la aplicación.
	 * @param permissions Listado de permisos.
	 */
	public void setPermissions(final Permission[] permissions) {
		this.permissions = permissions != null ? permissions.clone() : null;
	}

	/**
	 * Obtiene el nombre de la clase encargada de procesar las peticiones de firma.
	 * @return Nombre de la clase para el procesado de las peticiones de firma o {@code null}
	 * si no se estableció.
	 */
	public String getInlineProcessorClassname() {
		return this.inlineProcessorClassname;
	}

	/**
	 * Establece el nombre de la clase encargada de procesar las peticiones de firma.
	 * @param inlineProcessorClassname Nombre de la clase para el procesado de las peticiones de firma.
	 */
	public void setInlineProcessorClassname(final String inlineProcessorClassname) {
		this.inlineProcessorClassname = inlineProcessorClassname;
	}

	/**
	 * Recupera el menú general del plugin.
	 * @return Menú general.
	 */
	public GenericMenuOption getMenu() {
		return this.menu;
	}

	/**
	 * Establece el menú general del plugin.
	 * @param menu Menú general.
	 */
	public void setMenu(final GenericMenuOption menu) {
		this.menu = menu;
	}

	/**
	 * Recupera los botones para el uso de las acciones del plugin.
	 * @return Botones para el acceso a las funciones del plugin.
	 */
	public PluginButton[] getButtons() {
		return this.buttons != null ? this.buttons.clone() : null;
	}

	/**
	 * Establece los botones para el uso de las acciones del plugin.
	 * @param buttons Botones para el acceso a las funciones del plugin.
	 */
	public void setButtons(final PluginButton[] buttons) {
		this.buttons = buttons != null ? buttons.clone() : null;
	}

	/**
	 * Recupera los comandos declarados por el plugin.
	 * @return Comandos declarados por el plugin.
	 */
	public PluginCommand[] getCommands() {
		return this.commands != null ? this.commands.clone() : null;
	}

	/**
	 * Establece los comandos declarados por el plugin.
	 * @param commands Comandos declarados por el plugin.
	 */
	public void setCommands(final PluginCommand[] commands) {
		this.commands = commands != null ? commands.clone() : null;
	}

	@Override
	public String toString() {
		return this.name;
	}

	@Override
	public boolean equals(final Object obj) {
		if (obj instanceof PluginInfo) {
			return this.internalName.equals(((PluginInfo) obj).getInternalName());
		}
		return super.equals(obj);
	}

	@Override
	public int hashCode() {
		return super.hashCode();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy