AnP

Managers/Settings

Esta librería es la encargada de gestionar las configuraciones de la aplicación AnP y heredados. Para entender su funcionamiento de selección de parámetros hay que entender primero que hay los siguientes niveles de selección de parámetros, cuyo orden de prioridad es el que se sale a continuación:

  1. inputs: Estos parámetros son dados cuando se llama al método get de esta librería y vienen siendo parámetros dados directamente por el desarrollador en la llamada a dicho método.
  2. customs: Estos parámetros son dados cuando se crea el objeto AnP del que parte la aplicación y son parámetros que los integra el desarrollador para forzar ciertos valores por defecto o customizados.
  3. secrets: Estos parámetros son dados desdce un fichero externo y determina principalmente valores cuya sensibilidad no puede existir dentro del proyecto por lo que se apartan en este fichero, como pueden ser accesos a bases de datos, claves, etc. Éste tiene prioridad sobre los settings que vienen a continuación pues a pesar de tener una filosofía similar, los siguientes son parámetros públicos que personalizan a la aplicación sin sensibilidad de los mismos.
  4. settings: Estos parámetros son dados son cargados desde uno o más ficheros y representan la customización de la aplicación. Éstos tienen dos cargas: la configuración por defecto; y luego, sobreescribiendo, las configuraciones personalizadas.
  5. default_settings: Estos parámetros son dados por defecto a nivel de código para un arranque básico que permita el inicio de los componentes básicos previos al uso de los parámetros settings y secrets. Éstos vienen influenciados por inputs y customs.

Hay que tener en cuenta que estas configuraciones son simplemente diccionadios de clave valor que en base a su clave podemos coger el valor que estamos buscando. En caso de anidaciones, éstos cuentan sólo como un valor del padre de la anidación, de esta forma podemos simular incluso objetos a nivel de JSON para su configuración.

SettingsManager.sentences
SettingsManager.settings
Object<String, Any|null>objectprivateSettingsManager.settings{}
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante es la encargada de almacenar todos los parámetros de configuración que se carguen externamente desde ficheros de configuración JSON.

Los archivos JSON orientados al almacenaje de la configuración y secretos de AnP pueden dividir en bloques dichos parámetros visualmente para facilitar a los desarrolladores el trabajo sobre éstos, aunque dichos bloques serán ignorados a la hora de implementar dichos valores en el propio AnP para renderizar el funcionamiento de dicha librería. La sintaxis a seguir para poder dividir en bloques la configuración y/o los secretos simplemente ha de empezar por el nombre de la aplicación en Pascal Case o usar una clave determinada por los desarrolladores continuado por un guión bajo, y finalizar dicha clave mediante un guión bajo seguido de start si ésta se inicia o end si finaliza el bloque.

  • typejson
  • characters931
  • lines24
{

    "AnP_grupo_a_start" : null, 
    "parametro_a_1" : "Valor del parámetro 1 del grupo A.", 
    "parametro_a_2" : "Valor del parámetro 2 del grupo A.", 
    "parametro_a_3" : "Valor del parámetro 3 del grupo A.", 
    "parametro_a_n" : "Valor del parámetro N del grupo A.", 
    "AnP_grupo_a_end" : null, 

    "AnP_grupo_b_start" : null, 
    "parametro_b_1" : "Valor del parámetro 1 del grupo B.", 
    "parametro_b_2" : "Valor del parámetro 2 del grupo B.", 
    "parametro_b_3" : "Valor del parámetro 3 del grupo B.", 
    "parametro_b_n" : "Valor del parámetro N del grupo B.", 
    "AnP_grupo_b_end" : null, 

    "AnP_grupo_c_start" : null, 
    "parametro_c_1" : "Valor del parámetro 1 del grupo C.", 
    "parametro_c_2" : "Valor del parámetro 2 del grupo C.", 
    "parametro_c_3" : "Valor del parámetro 3 del grupo C.", 
    "parametro_c_n" : "Valor del parámetro N del grupo C.", 
    "AnP_grupo_c_end" : null

}
SettingsManager.secrets
SettingsManager.secrets
Object<String, Any|null>objectprivateSettingsManager.secrets{}
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante almacena toda la configuración secreta o de alta sensibilidad, priorizada frente a settings, con la misma estructura que ésta.

SettingsManager.default_nulls
SettingsManager.default_nulls
BooleanobjectprivateSettingsManager.default_nullsfalse
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable determina si se admiten valores nulos por defecto a la hora de retornar el valor de un parámetro requerido mediante el método get.

SettingsManager.default_value
SettingsManager.default_value
Any|nullobjectprivateSettingsManager.default_valuenull
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable dcetermina el valor por defecto a devolver en caso de no encontrar nada en el método get. También puede ser usado externamente para determinar el valor por defecto de la aplicación.

SettingsManager.default_overwrite
SettingsManager.default_overwrite
BooleanobjectprivateSettingsManager.default_overwritefalse
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable determina si se permite sobreescribir parámetros ya existentes en la constante settings desde el método add.

SettingsManager.default_secrets_overwrite
SettingsManager.default_secrets_overwrite
BooleanobjectprivateSettingsManager.default_secrets_overwritefalse
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable determina si se permite sobreescribir parámetros ya existentes en la constante secrets desde el método add_secrets.

SettingsManager.nulls
SettingsManager.nulls
BooleanobjectpublicSettingsManager.nullsBooleannulls
NameRequiredNullableTypedDefault Value
nullsFalseFalseBoolean
NameRequiredNullableTypedDefault Value

Este método objeto nos permite coger como valor la verificación de si queremos valores nulos o no, o en caso de no ser especificado, coger de la configuración si por defecto aceptamos valores nulos o no.

SettingsManager.default_value
SettingsManager.default_value
Any|nullobjectpublicSettingsManager.default_valueNullishAny_defaultBooleannulls
NameRequiredNullableTypedDefault Value
_defaultFalseTrueAny
nullsFalseFalseBoolean
NameRequiredNullableTypedDefault Value

Este método objeto nos permite coger un valor por defecto que nosotros especifiquemos, y en caso de no cumplir la regla de los nulos o no ser especificado, éste retornará el valor por defecto establecido en la configuración.

SettingsManager.get
SettingsManager.get
Any|nullobjectpublicSettingsManager.getRequiredString|Array<String>keysNullishObject<String, Any|null>|Array<Object<String, Any|null>>inputsNullishAny_defaultBooleannulls
NameRequiredNullableTypedDefault Value
keysTrueFalseString|Array<String>
inputsFalseTrueObject<String, Any|null>|Array<Object<String, Any|null>>
_defaultFalseTrueAny
nullsFalseFalseBoolean
NameRequiredNullableTypedDefault Value

Este método objeto nos permite recoger un valor de la configuración según la clave o claves dadas.

Mirar al principio de la documentación de esta librería el orden en el que se cargan las configuraciones, de esta forma será más predecible y se entenderá mejor el funcionamiento de este método objeto.
SettingsManager.add
SettingsManager.add
Any|nullobjectpublicSettingsManager.addNullishString|Object<String, Any|null>|Array<Object<String, Any|null>|String>inputsBooleanoverwriteFunctioncallback
NameRequiredNullableTypedDefault Value
inputsFalseTrueString|Object<String, Any|null>|Array<Object<String, Any|null>|String>
overwriteFalseFalseBoolean
callbackFalseFalseFunction
NameRequiredNullableTypedDefault Value

Este método objeto nos permite añadir parámetros a la configuración al nivel de la configuración personalizada.

SettingsManager.add_secrets
SettingsManager.add_secrets
Any|nullobjectpublicSettingsManager.add_secretsNullishString|Object<String, Any|null>|Array<Object<String, Any|null>|String>inputsBooleanoverwriteFunctioncallback
NameRequiredNullableTypedDefault Value
inputsFalseTrueString|Object<String, Any|null>|Array<Object<String, Any|null>|String>
overwriteFalseFalseBoolean
callbackFalseFalseFunction
NameRequiredNullableTypedDefault Value

Este método objeto nos permite añadir parámetros a la configuración al nivel de la configuración secreta.