Class ParametroConfiguracion<E,​T>

  • Type Parameters:
    E - El tipo del valor almacenado en memoria por este parámetro.
    T - El tipo de valor almacenado en el fichero de configuración YAML para este parámetro.
    Direct Known Subclasses:
    ParametroConfiguracionNotificado, TextoHora

    public abstract class ParametroConfiguracion<E,​T>
    extends Object
    Representa un parámetro de configuración de un plugin.
    Author:
    AlexTMjugador
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private String id
      La identificación de este parámetro de configuración en el comando para cambiarlo del getPlugin().
      private String permiso
      El nombre del permiso que un emisor de comandos necesitará tener, normalmente, para cambiar el parámetro.
      private org.bukkit.plugin.Plugin plugin
      El plugin al que pertenece este parámetro de configuración.
      private String rutaConfiguracion
      La ruta de este parámetro en el archivo de configuración del plugin.
      private E valor
      El valor que toma el parámetro de configuración.
    • Constructor Summary

      Constructors 
      Constructor Description
      ParametroConfiguracion​(org.bukkit.plugin.Plugin plugin, String rutaConfiguracion, String id, String permiso)
      Crea un nuevo parámetro de configuración con su plugin asociado, la ruta en el fichero de configuración, el nombre del argumento para el comando que permite cambiarlo y el permiso necesario para realizarle modificaciones.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      String getId()
      Obtiene la identificación de este parámetro de configuración en el comando para cambiarlo del plugin.
      String getPermiso()
      Obtiene el permiso que un emisor de comandos necesitará para cambiar el parámetro.
      org.bukkit.plugin.Plugin getPlugin()
      Obtiene el plugin asociado a este parámetro de configuración.
      String getRutaConfiguracion()
      Devuelve la ruta de este parámetro en el archivo de configuración del plugin.
      E getValor()
      Obtiene el valor al que está establecido este parámetro de configuración.
      protected T getValorYaml()
      Obtiene el valor tal y como se debe de guardar en un fichero de configuración YAML.
      void leer()
      Lee el valor guardado en la configuración del plugin para este parámetro, e inicializa el valor asociado a este parámetro de configuración a partir de lo leído desde el fichero de configuración.
      protected E procesarValor​(E nuevoValor)
      Procesa el valor que se le pasa como parámetro, dejándolo listo para ser el valor guardado en las estructuras de datos internas del plugin.
      boolean puedeCambiarlo​(org.bukkit.command.CommandSender snd)
      Comprueba si un emisor de comandos tiene permisos para modificar este parámetro de configuración.
      void recargarConfiguracion()
      Recarga los contenidos del fichero de configuración asociado a este parámetro de configuración desde memoria secundaria.
      boolean setValor​(E nuevoValor)
      Establece el valor de este parámetro de configuración, si es válido.
      protected boolean setValor​(E nuevoValor, boolean guardarADisco)
      Establece el valor de este parámetro de configuración, si es válido.
      abstract boolean setValor​(String nuevoValor)
      Establece el valor de este parámetro de configuración, si es válido, convirtiéndolo antes de String al tipo de dato que se use para almacenar el valor.
      boolean valorValido()
      Obtiene si el valor almacenado para este parámetro de configuración es válido.
      boolean valorValido​(E otroValor)
      Obtiene si el valor especificado de este parámetro de configuración sería válido.
    • Field Detail

      • plugin

        private final org.bukkit.plugin.Plugin plugin
        El plugin al que pertenece este parámetro de configuración.
      • rutaConfiguracion

        private final String rutaConfiguracion
        La ruta de este parámetro en el archivo de configuración del plugin.
      • id

        private final String id
        La identificación de este parámetro de configuración en el comando para cambiarlo del getPlugin().
      • permiso

        private final String permiso
        El nombre del permiso que un emisor de comandos necesitará tener, normalmente, para cambiar el parámetro.
      • valor

        private E valor
        El valor que toma el parámetro de configuración.
    • Constructor Detail

      • ParametroConfiguracion

        public ParametroConfiguracion​(org.bukkit.plugin.Plugin plugin,
                                      String rutaConfiguracion,
                                      String id,
                                      String permiso)
                               throws IllegalArgumentException
        Crea un nuevo parámetro de configuración con su plugin asociado, la ruta en el fichero de configuración, el nombre del argumento para el comando que permite cambiarlo y el permiso necesario para realizarle modificaciones.
        Parameters:
        plugin - El plugin al que pertenece este parámetro de configuración.
        rutaConfiguracion - La ruta de este parámetro en el archivo de configuración del plugin.
        id - La identificación de este parámetro de configuración en el comando para cambiarlo del plugin.
        permiso - El nombre del permiso que un emisor de comandos necesitará tener para cambiar el parámetro.
        Throws:
        IllegalArgumentException - Si alguno de los argumentos rutaConfiguracion, nombreCodigo y permiso es nulo.
    • Method Detail

      • puedeCambiarlo

        public boolean puedeCambiarlo​(org.bukkit.command.CommandSender snd)
        Comprueba si un emisor de comandos tiene permisos para modificar este parámetro de configuración.
        Parameters:
        snd - El emisor de comandos a comprobar.
        Returns:
        Verdadero si el emisor de comandos especificado tiene permisos, falso en caso contrario.
      • valorValido

        public final boolean valorValido()
        Obtiene si el valor almacenado para este parámetro de configuración es válido.
        Returns:
        Verdadero si el susodicho valor es válido, falso en caso contrario.
      • valorValido

        public boolean valorValido​(E otroValor)
        Obtiene si el valor especificado de este parámetro de configuración sería válido.
        Parameters:
        otroValor - El valor a comprobar.
        Returns:
        Verdadero si el susodicho parámetro sería válido, falso en caso contrario.
      • getPlugin

        public final org.bukkit.plugin.Plugin getPlugin()
        Obtiene el plugin asociado a este parámetro de configuración.
        Returns:
        El devandicho plugin.
      • getRutaConfiguracion

        public final String getRutaConfiguracion()
        Devuelve la ruta de este parámetro en el archivo de configuración del plugin.
        Returns:
        La ruta de este parámetro en el archivo de configuración del plugin.
      • getId

        public final String getId()
        Obtiene la identificación de este parámetro de configuración en el comando para cambiarlo del plugin.
        Returns:
        La devandicha identificación.
      • getPermiso

        public final String getPermiso()
        Obtiene el permiso que un emisor de comandos necesitará para cambiar el parámetro.
        Returns:
        El susodicho permiso.
      • getValor

        public final E getValor()
        Obtiene el valor al que está establecido este parámetro de configuración.
        Returns:
        El susodicho valor.
      • getValorYaml

        protected T getValorYaml()
        Obtiene el valor tal y como se debe de guardar en un fichero de configuración YAML.
        Returns:
        El susodicho valor. La implementación predeterminada de este método asume que la clase del objeto a guardar en el fichero de configuración YAML es la misma o una superclase de la clase del valor en memoria.
      • recargarConfiguracion

        public final void recargarConfiguracion()
        Recarga los contenidos del fichero de configuración asociado a este parámetro de configuración desde memoria secundaria. Es útil llamar a este método antes de leer() lo que se espera que sean nuevos valores para los parámetros de configuración.
      • leer

        public void leer()
                  throws IllegalArgumentException
        Lee el valor guardado en la configuración del plugin para este parámetro, e inicializa el valor asociado a este parámetro de configuración a partir de lo leído desde el fichero de configuración. Cabe destacar que este método por si solo no recarga la configuración asociada al plugin en memoria por Paper.
        Throws:
        IllegalArgumentException - Si el valor guardado en la configuración del plugin para este parámetro no es válido.
      • setValor

        protected final boolean setValor​(E nuevoValor,
                                         boolean guardarADisco)
        Establece el valor de este parámetro de configuración, si es válido. Se utiliza valorValido() para determinar la validez del nuevo valor, y procesarValor(E) para preprocesar el valor que tomará el atributo de la clase que lo almacena.
        Parameters:
        nuevoValor - El valor a establecer.
        guardarADisco - Verdadero si se debe de considerar la posibilidad de guardar el nuevo valor a memoria secundaria si ha cambiado, falso en caso contrario.
        Returns:
        Verdadero si el nuevo valor se pudo establecer por ser válido, falso en caso contrario.
      • setValor

        public final boolean setValor​(E nuevoValor)
        Establece el valor de este parámetro de configuración, si es válido. Se utiliza valorValido() para determinar la validez del nuevo valor, y procesarValor(E) para preprocesar el valor que tomará el atributo de la clase que lo almacena. Si se trata de un nuevo valor diferente al anterior, se guardará el nuevo valor en el fichero de configuración del plugin.
        Parameters:
        nuevoValor - El valor a establecer.
        Returns:
        Verdadero si el nuevo valor se pudo establecer por ser válido, falso en caso contrario.
      • procesarValor

        protected E procesarValor​(E nuevoValor)
        Procesa el valor que se le pasa como parámetro, dejándolo listo para ser el valor guardado en las estructuras de datos internas del plugin. Este método solo debe de ser llamado internamente desde su clase, no desde otras (las sobreescrituras de las subclases pueden asumir tal condición). Entonces, cuando es invocado, se ha garantizado que nuevoValor es válido y diferente al actual, y el valor devuelto será asignado como nuevo valor del parámetro de configuración.
        Parameters:
        nuevoValor - El valor a procesar.
        Returns:
        El susodicho valor, procesado.
      • setValor

        public abstract boolean setValor​(String nuevoValor)
        Establece el valor de este parámetro de configuración, si es válido, convirtiéndolo antes de String al tipo de dato que se use para almacenar el valor. Se recomienda que las implementaciones utilicen setValor para establecer el valor tras la conversión que sea necesaria. Este método es usado para modificar el valor del parámetro de configuración a partir de lo especificado por un usuario en un comando.
        Parameters:
        nuevoValor - El valor a establecer, como una cadena de texto que será convertida al tipo de dato usado.
        Returns:
        Verdadero si el nuevo valor se pudo establecer por ser válido, falso en caso contrario.