AnP

Común

En esta sección se verán todas aquellas estructuras, métodos, funciones, variables, constantes y librerías comunes a todos los lenguajes, aunque sea de una forma parcial pero común a más de un lenguaje o entorno.

Base

El desarrollo de AnP se basa en estructuras que dependen de cada uno de los lenguajes, cogiendo éstos las partes pertinentes a su lado de desarrollo. En éstos nos encontramos elementos comunes a todos o una gran parte de ellos. Como base común del AnP nos encontramos el siguiente flujo de funcionamiento por cada librería que lo compone:

  • typemermaid
  • characters435
  • lines25
flowchart TD

subgraph "Object AnP"
    subgraph Common
        B["Construir"]
        ST["Iniciar"]
        _B{"¿Está construido?"}
        _ST{"¿Está iniciado?"}
    end
    subgraph Full
        U["Actualizar"]
        SP["Detener"]
        R["Reiniciar"]
        R_ST{"¿Está iniciado?"}
    end
end

_B -->|No| B
_B -->|Si| _ST
_ST -->|No| ST
_ST -.->|Sí| SP
R -.-> R_ST
R_ST -.->|Sí| SP -.->|"al reiniciar"| ST
R_ST -.->|No| ST

Aquí podemos ver que toda librería estaría diseñada para que tenga un iniciador, y opcionalmente, un sistema de detención de la misma, lo que nos permitiría incluso el reinicio de la misma. También nos encontramos un elemento de actualizaciones, es decir, en los casos de librerías de estructura completa como sucedería en Python, éstas tienen la capacidad de poder ser actualizadas en sus datos cogidos de servidor, como por ejemplo las configuraciones, donde podríamos actualizar en caliente la configuración.

ObjectClass
ObjectClass
voidglobalpublicObjectClassRequiredAnPanpRequiredNullishObject<String, Any|null>|Array<Object<String, Any|null>>inputs
NameRequiredNullableTypedDefault Value
anpTrueFalseAnP
inputsTrueTrueObject<String, Any|null>|Array<Object<String, Any|null>>
NameRequiredNullableTypedDefault Value

Esta sería la llamada a la clase que crea el objeto que estamos trabajando.

En el caso de lenguajes como JavaScript nos encontraremos una función que la simule.

Los objetos tienen la peculiaridad de que éstos conocen al origen del objeto AnP donde se anidan, de esta forma pueden llamar a los componentes y elementos que lo conforman internamente. El argumento que acompaña al propio objeto AnP no es más que parámetros de configuración o simples parámetros de funcionamiento.

self
ObjectClass.self
ObjectClassobjectprivateObjectClass.self
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Representa a él mismo como objeto, equivalente al this, pero con ambito común a todo el objeto, independientemente del nivel heredado en el que se encuentre. Se usa principalmente para poder simular un this que sea único cara el objeto que se trabaja, independientemente de los elementos que se crean internamente, sino, como pasa con el ámbito de las clases de JavaScript, se pueden perder las referencias y las memorias de lo que se quiere atacar.

Este elemento es básico para trabajar con la filosofía de clases tipo Java sobre un objeto construído a partir de una función pues si sólo se hace uso y referencia de los this, éstos quedarían en uso del nivel donde se trabaje, aquí quedaría totalmente independiente dicho factor.
Este elemento es omitido en lenguajes como PHP, Java, etc. Por el hecho de ya tener el funcionamiento esperado de this.
set_basics
ObjectClass.set_basics
voidobjectpublicObjectClass.set_basics
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

El método público "set_basics" nos permite unificar el sistema que establece los valores necesarios para el funcionamiento de cada librería dependientes de configuraciones y otros puntos que pueden ser variados a lo largo de la vida de ejecución de la aplicación en cuestión, por ejemplo, si hablamos de un objeto que se genera, durante su construcción, éstos parámetros ya tienen que existir, pero aún no fue iniciado la aplicación AnP pues está en la fase de construcción, y tras la fase de iniciación es cuando se establecerán realmente los valores finales. Además, este método permite una ayuda rápida cara unificar lo que serían valores específicos de configuración que cara un simple reinicio o Update del objeto, éste pueda ser relanzado sin afectar al resto del objeto.

constructor
ObjectClass.constructor
voidobjectprivateObjectClass.constructor
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta función privada viene siendo un Singleton el cual es llamado al terminar de ejecutar la función del objeto ObjectClass al que hace referencia. Dicha función tendría la creación de todos los elementos asignados en su interior, por ejemplo, en el caso de la clase maestra AnP, tendríamos dentro del propio constructor la creación de los objetos que gestionan las configuraciones, la I18N, los hilos de proceso, etc.

Este elemento puede existir como constructor cuando el lenguaje así lo especifica cara un objeto, como puede ser el caso de Java, Python, C#, etc. Pero en los casos en los que éstos no se usan o por filosofía de desarrollo, este elemento ha de ser simulado, éste es implementado, como pasa con la filosofía que se sigue en JavaScript con las clases simuladas a partir de una función.
start
ObjectClass.start
BooleanobjectpublicObjectClass.startRequiredNullishFunctioncallback
NameRequiredNullableTypedDefault Value
callbackTrueTrueFunction
NameRequiredNullableTypedDefault Value

El método público "start" nos permite iniciar la librería una vez ésta esté construída.

El inicio de una librería y su construcción son distintos, y se diferencian con motivo de que la construcción es sólo crear los objetos que lo constituyen, mientras que el inicio es conseguir los datos necesarios para su trabajo así como el inicio de las acciones, automatizaciones y gestiones para su buen funcionamiento completo. Mientras una librería no esté iniciada, aunque ésta esté construída como objeto, puede tener comportamientos no esperados.

Este método puede funcionar de forma síncrona y asíncrona dependiendo del caso, por ejemplo, si estamos hablando de iniciar un automatismo, ésta sería síncrona pues no requiere de esperar, sólo iniciar; pero si se requiere de conseguir datos de servidor, por ejemplo, como sucede tanto con la librería Settings o I18N, éstas serían asíncronas, ejecutando el Callback a destiempo, normalmente, del retorno dado. Este es el motivo por el cual se aconseja encaricidamente el uso del Callback para gestionar los inicios de los objetos.

Este método retorna de forma síncrona y con tipado Booleano, si ha sido ejecutado correctamente o no; y con el mismo tipado, pero de forma asíncrona, se enviará como parámetro al Callback.

Es importante mencionar que si un objeto que trabaja esta filosofía ya está iniciado, este método retornará o enviará "false" pues está diseñado para controlar que sólo pueda ser usado en el objeto cuando éste no esté iniciado, permitiendo no sólo hacer inicios únicos controlados sino también detención de objetos y reinicios de los mismos de una forma plenamente controlada. Su condición es la variable privada local started, variable que controla dicho flujo de trabajo.

Application/AnP

Esta librería es la encargada de contener todos aquellos elementos: funciones, variables y métodos comunes a todas las librerías del Framework de AnP.

Es importante mencionar que los métodos que determinan tipado, en casos de lenguajes rígidos como Java, también pueden existir para casos de envío de valores que pueden ser no determinados mediante el tipado genérico object, aunque en este tipo de lenguajes se intentará, dentro de la medida de las posibilidades, el hacer uso de este tipado concreto, quedando parcialmente inútiles dichos métodos.
AnP
AnPglobalpublicAnPObject<String, Any|null>|Array<Object<String, Any|null>>inputs
NameRequiredNullableTypedDefault Value
inputsFalseFalseObject<String, Any|null>|Array<Object<String, Any|null>>
NameRequiredNullableTypedDefault Value

Una aplicación AnP funciona a partir de la creación de un objeto AnP que parte de esta librería.

AnP.SHOW_ERRORS
AnP.SHOW_ERRORS
IntegerstaticpublicAnP.SHOW_ERRORS1 << 0
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Valor numérico entero positivo que representa el primer Bit, es decir, un 1, para poder concatenar con otras opciones Booleanas que por defecto son "false". Sirve para indicar, donde así lo permita, si se muestran los errores por consola o no.

AnP.RAW
AnP.RAW
IntegerstaticpublicAnP.RAW1 << 1
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Valor numérico entero positivo que representa el segundo Bit, es decir, un 2, para poder concatenar con otras opciones Booleanas que por defecto son "false". Sirve para indicar, donde así lo permita, si se hace algo en formato crudo o no.

AnP.is_function
AnP.is_function
BooleanstaticpublicAnP.is_functionRequiredNullishAnyvalue
NameRequiredNullableTypedDefault Value
valueTrueTrueAny
NameRequiredNullableTypedDefault Value

Función pública estática que verifica si un valor dado es una función o no.

AnP.is_object
AnP.is_object
BooleanstaticpublicAnP.is_objectRequiredNullishAnyvalue
NameRequiredNullableTypedDefault Value
valueTrueTrueAny
NameRequiredNullableTypedDefault Value

Función pública estática que verifica si un valor dado es un objeto o no, independientemente del tipado

AnP.is_array
AnP.is_array
BooleanstaticpublicAnP.is_arrayRequiredNullishAnyvalue
NameRequiredNullableTypedDefault Value
valueTrueTrueAny
NameRequiredNullableTypedDefault Value

Función pública estática que verifica si un valor dado es un Array o no.

En lenguajes como Python, éste puede representar valores equivalentes como list o tuple.
AnP.is_dictionary
AnP.is_dictionary
BooleanstaticpublicAnP.is_dictionaryRequiredNullishAnyvalue
NameRequiredNullableTypedDefault Value
valueTrueTrueAny
NameRequiredNullableTypedDefault Value

Función pública estática que verifica si un valor dado es un diccionario o no.

La verificación de diccionario, a diferencia del de Objeto, es que éste no tiene constructor propio, sino que depende de ser un sistema de Clave-Valor.
AnP.is_bool
AnP.is_bool
BooleanstaticpublicAnP.is_boolRequiredNullishAnyvalue
NameRequiredNullableTypedDefault Value
valueTrueTrueAny
NameRequiredNullableTypedDefault Value

Función pública estática que verifica si un valor dado es un valor Booleano o no.

AnP.is_string
AnP.is_string
BooleanstaticpublicAnP.is_stringRequiredNullishAnyvalue
NameRequiredNullableTypedDefault Value
valueTrueTrueAny
NameRequiredNullableTypedDefault Value

Función pública estática que verifica si un valor dado es un String o no.

AnP.is_html_object
AnP.is_html_object
BooleanstaticpublicAnP.is_html_objectRequiredNullishAnyvalue
NameRequiredNullableTypedDefault Value
valueTrueTrueAny
NameRequiredNullableTypedDefault Value

Función pública estática que verifica si un valor dado es un objeto HTML por DOM o equivalente o no.

AnP.is_number
AnP.is_number
BooleanstaticpublicAnP.is_numberRequiredNullishAnyvalue
NameRequiredNullableTypedDefault Value
valueTrueTrueAny
NameRequiredNullableTypedDefault Value

Función pública estática que verifica si un valor dado es un valor numérico o no, independientemente de ser un valor entero o decimal.

AnP.is_date
AnP.is_date
BooleanstaticpublicAnP.is_dateRequiredNullishAnyvalue
NameRequiredNullableTypedDefault Value
valueTrueTrueAny
NameRequiredNullableTypedDefault Value

Función pública estática que verifica si un valor dado es un objeto de tipo fecha o no.

AnP.is_integer
AnP.is_integer
BooleanstaticpublicAnP.is_integerRequiredNullishAnyvalue
NameRequiredNullableTypedDefault Value
valueTrueTrueAny
NameRequiredNullableTypedDefault Value

Función pública estática que verifica si un valor dado es un valor numérico entero o no.

AnP.execute
AnP.execute
Any|null|voidstaticpublicAnP.executeRequiredNullishFunctioncallbackNullish...Anyarguments
NameRequiredNullableTypedDefault Value
callbackTrueTrueFunction
argumentsFalseTrue...Any
NameRequiredNullableTypedDefault Value

Método estático que nos permite gestionar una ejecución de un método o función Callback. Este método sirve para simplificar la llamada de un posible Callback, es decir, la ejecución de Callbacks en cuyos casos éstos son opcionales, haciendo las comprobaciones permitinentes para que dicha ejecución se lleve a cabo o no sin que el usuario desarrollador tenga la necesidad de gestionar dicha comprobación.

El método permite también el envío de argumentos, añadiéndolos a continuación del argumento que indica el Callback.

AnP.get_array
AnP.get_array
Any|nullstaticpublicAnP.get_arrayRequiredString|Array<String>keysRequiredObject<String, Any|null>|Array<Object<String, Any|null>>inputsAny_default
NameRequiredNullableTypedDefault Value
keysTrueFalseString|Array<String>
inputsTrueFalseObject<String, Any|null>|Array<Object<String, Any|null>>
_defaultFalseFalseAny
NameRequiredNullableTypedDefault Value

Método estático que nos permite seleccionar un valor a partir de una o varias claves opciones; y uno o varios diccionarios, donde se retornará el primer elemento encontrado en el orden primero de las claves dadas y luego de los diccionarios dados. En caso de no encontrarse ningún valor éste retornará el valor establecido en _default.

AnP.get_keys
AnP.get_keys
Array<String>staticpublicAnP.get_keysRequiredArray<String>|Stringkeys
NameRequiredNullableTypedDefault Value
keysTrueFalseArray<String>|String
NameRequiredNullableTypedDefault Value

Método estático que nos permite coger un Array de claves. Las claves no son más que valores de tipo String cuyos caracteres son letras del alfabeto inglés, guiones bajos y números. Cualquier valor que no sea la descripción de una clave será omitido, pudiendo llegar a retornar un Array vacío. Si se le envía un String en vez de un Array, éste lo tomará como un Array de un único String y lo trabajará de la misma forma.

AnP.execute_keys
AnP.execute_keys
Array<String>staticpublicAnP.execute_keysRequiredArray<String>|StringkeysRequiredFunctioneach_callbackFunctionend_callback
NameRequiredNullableTypedDefault Value
keysTrueFalseArray<String>|String
each_callbackTrueFalseFunction
end_callbackFalseFalseFunction
NameRequiredNullableTypedDefault Value

Método estático que nos permite realizar una ejecución por cada una de las claves dadas, de forma asíncrona y ordenada y nunca en paralelo. Cuando termine de realizar todas las ejecuciones de cada clave, el método ejecutará el Callback final si éste fue dado.

AnP.get_json_data
AnP.get_json_data
voidstaticpublicAnP.get_json_dataRequiredStringdataRequiredNullishFunctionok_callbackFunctionwrong_callback
NameRequiredNullableTypedDefault Value
dataTrueFalseString
ok_callbackTrueTrueFunction
wrong_callbackFalseFalseFunction
NameRequiredNullableTypedDefault Value

Método estático que gestiona la carga de los datos de un JSON, y en caso de salir todo correcto, éste ejecutará el Callback ok_callback enviándole como argumento dichos datos; en caso contrario, éste ejecutará el Callback wrong_callback sin argumento alguno.

AnP.is_refrence_key
AnP.is_refrence_key
BooleanstaticpublicAnP.is_refrence_keyRequiredStringdataRequiredNullishStringbase"AnP""AnP"
NameRequiredNullableTypedDefault Value
dataTrueFalseString
baseTrueTrueString"AnP"
NameRequiredNullableTypedDefault Value

Método estático que nos permite validar si una clave es una clave reservada para abrir y cerrar bloques dentro de un JSON a partir de la sintaxis de estructura de AnP la cual sería empezar con el nombre del proyecto en cuestión en Pascal Case y en Snake Case el nombre del nivel donde se encuentra y con el final de "_start" para iniciar bloque o "_end" para cerrarlo.

  • typejson
  • characters342
  • lines17
{

    "AnP_common_start" : null, 
    "parameter_1a" : "A", 
    "parameter_1b" : "B", 
    "parameter_1c" : "C", 
    "parameter_1n" : "N", 
    "AnP_common_end" : null, 

    "AnP_base_start" : null, 
    "parameter_2a" : "A", 
    "parameter_2b" : "B", 
    "parameter_2c" : "C", 
    "parameter_2n" : "N", 
    "AnP_base_end" : null

}

Este método es usado para ignorar la adjunción de las marcas de apertura y cierre de bloque lo cual sirve para ayudar a la visualización de los contenidos de un JSON.

AnP.launch
AnP.launch
voidstaticpublicAnP.launchRequiredObjectobjectRequiredString|Array.<String>itemsRequiredNullishFunctioncallbackRequiredNullishString|Array<String>methods"start""start"
NameRequiredNullableTypedDefault Value
objectTrueFalseObject
itemsTrueFalseString|Array.<String>
callbackTrueTrueFunction
methodsTrueTrueString|Array<String>"start"
NameRequiredNullableTypedDefault Value

Método estático que nos permite lanzar una acción, con uno o varios nombres opcionales sobre elementos de un mismo objeto según nombre de los mismos. El argumento object determina el objeto donde se encuentra para lanzar dichas acciones; el argumento items determina el nombre de los objetos hijo del argumento anterior a los cuales hacemos referencia; el argumento callback determina la función a ejecutar tras haber ejecutado los métodos de los objeto hijo; y finalmente, el argumento methods que determina el nombre del método que se quiere hacer referencia. Éste puede ser un Array que contenga más de una opción para compatibilizar entre librerías y/o objetos.

Este método se usa principalmente para iniciar los objetos con sus hijos de forma asíncrona en el método start explicado en el bloque que especifica la base de cualquier librería.

AnP.load_dictionaries
AnP.load_dictionaries
voidobjectpublicAnP.load_dictionariesRequiredArray<String|Object<String, Any|null>|Array<Any|null>>inputsRequiredFunctioneach_callbackRequiredNullishFunctionend_callback
NameRequiredNullableTypedDefault Value
inputsTrueFalseArray<String|Object<String, Any|null>|Array<Any|null>>
each_callbackTrueFalseFunction
end_callbackTrueTrueFunction
NameRequiredNullableTypedDefault Value

Método objeto que nos permite hacer una carga asíncrona de uno o varios diccionarios donde por cada diccionario cargado éste ejecute un método para trabajarlos, y opcionalmente, otro método para cuando acabe todo el proceso y poder llevar un órden asíncrono monoproceso.

Este método es muy usado para carga de valores como la configuración, I18N, etc.

AnP.hash
Es importante destacar que a lo que se le llama Hash en esta premisa de la aplicación no deja de ser un simple identificador a partir de una cadena aleatoria para fines diversos dentro de la aplicación. Un ejemplo de uso puede ser en la referencia FOR-ID en HTML para crear identificadores únicos de referencia para poder interactuar con éstos.
AnP.hash_alphabet
StringobjectpublicAnP.hash_alphabet"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Variable que configura el alfabeto por defecto utilizado para crear cadenas aleatorias.

AnP.hash_length
IntegerobjectpublicAnP.hash_length11
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

variable que determina la longitud del Hash por defecto.

AnP.hash
StringobjectpublicAnP.hashObject<String, Any|null>|Array<Object<String, Any|null>>inputs
NameRequiredNullableTypedDefault Value
inputsFalseFalseObject<String, Any|null>|Array<Object<String, Any|null>>
NameRequiredNullableTypedDefault Value

Método objeto que nos permite hacer una carga asíncrona de uno o varios diccionarios donde por cada diccionario cargado éste ejecute un método para trabajarlos, y opcionalmente, otro método para cuando acabe todo el proceso y poder llevar un órden asíncrono monoproceso.

Este método es muy usado para carga de valores como la configuración, I18N, etc.

AnP.get_dictionaries
AnP.get_dictionaries
Array<Object<String, Any|null>>staticpublicAnP.get_dictionariesRequiredAnyitems
NameRequiredNullableTypedDefault Value
itemsTrueFalseAny
NameRequiredNullableTypedDefault Value

Método estático que nos retorna un Array con todos los diccionarios que se le hallan mandado en el argumento items. Si éste no es un diccionario o un Array de diccionarios, éste retornará un Array vacío. Si algún elemento de un Array dado no es un diccionario, éstos se omitirán en la respuesta.

AnP.string_variables
AnP.string_variables
StringstaticpublicAnP.string_variablesRequiredStringstringNullishObject<String, Any|null>|Array<Object<String, Any|null>>variablesNullishAny_default
NameRequiredNullableTypedDefault Value
stringTrueFalseString
variablesFalseTrueObject<String, Any|null>|Array<Object<String, Any|null>>
_defaultFalseTrueAny
NameRequiredNullableTypedDefault Value

Método estático que nos permite gestionar pseudovariables a partir de claves encapsuladas entre llaves para determinar la clave dentro de objectos y/o diccionariosa que se le proporcionen para ir cubriendo dichos valores dentro del String sin necesidad de cambiarlo manualmente o tener que ir concatenando fragmentos de de Strings o castear a String valores de forma manual.

AnP.get_value
AnP.get_value
Any|null|undefinedstaticpublicAnP.get_valueRequiredStringstringNullishObject<String, Any|null>|Array<Object<String, Any|null>>variablesNullishAny_default
NameRequiredNullableTypedDefault Value
stringTrueFalseString
variablesFalseTrueObject<String, Any|null>|Array<Object<String, Any|null>>
_defaultFalseTrueAny
NameRequiredNullableTypedDefault Value

Método estático que nos permite gestionar pseudovariables a partir de claves encapsuladas entre llaves para determinar la clave dentro de objectos y/o diccionariosa que se le proporcionen para ir cubriendo dichos valores dentro del String sin necesidad de cambiarlo manualmente o tener que ir concatenando fragmentos de de Strings o castear a String valores de forma manual.

AnP.get_texts
AnP.get_texts
Array<String>staticpublicAnP.get_textsRequiredString|Array<String>texts
NameRequiredNullableTypedDefault Value
textsTrueFalseString|Array<String>
NameRequiredNullableTypedDefault Value

Método estático que nos permite recoger un Array de Strings, ya sea por un Array dado o por un simple String dado. En caso de dar un Array y éste contener valores que no son un String, éstos serán omitidos. El objetivo es recoger cualquier texto dado.

AnP.null_or_undefined
AnP.null_or_undefined
BooleanstaticpublicAnP.null_or_undefinedRequiredNullishAnyvalue
NameRequiredNullableTypedDefault Value
valueTrueTrueAny
NameRequiredNullableTypedDefault Value

Método estático que nos permite determinar si un valor dado es nulo o no está definido.

Este método sólo es viable para lenguajes que tienen distintos valores nulificados, como es el caso de JavaScript con el valor undefined. En el resto de lenguajes éste se sutituirá por una comprobación directa sobre null.
AnP.get_dictionary
AnP.get_dictionary
Object<String, Any|null>staticpublicAnP.get_dictionaryRequiredObject<String, Any|null>|Array<Object<String, Any|null>>items
NameRequiredNullableTypedDefault Value
itemsTrueFalseObject<String, Any|null>|Array<Object<String, Any|null>>
NameRequiredNullableTypedDefault Value

Método estático que nos permite unir más de un diccionario en un único diccionario. Si se le envía un único diccionario, éste retornará un clone de éste; por el contrario, se unirán todos los diccionarios dados en el Array, pero si alguno no es un Array, éste los omitirá. Si no se envía ni un Array ni ningún diccionario, éste retornará un diccionario vacío.

AnP.get_trace
AnP.get_trace
Array<Object<String, Integer|String|null>>staticpublicAnP.get_traceRequiredNullishIntegeri00
NameRequiredNullableTypedDefault Value
iTrueTrueInteger0
NameRequiredNullableTypedDefault Value

Método estático que nos permite coger la traza desde el inicio de la ejecución actual hasta el punto donde se le llame, permitiendo especificar el último nodo de recogida de traza mediante el argumento i.

AnP.get_class_keys
AnP.get_class_keys
Array<String>staticpublicAnP.get_class_keysRequiredArray<String>|Stringkeys
NameRequiredNullableTypedDefault Value
keysTrueFalseArray<String>|String
NameRequiredNullableTypedDefault Value

Método estático que nos permite coger en un Array las claves de las clases HTML que se le envíen.

AnP.get_dictionary_from_array
AnP.get_dictionary_from_array
Object<String, Any|null>staticpublicAnP.get_dictionary_from_arrayRequiredArray<String>keysArray<Any|null>array
NameRequiredNullableTypedDefault Value
keysTrueFalseArray<String>
arrayFalseFalseArray<Any|null>
NameRequiredNullableTypedDefault Value

Método estático que nos permite crear un diccionario a partir de un Array de claves y otro de valores.

AnP.extends
AnP.extends
ObjectstaticpublicAnP.extendsRequiredObjectorigin...Objectextra
NameRequiredNullableTypedDefault Value
originTrueFalseObject
extraFalseFalse...Object
NameRequiredNullableTypedDefault Value
AnP.extends
ObjectstaticpublicAnP.extendsRequiredObjectoriginRequiredBooleanoverwrite...Objectextra
NameRequiredNullableTypedDefault Value
originTrueFalseObject
overwriteTrueFalseBoolean
extraFalseFalse...Object
NameRequiredNullableTypedDefault Value

Este método estático nos permite extender un Objeto origin con los objetos declarados en extra. El parámetro overwrite nos determina si las claves ya existentes en origin se sobreescriben con las nuevas claves de los objetos extra. Si overwrite no se define, éste será por defecto false.

El orden de sobreescritura de las claves sobre origin será en base a la prioridad del último valor de clave que se encuentre según el orden de los objeto extra.

Esta función sólo existirá realmente en lenguajes muy flexibles que permiten una edición en caliente de un objeto sin que éste tenga que estar predefinido, como es el caso de JavaScript, en los cuales las clases no permitan extender de otras clases o bien, se simulen las clases por el hecho de no existir en dicho lenguaje. En el resto de casos se usarán las estructuras de clase o equivalentes predeterminadas.
AnP.extends
voidobjectpublicAnP.extendsRequiredObject|Class|FunctionobjectRequiredNullishBooleanoverwritefalsefalse
NameRequiredNullableTypedDefault Value
objectTrueFalseObject|Class|Function
overwriteTrueTrueBooleanfalse
NameRequiredNullableTypedDefault Value

Este método objeto permite extender el propio objeto AnP contra otro objeto dado. Si el valor dado es un objeto o diccionario, éste se extenderá de forma directa; en caso de ser una función que sea de tipo constructor o una clase, éste generará el objeto como si fuese un objeto AnP y lo extenderá. Si el valor del argumento overwrite es true, éste priorizará los valores de las claves del nuevo objeto, sobreescribiéndolas en el objeto AnP si éstas ya existen.

Este método objeto es sólo compatible con lenguajes que diferencian a nivel de ámbito de llamada lo que viene siendo un método estático de uno de objeto pese a tener el mismo nombre, sino, éste no será utilizado y en su defecto se usará el método estático.
AnP.json_encode
AnP.json_encode
String|nullstaticpublicAnP.json_encodeRequiredObject<String, Any|null>|ArraydataRequiredNullishBooleanshow_errorsfalsefalse
NameRequiredNullableTypedDefault Value
dataTrueFalseObject<String, Any|null>|Array
show_errorsTrueTrueBooleanfalse
NameRequiredNullableTypedDefault Value

Método estático que nos permite codificar un objeto serializable en un String con formato JSON. En caso de dar un valor no serializable cara un String JSON, éste gestionará una excepción la cual será mostrada únicamente por consola/terminal si se le especifica como true al argumento show_errors. En caso de error, éste retornará null.

AnP.json_decode
AnP.json_decode
Object<String, Any|null>|Array|nullstaticpublicAnP.json_decodeRequiredStringjsonRequiredNullishBooleanshow_errorsfalsefalse
NameRequiredNullableTypedDefault Value
jsonTrueFalseString
show_errorsTrueTrueBooleanfalse
NameRequiredNullableTypedDefault Value

Método estático que nos permite decodificar un String con formato JSON en un Objeto serializable. En caso de que el String no sea un JSON, éste gestionará una excepción la cual será mostrada únicamente por consola/terminal si se le especifica como true al argumento show_errors. En caso de error, éste retornará null.

AnP.base64_encode
AnP.json_encode
String|nullstaticpublicAnP.json_encodeRequiredStringstringRequiredNullishIntegerinputsAnP.SHOW_ERRORSAnP.SHOW_ERRORS
NameRequiredNullableTypedDefault Value
stringTrueFalseString
inputsTrueTrueIntegerAnP.SHOW_ERRORS
NameRequiredNullableTypedDefault Value

Método estático que nos permite codificar un String en Base64. En caso de no ser un String o éste poseer caracteres no válidos para dicha tarea, éste gestionará una excepción la cual será mostrada únicamente por consola/terminal si se le especifica al inputs el valor AnP.SHOW_ERRORS o 1 << 0. En caso de error, éste retornará null.

Este método tiene una entrada de Booleanos en formato binario el cual se representa con un valor numérico entero cuyos bits representan:

  1. AnP.SHOW_ERRORS (1 << 0): Determina si se muestran errores o no.
  2. AnP.RAW (1 << 1): Determina si se hace una conversión en crudo (true) o se pasa primero a URI String (false).
La codificación por defecto se hará sobre una codificación previa en URI por el hecho de adaptar todos los caracteres a un formato String compatible y global aplicable a otros lenguajes pues este formateo se suele hacer con la intención de poder enviar la información a otras plataformas de una forma legible y accesible.
AnP.base64_decode
AnP.json_decode
String|nullstaticpublicAnP.json_decodeRequiredStringdataRequiredNullishIntegerinputsAnP.SHOW_ERRORSAnP.SHOW_ERRORS
NameRequiredNullableTypedDefault Value
dataTrueFalseString
inputsTrueTrueIntegerAnP.SHOW_ERRORS
NameRequiredNullableTypedDefault Value

Método estático que nos permite decodificar un String con formato Base64 a un String de texto plano. En caso de no ser un String o éste poseer caracteres no válidos para dicha tarea, éste gestionará una excepción la cual será mostrada únicamente por consola/terminal si se le especifica al inputs el valor AnP.SHOW_ERRORS o 1 << 0. En caso de error, éste retornará null.

Este método tiene una entrada de Booleanos en formato binario el cual se representa con un valor numérico entero cuyos bits representan:

  1. AnP.SHOW_ERRORS (1 << 0): Determina si se muestran errores o no.
  2. AnP.RAW (1 << 1): Determina si se hace una conversión en crudo (true) o se pasa primero a URI String (false).
La decodificación por defecto se hará sobre una decodificación posterior de URI por el hecho de adaptar todos los caracteres a un formato String compatible y global aplicable a otros lenguajes pues este formateo se suele hacer con la intención de poder enviar la información a otras plataformas de una forma legible y accesible.
AnP.encode_set
AnP.encode_set
String|nullobjectpublicAnP.encode_setRequiredArray<Any|null>|Object<String, Any|null>set
NameRequiredNullableTypedDefault Value
setTrueFalseArray<Any|null>|Object<String, Any|null>
NameRequiredNullableTypedDefault Value

Método objeto que codifica en el entorno local del AnP un objeto para uso principalmente en comunicaciones entre las distintas partes de la aplicación. Este método se integra como objeto dentro del AnP para que éste pueda tener una función customizada a partir de la creación del objeto a modo de Callback o metodologías preprogramadas a selección de la configuración. Dicho método ha de estar sincronizado en todos los niveles de la aplicación con su contraparte AnP.decode_set.

AnP.decode_set
AnP.decode_set
Array<Any|null>|Object<String, Any|null>|nullobjectpublicAnP.decode_setRequiredStringset
NameRequiredNullableTypedDefault Value
setTrueFalseString
NameRequiredNullableTypedDefault Value

Método objeto que decodifica en el entorno local del AnP un objeto para uso principalmente en comunicaciones entre las distintas partes de la aplicación. Este método se integra como objeto dentro del AnP para que éste pueda tener una función customizada a partir de la creación del objeto a modo de Callback o metodologías preprogramadas a selección de la configuración. Dicho método ha de estar sincronizado en todos los niveles de la aplicación con su contraparte AnP.encode_set.

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.

Application/URI

Esta librería está construida con el fin de poder cargar ficheros y datos, ya sean locales o remotos.

Por los ámbitos que trabaja el propio AnP, algunos lenguajes pueden tener parte de estos parámetros, y otros otra parte diferente. Un buen ejemplo sería el ECMAScript/JavaScript cliente, el cual no tendría una lectura local de ficheros salvo por selección directa del usuario.
URI.default_timeout
URI.default_timeout
IntegerobjectprivateURI.default_timeout2000
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable establece un tiempo límite de carga. Si el tiepo límite se excede se retornará un error indicando que fue un Timeout.

En algunos casos, por no tener un control preciso sobre el hilo de carga, puede haber dos resultados distintos de Timeout:
  • Timeout (TIMEOUT).
  • Timeout forzado (FORCED_TIMEOUT).
URI.default_mode
URI.default_mode
StringobjectprivateURI.default_mode"text"
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable determina el modo por defecto de carga de los los datos. Los modos actualmente existentes son:

  • text: Formatea los resultados de carga en un texto String en formato UTF-8.
  • json: Formatea los resultados de carga en un objeto Array o diccionario compatible con la serialización de JSON.
  • binary: Formatea los resultados de carga en un vector de bytes crudos.
URI.get
URI.get
Array<Any|null, AJAX, Integer>objectpublicURI.getRequiredStringurlNullishFunctioncallbackObject<String, Any|null>|Array<Object<String, Any|null>>inputs
NameRequiredNullableTypedDefault Value
urlTrueFalseString
callbackFalseTrueFunction
inputsFalseFalseObject<String, Any|null>|Array<Object<String, Any|null>>
NameRequiredNullableTypedDefault Value

Método objeto que nos permite cargar contenido de una URL por el método GET del protocolo HTTP. El método es asíncrono por defecto, aunque también tiene una respuesta directa para lenguajes o entornos con sincronicidad y/o espera de respuesta. La respuesta consta de 3 valores:

  • response: Respuesta dada por por la carga de los datos en base a su modo, formato y tipado.
  • ajax: Objeto de gestión de carga de la información. Se le llamó ajax por el hecho de que en JavaScript se suele usar un objeto de tipo ajax con una lectura asíncrona, fuera de la filosofía de la promesa fetch.
  • error: Código de error en formato entero cuyos Bits representan cada uno de los errores de forma Booleana como análisis global de los mismos.

Por otro lado tenemos la respuesta asíncrona que se dará sobre el método Callback dado, la cual contiene los siguientes parámetros:

  • response: Resultado de la respuesta ya formateada en el modo deseado o en el formato por defecto de los datos de la respuesta.
  • status: Estado HTTP de la respuesta (Mirar códigos HTTP de respuesta).
  • state: Estado de proceso de la consulta AJAX.
  • message: Mensaje de error para determinar el estado de la consulta. Éstos pueden ser los siguientes:
    • OK: Todo ha salido correctamente o según lo esperado por defecto.
    • HTTP_ERROR: Hubo un error según estado HTTP de la respuesta.
    • FORCED_TIMEOUT: El tiempo máximo de espera fue excedido y se detuvo de forma forzada fuera del entorno de AJAX.
    • ABORTED: La petición fue abortada. Esto puede darse al usar el método abort de AJAX al poder ser usado desde la respuesta síncrona del mismo.
    • ERROR: Hubo un error al intentar procesar el AJAX.
    • TIMEOUT: Se excedió el tiempo de respuesta y AJAX detuvo su proceso.
  • ok: Valor Booleano que determina si la asincronicidad fue gestionada completamente bien por defecto o no.
  • error: Código de error, ampliado con la posible respuesta.
Es importante destacar que la respuesta asícrona se ayuda de la propia respuesta síncrona, es decir, factores como el código de error lo tendremos por la parte síncrona, aunque es verdad que el método asíncrono dará un error completo con los datos asíncronos.

Los modos de respuesta que se le pueden definir en el inputs pueden ser:

  • raw, binary o bytes: Viene siendo un vector de bytes crudos para su proceso o uso posterior.
  • blob: Viene retornando los datos en un objeto BLOB.
  • json: Si es un String compatible, éste retornará un objeto serializable y compatible con JSON.

Los posibles errores que puede dar en el código de error, según sus bytes, serían los siguientes:

  1. Excepción.
  2. URL no definida.
  3. URL nula.
  4. La URL no es un String.
  5. La URL está vacía.
  6. La URL contiene caracteres no válidos.
  7. El Callback no está definido.
  8. El Callback es nulo.
  9. El callback no es una función.
  10. La comunicación fue abortada.
  11. Hubo un error durante el proceso.
  12. Timeout.
  13. Timeout forzado.
  14. Error HTTP.

Managers/Globals

Esta librería se encarga de gestionar las variables globales internas del proyecto AnP, permitiendo un uso general de éstas, tanto interna como externamente. Un ejemplo de variables globales son las dadas a partir de la URL con respecto a la dirección o direcciones registradas en el gestor de rutas.

GlobalsManager.default_overwrite
GlobalsManager.default_overwrite
BooleanobjectprivateGlobalsManager.default_overwritefalse
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable determina si se permite sobreescribir variables globales ya existentes en la constante globals desde el método add.

GlobalsManager.add
GlobalsManager.add
voidobjectpublicGlobalsManager.addRequiredObject<String, Any|null>|Array<Object<String, Any|null>>inputsNullishBooleanoverwriteFunctioncallback
NameRequiredNullableTypedDefault Value
inputsTrueFalseObject<String, Any|null>|Array<Object<String, Any|null>>
overwriteFalseTrueBoolean
callbackFalseFalseFunction
NameRequiredNullableTypedDefault Value

Este método objeto permite añadir nuevas variables globales. Si se determina como true el parámetro overwrite éste permitirá sobreescribir el valor de una variable global si ésta ya existe, sino será omitida en dicho caso.

Este método puede ser usado asíncronamente aunque éste funcione plenamente síncrono, para seguir la estructura asíncrona por defecto de los métodos add de AnP.
GlobalsManager.get
GlobalsManager.get
Any|nullobjectpublicGlobalsManager.getString|Array<String>keysNullishAny_default
NameRequiredNullableTypedDefault Value
keysFalseFalseString|Array<String>
_defaultFalseTrueAny
NameRequiredNullableTypedDefault Value

Este método objeto permite coger un valor en base a una o varias claves opcionales y en caso de no existir ninguna de ellas, poder retornar el valor dado en el argumento _default. Si no se le da ninguna clave, éste retornará una copia del diccionario que almacena todas las variables globales.

GlobalsManager.set
GlobalsManager.set
voidobjectpublicGlobalsManager.setRequiredStringkeyRequiredNullishAnyvalue
NameRequiredNullableTypedDefault Value
keyTrueFalseString
valueTrueTrueAny
NameRequiredNullableTypedDefault Value

Este método objeto permite establecer, de forma forzada, exista o no dicha clave entre las variables globales, el valor contra dicha clave.

GlobalsManager.remove
GlobalsManager.remove
voidobjectpublicGlobalsManager.removeRequiredStringkey
NameRequiredNullableTypedDefault Value
keyTrueFalseString
NameRequiredNullableTypedDefault Value

Este método objeto permite eliminar una variable global en base a su clave si ésta existe.

GlobalsManager.process
GlobalsManager.process
StringobjectpublicGlobalsManager.processRequiredStringstringNullishObject<String, Any|null>|Array<Object<String, Any|null>>inputsNullishAny_default
NameRequiredNullableTypedDefault Value
stringTrueFalseString
inputsFalseTrueObject<String, Any|null>|Array<Object<String, Any|null>>
_defaultFalseTrueAny
NameRequiredNullableTypedDefault Value

Este método objeto permite procesar las variables de un String en base al método AnP.string_variables pero extendiendo las variables dadas a las variables globales por defecto. En caso no determinarse el arguimento inputs sólo se usarán las variables globales.

Managers/I18N

Esta librería es la encargada de gestionar los textos internacionalizados de la aplicación que derive del AnP.

I18NManager.sentences
I18NManager.sentences
Object<String, String|Array<String>|null>objectprivateI18NManager.sentences{}
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante es la encargada de almacenar todos los idiomas y sus respectivos textos a partir de dos diccionarios anidados de tal forma que el primer nivel determina la clave del idioma y el segundo almacena las claves con cada uno de los textos en dicho idioma.

  • typejson
  • characters582
  • lines20
{
    "english" : {
        "text_a" : "This is the text A.", 
        "text_b" : "This is the text B.", 
        "text_c" : "This is the text C.", 
        "text_n" : "This is the text N."
    }, 
    "espanol" : {
        "text_a" : "Este es el texto A.", 
        "text_b" : "Este es el texto B.", 
        "text_c" : "Este es el texto C.", 
        "text_n" : "Este es el texto N."
    }, 
    "galego" : {
        "text_a" : "Iste é o texto A.", 
        "text_b" : "Iste é o texto B.", 
        "text_c" : "Iste é o texto C.", 
        "text_n" : "Iste é o texto N."
    }
}

Con esta estructura podemos hacer uso de esta constante a partir de la clave que determine el idioma y la clave que determine el texto.

A la hora de crear un JSON con textos para su carga sobre la aplicación AnP, éstos pueden dividir los textos en bloques a partir de claves que empiecen por el nombre de la aplicación o cualquier otra clave la cual los desarrolladores hagan uso, seguido de un guión bajo; y acabar con un guión bajo acompañado de un start si éste se iniciar o bien de un end si éste se cierra o se termina.

  • typejson
  • characters932
  • lines27

{
    "espanol" : {

        "AnP_grupo_a_start" : null, 
        "text_a_1" : "Este es el texto 1 del grupo A.", 
        "text_a_2" : "Este es el texto 2 del grupo A.", 
        "text_a_3" : "Este es el texto 3 del grupo A.", 
        "text_a_n" : "Este es el texto N del grupo A.", 
        "AnP_grupo_a_end" : null, 

        "AnP_grupo_b_start" : null, 
        "text_b_1" : "Este es el texto 1 del grupo B.", 
        "text_b_2" : "Este es el texto 2 del grupo B.", 
        "text_b_3" : "Este es el texto 3 del grupo B.", 
        "text_b_n" : "Este es el texto N del grupo B.", 
        "AnP_grupo_b_end" : null, 

        "AnP_grupo_c_start" : null, 
        "text_c_1" : "Este es el texto 1 del grupo C.", 
        "text_c_2" : "Este es el texto 2 del grupo C.", 
        "text_c_3" : "Este es el texto 3 del grupo C.", 
        "text_c_n" : "Este es el texto N del grupo C.", 
        "AnP_grupo_c_end" : null

    }
}

de esta forma, a la hora de agregar los nuevos textos, los bloques son ignorados para renderizar el diccionario que los almacena. Esta práctica sólo es para permitir una mejor visualización de los textos.

Los textos pueden ser Array de Strings por el hecho de que éstos pueden estar fragmentados en Arrays dentro de un JSON por facilidad de visualización cara el o los desarrolladores. También pueden ser valores nulos cuando éstos no quieren ser especificados o bien, para hacer uso de claves de bloque.
I18NManager.data
I18NManager.data
Object<String, Object<String, String|Array<String>>>objectprivateI18NManager.data{}
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante contiene la información necesaria para poder trabajar los idiomas interactuables desde el propio GUI pues estos parámetros no pueden ser aplicados en sentences puesto que si cambia el idioma, éstos cambiarían en el propio GUI por dicha referencia, por lo que se establece esta nueva constante para dicho fin. Su estructura son dos dicciomarios anidados donde el primer nivel establece el idioma y el segundo los datos pertinentes del mismo.

  • typejson
  • characters1474
  • lines52
{
    "english" : {
        "flag" : [
            "{anp_root}/images/flags/english.svg", 
            "https://cdn.k3y.pw/data/images/flags/english.svg"
        ],
        "language" : "English",
        "country" : "Unated Kingdom",
        "language_code" : "en",
        "country_code" : "UK"
    }, 
    "espanol" : {
        "flag" : [
            "{anp_root}/images/flags/espanol.svg", 
            "https://cdn.k3y.pw/data/images/flags/espanol.svg"
        ],
        "language" : "Español",
        "country" : "España",
        "language_code" : "es",
        "country_code" : "ES"
    }, 
    "galego" : {
        "flag" : [
            "{anp_root}/images/flags/galego.svg", 
            "https://cdn.k3y.pw/data/images/flags/galego.svg"
        ],
        "language" : "Galego",
        "country" : "España",
        "language_code" : "gl",
        "country_code" : "ES"
    }, 
    "nihongo" : {
        "flag" : [
            "{anp_root}/images/flags/nihongo.svg", 
            "https://cdn.k3y.pw/data/images/flags/nihongo.svg"
        ],
        "language" : "日本語",
        "country" : "日本",
        "language_code" : "jp",
        "country_code" : "JP"
    }, 
    "russkiy" : {
        "flag" : [
            "{anp_root}/images/flags/russkiy.svg", 
            "https://cdn.k3y.pw/data/images/flags/russkiy.svg"
        ],
        "language" : "Pусский",
        "country" : "Россия",
        "language_code" : "ru",
        "country_code" : "RU"
    }
}

Los campos que implementan cada idioma son los siguientes:

  • flag: URL (String) o conjunto de URLs Array alternativas donde las primeras tienen prioridad sobre las segundas para garantizar que alguna de las URL cargue correctamente la bandera.
  • language: Nombre del idioma en el idioma que represente.
  • country: Nombre del país del idioma en el idioma que represente.
  • language_code: Determina el código del lenguaje en ISO 3166-1.
  • country_code: Determina el código del país en ISO 3166-1.
I18NManager.selected
I18NManager.selected
String|nullobjectpublicI18NManager.selectednull
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable determina la clave del idioma que está seleccionada actualmente en la aplicación AnP, ya sea seleccionada por el usuario o que ésta venga configurada por defecto.

En caso de ser un valor nulo nos indica que éste no está configurado ni seleccionado lo que cuando se va a coger un texto, éste irá con otros parámetros para determinar el idioma o bien, dependerá del orden en el que se constituyan los idiomas dentro del diccionario sentences.
I18NManager.default_language
I18NManager.default_language
String|nullobjectpublicI18NManager.default_languagenull
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable determina la clave del idioma por defecto configurada por el desarrollador.

En caso de ser un valor nulo nos indica que éste no está configurado ni seleccionado lo que cuando se va a coger un texto, éste irá con otros parámetros para determinar el idioma o bien, dependerá del orden en el que se constituyan los idiomas dentro del diccionario sentences.
I18NManager.default_overwrite
I18NManager.default_overwrite
BooleanobjectpublicI18NManager.default_overwritefalse
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable determina si cuando se añade una nueva clave de texto a un idioma determinado y éste ya existe, si éste es sobreescrito (true) o no (false)

I18NManager.default_overwrite_data
I18NManager.default_overwrite_data
BooleanobjectpublicI18NManager.default_overwrite_datafalse
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable determina si cuando se añade una nueva clave de información de idioma orientado al GUI determinado y éste ya existe, si éste es sobreescrito (true) o no (false)

I18NManager.default_text
I18NManager.default_text
String|Array<String>|nullobjectpublicI18NManager.default_text""
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable determina el texto por defecto para los casos donde se quiera recoger un texto concreto y éste no se encuentre y no se le halla determinado un texto de respuesta por defecto.

I18NManager.add
I18NManager.add
String|nullobjectpublicI18NManager.addRequiredString|Object<String, Object<String, String|Array<String>|null>>|ArrayinputsNullishBooleanoverwriteFunctioncallback
NameRequiredNullableTypedDefault Value
inputsTrueFalseString|Object<String, Object<String, String|Array<String>|null>>|Array
overwriteFalseTrueBoolean
callbackFalseFalseFunction
NameRequiredNullableTypedDefault Value

Método objeto asíncrono que nos permite añadir y sobreescribir idiomas y textos para éstos. La sobreescritura se basa en determinar el argumento overwrite como true.

En lenguajes como Python u otros que pueden determinar cargas externas como síncronas con seguridad, este método podría ser síncrono excepcionalmente a estos casos.
I18NManager.default_text
I18NManager.default_text
String|nullobjectpublicI18NManager.default_textString_default
NameRequiredNullableTypedDefault Value
_defaultFalseFalseString
NameRequiredNullableTypedDefault Value

Método objeto que nos permite recoger un texto por defecto, ya sea que nosotros se lo demos bien, éste retorne el valor de la variable que almacena el propio texto por defecto.

I18NManager.get
I18NManager.get
String|nullobjectpublicI18NManager.getRequiredString|Array<String>keysNullishObject<String, any|null>|Array<Object<String, any|null>>variablesNullishString|Array<String>_defaultString|Array<String>languages
NameRequiredNullableTypedDefault Value
keysTrueFalseString|Array<String>
variablesFalseTrueObject<String, any|null>|Array<Object<String, any|null>>
_defaultFalseTrueString|Array<String>
languagesFalseFalseString|Array<String>
NameRequiredNullableTypedDefault Value

Método objeto que nos permite recoger un texto que estemos buscando, ya sea que éste exista, o le demos un texto por defecto para casos de no existir, o que en caso de no ser ninguna de las anteriores éste retorne el valor de la variable que almacena el texto por defecto. Este método también es capaz de gestionar variables dentro del propio texto devuelto a partir del método AnP:string_variables, encapsulando dentro del propio texto entre llaves, las claves de las variables de las cuales se quieran hacer uso.

En caso de que el texto que se selecciona sea un Array, éste lo unirá con Strings vacíos, es decir, que cada separación del mismo ha de ir con los caracteres correspondientes por defecto, normalmente espacios. De esta forma siempre retornará o un String en caso de ser encontrado un texto; o un vcalor nulo.
El método get tiende a ayudarse de otro método privado que lo acompaña por el hecho de que uno procesa el texto a retornar puesto que hay varias vías por las que puede salir; y el principal se encarga de formatear el texto a un String o a un valor nulo.
I18NManager.update
I18NManager.update
voidobjectpublicI18NManager.update
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Método objeto que nos permite actualizar los textos del GUI. En este caso, pueden existir más de una forma de actualización de los mismos dependiendo del entorno donde se encuentre.

! Este método sólo existe en lenguajes que sean capaces de interactuar con los GUI que vienen a continuación.

Este método saltará automáticamente cada vez que se cambie el idioma de la aplicación si éste posee las condiciones adecuadas para que éste exista y sea tratable en el entorno de aplicación.

HTML

En el entorno HTML de un nqavegador o aplicación basada en WebView, éste buscará dentro del mismo todas las etiquetas que contengan el atributo data-i18n que contiene la clave de texto a la cual hace referencia. Por cada clave encontrada se recogerá el texto en el idioma establecido mediante el método get, y en caso de existir el atributo data-i18n-veriables, ésta se decodificará en un Objeto Clave-Valor donde la clave será el nombre de la variable y el valor, el valor de la propia variable. En caso de existir el atributo data-i18n-without=true, éste no le dará texto internacionalizado a su contenido, únicamente a los atributos que contenga asociados con textos como puede ser alt, title, placeholder*, etc.

Es posible que se pueda considerar un método tosco y poco renderizado para Webs o Aplicaciones Web relativamente grande, sin embargo, hay que contar que cada elemento puede tener su clave y sus condiciones así como sus variables por lo que se decidió establecer este método para realizar dicha tarea.
I18NManager.create
I18NManager.create
voidobjectpublicI18NManager.create
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Este método objeto nos permite crear un selector de idiomas en base a los idiomas implementados en la constante sentences en los entornos que permitan GUI en base a los siguientes que están implementados, retornando el código directo u objeto inicialmente no anidado en el GUI para ser implementado donde el desarrollador desee.

La estructura GUI de este elemento no es más que un selector desplegable donde por defecto sólo muestra el idioma seleccionado pero cuando el puntero o mediante Touch, éste es pulsado, se desplieguen todos los idiomas establecidos en la aplicación para ser seleccionado por el usuario.

! Una vez seleccionado un idioma distinto al que está implementado en ese momento, éste actualizará todos los textos del GUI automáticamente mediante el método update.

Cada idioma estará formateado en base a un formato String con las siguientes variables a usar, las cuales se especificarán en dicho String de formato encapsulándolas entre llaves:

  • frag: Determina el Path o URL de la bandera que represente al país y/o idioma.
  • name: Determina la clave String del idioma.
  • language: Determina el nombre del idioma en el idioma al que hace referencia.
  • country: Determina el nombre del país en el idioma a la que hace referencia.
  • language_code: Determina el código del lenguaje en ISO 3166-1.
  • country_code: Determina el código del país en ISO 3166-1.
Salvo la clave name, que viene siendo un recurso común, la clave del propio idioma, todas las demás claves vienen del diccionario de la constante data.
HTML

En el entorno HTML se creará un element UL que alberba la selección de los idiomas mediante objetos LI, uno por cada idioma, y se determinará el idioma seleccionado mediante el atributo data-selected=true. Su dinamismo se basa plenamente en SASS/CSS.

En la estructura base de una Aplicación Web vía AnP, éste aparecerá en la esquina inferior derecha del GUI, en el Footer de la aplicación.
I18NManager.change
I18NManager.change
IntegerobjectpublicI18NManager.changeRequiredStringlanguage
NameRequiredNullableTypedDefault Value
languageTrueFalseString
NameRequiredNullableTypedDefault Value

Este método objeto nos permite cambiar el idioma de la aplicación actual al idioma que represente la clave dada. Éste analizará posibles errores los cuales se almacenan binariamente en un valor numérico entero cuyos bits representan:

  1. Excepción.
  2. La clave del idioma no está definido.
  3. La clave del idioma es nulo.
  4. La clave del idioma no es un String.
  5. La clave del idioma tiene caracteres no válidos.
  6. La clave del idioma no es conocido en sentences.
  7. La clave del idioma es la misma que la del idioma seleccionado actualmente.

Si no posee ningún error, es decir, que le código de error es 0, éste cambiará el idioma de la aplicación, y en caso de tener GUI, cambiará el idioma en todos los selectores de idioma que pueda haber en el GUI y en los elementos del GUI Internacionalizados.

I18NManager.add_data
I18NManager.add_data
String|nullobjectpublicI18NManager.add_dataRequiredString|Object<String, Object<String, String|Array<String>>>|ArrayinputsNullishBooleanoverwriteFunctioncallback
NameRequiredNullableTypedDefault Value
inputsTrueFalseString|Object<String, Object<String, String|Array<String>>>|Array
overwriteFalseTrueBoolean
callbackFalseFalseFunction
NameRequiredNullableTypedDefault Value

Método objeto asíncrono que nos permite añadir y sobreescribir datos de idioma orientados al GUI sobre la constante data.

Managers/PrintTypes

Esta librería se encarga de gestionar los tipos de mensajes impresos contra el terminal o la consola.

PrintTypesManager.types
PrintTypesManager.types
Array<Array<String>>objectprivatePrintTypesManager.types[ ["unkn", "unknown"], [" ok ", "ok", "yes", "y", "right"], ["warn", "warning"], ["erro", "error", "no", "n", "wrong"], ["exce", "exception"], ["info", "information"], ["test"], ["time"]
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

]

Esta constante objeto privada contiene todos los tipos de impresión sobre terminal o consola registrados, en conjunto con sus aliases. Por defecto nos encontramos los siguientes tipos:

  • unkn (Desconocido): Este tipo es usado por defecto para cualquier tipo desconocido especicado en el método _print.
  • ok: Este tipo es para determinar un mensaje cuyo resultado fue el esperado.
  • warn (Aviso): Este tipo se usa para advertir de algo. No tiene porque ser un error o algo que sea un problema, simplemente es una advertencia para controlar o avisar de algo concreto.
  • error: Este tipo es para definir un error que sea no sólo una advertencia, sino que hay una alta probabilidad de que sea un problema cara la ejecución de una tarea.
  • exception: Este tipo es para definir una excepción controlada dentro del código.
  • info: Este tipo es para informar de algo simplemente.
  • test: Este tipo es para determinar que el mensaje o contenido que se expone es una prueba, normalmente de caracter temporal o que no fue eliminada en su release.
  • time: Este tipo es para determinar que se muestra un tiempo, normalmente de ejecución para tener un control de rendimiento de algo.
A todos estos tipos se les puede añadir más tipos y aliases.

La clave de trabajo de los tipos es el elemento 0 de cada uno de los tipos, y éste aparecerá en mayúsculas. El resto de opciones dentro del mismo Array son aliases del mismo.

Es de vital importancia que el primer elemento, el que define el nombre del tipado sea de 4 caracteres fijos pues será el usado para la consola o terminal y si se quiere mantener un estilo o estructura éste ha de ser de 4 caracteres, independientemente de cuales pues se usará una fuente monoespaciada para estos entornos Core.
PrintTypesManager.add
PrintTypesManager.add
voidobjectpublicPrintTypesManager.addRequiredString|Array<Array<String>|Array<Array<String>>|String>inputsFunctioncallback
NameRequiredNullableTypedDefault Value
inputsTrueFalseString|Array<Array<String>|Array<Array<String>>|String>
callbackFalseFalseFunction
NameRequiredNullableTypedDefault Value

Este método sirve para añadir nuevos tipos de impresión de mensajes en consola o terminal, así como añadir nuevos aliases tanto a los nuevos como a los ya existentes. Su funcionamiento se basa en encontrar estructuras que definan tipos, el cual es una anidación bidimensional de Arrays donde el segundo nivel contenga Strings, que vienen siendo las claves que definen los tipos y los aliases. En caso de existir el primer elemento de un Array, el resto se añadirán como aliases a éste si éstos no en ningún otro tipado.

PrintTypesManager.get
PrintTypesManager.get
voidobjectpublicPrintTypesManager.getRequiredStringkeys
NameRequiredNullableTypedDefault Value
keysTrueFalseString
NameRequiredNullableTypedDefault Value

Este método sirve para coger el nombre real en Upper Case de un tipo de mensaje de impresión sobre consola o terminal a partir de su nombre o alias. Se le puede poner más de una opción para conseguir dicho valor.

Application/Binary

Esta librería es un conjunto de métodos que nos permiten operar a ciertos niveles con valores numéricos sobre binarios, ya sean fragmentados en Bytes como en un valor numérico entero.

Esta librería, pese a tener un constructor, es de las pocas que pueden decirse que son estáticas de uso global y común, es decir, no requiere de la creación de un objeto que contenga sus operaciones sino que simplemente llamando a sus métodos ya sería capaz de aportar las operaciones que ésta contiene.
Binary.get_object
Binary.get_object
ObjectstaticpublicBinary.get_objectRequiredUint8Array|Array<TinyInt>binaryRequiredArray<Array<String, String, Integer>>map
NameRequiredNullableTypedDefault Value
binaryTrueFalseUint8Array|Array<TinyInt>
mapTrueFalseArray<Array<String, String, Integer>>
NameRequiredNullableTypedDefault Value

Este método público estático nos permite crear un objeto anónimo con claves y valores definidos sobre el argumento map que mapea dichos datos secuencialmente ordenados contra los datos binarios establecidos en el argumento binary. El mapeado de los datos consta de un Array cuyos valores son otro Array con los siguientes datos:

  • name: Este valor no es más que un String que representa el nombre o clave del elemento que se quiere extraer.
  • type: Este valor es un String que representa un tipo de dato que se quiere extraer. Dichos datos pueden ser los siguientes:
    • string: Representa un valor de tipo String.
    • integer: Representa un valor de tipo numérico entero.
    • bytes: Representa un valor en Bytes.
    • bool: Representa un valor Booleano.
  • bytes: Número de Bytes que ocupa dicho valor.
Los tipos de valores que se representan con esos nombres representan realmente un método público estático de Binary que se coge a partir de su prefijo get_, por lo que un valor de tipo string sería para llamar al método Binary:get_string.

El campo type del mapeado de los datos a extraer puede ser una función, la cual representará la acción a llevar a cabo para procesar esos datos.

Por otro lado, el campo bytes del mapeado de los datos a extraer puede ser una función que determine como retorno el número de Bytes a coger dentro del valor binario.

Binary.get_string
Binary.get_string
StringstaticpublicBinary.get_stringRequiredUint8Array|Array<TinyInt>binary
NameRequiredNullableTypedDefault Value
binaryTrueFalseUint8Array|Array<TinyInt>
NameRequiredNullableTypedDefault Value

Este método público estático nos permite coger un String a partir del conjunto de Bytes dado por el valor binario.

Binary.get_integer
Binary.get_integer
IntegerstaticpublicBinary.get_integerRequiredUint8Array|Array<TinyInt>binary
NameRequiredNullableTypedDefault Value
binaryTrueFalseUint8Array|Array<TinyInt>
NameRequiredNullableTypedDefault Value

Este método público estático nos permite coger un valor numérico entero a partir del conjunto de Bytes dado por el valor binario.

Este método es peligroso a la hora de usar binarios que excedan del límite seguro de la mantisa del procesador en los lenguajes basados en éstos. Este concepto cambia en lenguajes que procesan de una forma lógica dichos valores como sucede con Python. Además, el rango de seguridad puede variar según lenguaje, pudiendo dar valores totalmente inesperados.
Binary.get_bytes
Binary.get_bytes
Array<TinyInt>staticpublicBinary.get_bytesRequiredUint8Array|Array<TinyInt>binary
NameRequiredNullableTypedDefault Value
binaryTrueFalseUint8Array|Array<TinyInt>
NameRequiredNullableTypedDefault Value

Este método público estático nos permite coger Bytes en un Array de enteros pequeños de 8 bits a partir del conjunto de Bytes dado por el valor binario.

Binary.get_bool
Binary.get_bool
BooleanstaticpublicBinary.get_boolRequiredUint8Array|Array<TinyInt>binary
NameRequiredNullableTypedDefault Value
binaryTrueFalseUint8Array|Array<TinyInt>
NameRequiredNullableTypedDefault Value

Este método público estático nos permite coger el valor Booleano a partir del conjunto de Bytes dado por el valor binario. Independientemente de su longitud, si todos los Bytes que lo representan son 0, éste retornará false, en caso contrario retornará true.

Binary.get_bits
Binary.get_bits
Integer|nullstaticpublicBinary.get_bitsRequiredUint8Array|Array<TinyInt>|Integerbinary
NameRequiredNullableTypedDefault Value
binaryTrueFalseUint8Array|Array<TinyInt>|Integer
NameRequiredNullableTypedDefault Value

Este método público estático nos permite coger el número de Bits que compone el valor binario dado. En caso de no ser un tipado conocido éste retornará null.

Binary.reset
Binary.reset
Uint8ArraystaticpublicBinary.resetRequiredUint8ArraybinaryRequiredIntegerstartIntegerlength11
NameRequiredNullableTypedDefault Value
binaryTrueFalseUint8Array
startTrueFalseInteger
lengthFalseFalseInteger1
NameRequiredNullableTypedDefault Value
Binary.reset
Array<TinyInt>staticpublicBinary.resetRequiredArray<TinyInt>binaryRequiredIntegerstartIntegerlength11
NameRequiredNullableTypedDefault Value
binaryTrueFalseArray<TinyInt>
startTrueFalseInteger
lengthFalseFalseInteger1
NameRequiredNullableTypedDefault Value
Binary.reset
IntegerstaticpublicBinary.resetRequiredIntegerbinaryRequiredIntegerstartIntegerlength11
NameRequiredNullableTypedDefault Value
binaryTrueFalseInteger
startTrueFalseInteger
lengthFalseFalseInteger1
NameRequiredNullableTypedDefault Value

Este método público estático nos permite resetear un rango de Bits de un binario dado por el argumento binary desde la posición dada por el argumento start hasta el número de Bits que se determinan en la longitud mediante el argumento opcional length.

Managers/Events

Esta librería es un recurso pseudoexterno el cual permite crear un objeto de gestión de eventos, pero a requerir de la implementación del objeto AnP original con su primer argumento, se considera que es pseudoexterno pues no pertenece propiamente al objeto AnP pero sí es implementado y fundamental en éste y pertenece, no sólo por filosofía, al propio proyecto AnP.

El sistema se basa en un Array que almacena los Callbacks ordenadamente, cuya posición es su ID. Para evitar un uso excesivo de memoria con este objeto, éste se encarga de ir cubriendo y vaciando el Array de almacenamiento en base a:

  • Al crubrir, busca un espacio vacío donde almacenar el nuevo Callback. Si éste no lo encuentra lo añadirá al final como un nuevo elemento del Array.
  • Al eliminar lo único que hace es cambiar el valor, eliminando la función del Callback en la posición asignada (su ID) y lo cambia por un valor null.

De esta forma se reutilizan los espacios y la asignación de memoria, pese a no ser la más eficiente, es la más óptima en relación recursos de proceso y memoria.

El último análisis, en el último párrafo, se da en las circunstancias en las que fue usada la librería, pero esto a futuro puede cambiar según se vaya planteando, por ejemplo, teniendo un espacio de memoria en un Array que determine la posición en base a un Array de dos claves.
Es muy importante destacar que este objeto no es un objeto normal de AnP, por lo que no tiene funciones ni gestión de inicio y fin, y es con fines de proceso síncrono. Para asincronizarlo tendríamos que hacer uso de recursos externos como Intervalos, hilos o eventos asíncronos y sólo sería gestionable para su método execute.
EventsManager.events
EventsManager.events
Array<Function|null>objectprivateEventsManager.events[]
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante objeto privada se encarga de almacenar los eventos para su futura ejecución o gestión según necesidades del entorno que lo aplique.

EventsManager.execute
EventsManager.execute
voidobjectpublicEventsManager.execute...Any|nullarguments
NameRequiredNullableTypedDefault Value
argumentsFalseFalse...Any|null
NameRequiredNullableTypedDefault Value

Este método objeto público permite ejecutar todos los Callbacks registrados en la variable interna events de una sóla llamada con los argumentos unificados.

Este método no tiene una forma iniciar de detención por lo que una vez se ejecuta se requiere de la espera de que termine la ejecución completa de todos los Callbacks.
Si un Callback da una excepción, éste saltará como no controlado y detendrá el proceso en ese punto específico, donde si es el hilo principal detendrá por completo la aplicación.
EventsManager.add
EventsManager.add
IntegerobjectpublicEventsManager.addRequiredFunctionmethod
NameRequiredNullableTypedDefault Value
methodTrueFalseFunction
NameRequiredNullableTypedDefault Value

Este método objeto público permite añadir un nuevo método Callback al evento y retornará su ID en base a su posición dentro del Array que almacena los Callback del evento.

EventsManager.remove
EventsManager.remove
voidobjectpublicEventsManager.removeRequiredIntegeri
NameRequiredNullableTypedDefault Value
iTrueFalseInteger
NameRequiredNullableTypedDefault Value

Este método objeto público permite eliminar un Callback del evento si éste existe en base a su ID de posición dentro del Array.

Application/HTMLPreload

HTMLPreload
HTMLPreloadglobalpublicHTMLPreloadRequiredAnPanpRequiredString|HTMLElementselectorNullishFunctioncallbackObject<String, Any|null>|Array<Object<String, Any|null>>inputs
NameRequiredNullableTypedDefault Value
anpTrueFalseAnP
selectorTrueFalseString|HTMLElement
callbackFalseTrueFunction
inputsFalseFalseObject<String, Any|null>|Array<Object<String, Any|null>>
NameRequiredNullableTypedDefault Value

Esta librería es un sistema pseudoexterno al objeto AnP resultante del proyecto AnP, usadopara precargar o acceder a objetos HTML ya sea de forma asíncrona como síncrona si éste ya existe. Requiere de enviársele sí o sí el objeto AnP para que éste pueda operar pues depende de los métodos públicos de éste para funcionar, motivo por el cual se establece que es un sistema pseudoexterno al objeto AnP. Para hacerlo funcionar es necesario crearlo como objeto donde se requiera su uso.

Esta librería permite en muchos casos su reutilización mediante un nuevo inicio de la misma pues una vez acaba la precarga, ya sea de una forma existosa o no.
HTMLPreload.OK
HTMLPreload.OK
IntegerstaticpublicHTMLPreload.OK0
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante estática determina el código de una ejecución correcta frente al estado registrado en el objeto.

HTMLPreload.EXCEPTION
HTMLPreload.EXCEPTION
IntegerstaticpublicHTMLPreload.EXCEPTION1 << 0
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante estática determina el código que dicta que hubo una excepción durante la ejecución de la precarga según el estado del objeto.

HTMLPreload.SUCCESS
HTMLPreload.SUCCESS
IntegerstaticpublicHTMLPreload.SUCCESS1 << 6
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante estática determina el código que dicta que la precarga se ejecutó correctamente según el estado del objeto.

HTMLPreload.NO_SELECTOR
HTMLPreload.NO_SELECTOR
IntegerstaticpublicHTMLPreload.NO_SELECTOR1 << 7
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante estática determina el código que dicta que no se especificó ni selector ni objeto HTML según el estado del objeto.

HTMLPreload.BAD_SELECTOR
HTMLPreload.BAD_SELECTOR
IntegerstaticpublicHTMLPreload.BAD_SELECTOR1 << 8
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante estática determina el código que dicta que el selector dado está mal según el estado del objeto.

HTMLPreload.TIMEOUT
HTMLPreload.TIMEOUT
IntegerstaticpublicHTMLPreload.TIMEOUT1 << 9
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante estática determina el código que dicta que el tiempo de precarga se excedió sin éxito según el estado del objeto.

HTMLPreload.ABORTED
HTMLPreload.ABORTED
IntegerstaticpublicHTMLPreload.ABORTED1 << 10
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante estática determina el código que dicta que la precarga fue abortada según el estado del objeto.

HTMLPreload.LOADING
HTMLPreload.LOADING
IntegerstaticpublicHTMLPreload.LOADING1 << 11
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante estática determina el código que dicta que aún está el proceso de la precarga activo según el estado del objeto.

HTMLPreload.STOPPED
HTMLPreload.STOPPED
IntegerstaticpublicHTMLPreload.STOPPED1 << 12
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante estática determina el código que dicta que el proceso de la precarga está detenido según el estado del objeto.

HTMLPreload.NO_CALLBACK
HTMLPreload.NO_CALLBACK
IntegerstaticpublicHTMLPreload.NO_CALLBACK1 << 13
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante estática determina el código que dicta que el objeto no posee Callback según el estado del objeto.

HTMLPreload.ASYNCHRONOUS_SUCCESS
HTMLPreload.ASYNCHRONOUS_SUCCESS
IntegerstaticpublicHTMLPreload.ASYNCHRONOUS_SUCCESS1 << 14
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante estática determina el código que dicta que el proceso de precarga se completo correctamente de forma asíncrona según el estado del objeto.

HTMLPreload.NO_STRING_SELECTOR
HTMLPreload.NO_STRING_SELECTOR
IntegerstaticpublicHTMLPreload.NO_STRING_SELECTOR1 << 15
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta constante estática determina el código que dicta que el selector dado tampoco es un Selector HTML según el estado del objeto.

HTMLPreload.timeout
HTMLPreload.timeout
IntegerobjectprivateHTMLPreload.timeout2000
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable objeto privada determina el tiempo máximo de intento de precarga de un Selector sobre el HTML actual.

HTMLPreload.autostart
HTMLPreload.autostart
BooleanobjectprivateHTMLPreload.autostarttrue
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable objeto privada determina si la precarga empieza automáticamente con la creación del objeto o no.

HTMLPreload.status
HTMLPreload.status
IntegerobjectpublicHTMLPreload.status0
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta variable objeto pública determina el código de estado de como está la precarga. Dichos estados se representan mediante un valor numérico entero cuyos Bits representan, de forma binaria, cada uno de los estados en los que se puede hallar. Dichos estados son los siguientes:

  1. Excepción.
  2. El Callback no está definido.
  3. El Callback es nulo.
  4. El selector no está definido.
  5. El selector es nulo.
  6. Reservado.
  7. La precarga fue realizada con éxito.
  8. No se especificó ni selector ni objeto HTML.
  9. El selector está mal.
  10. Se excedió el tiempo de precarga.
  11. La precarga fue abortada.
  12. La precarga está activa.
  13. La precarga fue detenida.
  14. No hay Callback.
  15. El proceso de precarga correcto asíncronamente.
  16. El selector no es un String.
HTMLPreload.status
HTMLPreload.status
IntegerobjectpublicHTMLPreload.status
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta método objeto público determina el código de estado de como está la precarga. Dichos estados se representan mediante un valor numérico entero cuyos Bits representan, de forma binaria, cada uno de los estados en los que se puede hallar. Dichos estados son los siguientes:

  1. Excepción.
  2. El Callback no está definido.
  3. El Callback es nulo.
  4. El selector no está definido.
  5. El selector es nulo.
  6. Reservado.
  7. La precarga fue realizada con éxito.
  8. No se especificó ni selector ni objeto HTML.
  9. El selector está mal.
  10. Se excedió el tiempo de precarga.
  11. La precarga fue abortada.
  12. La precarga está activa.
  13. La precarga fue detenida.
  14. No hay Callback.
  15. El proceso de precarga correcto asíncronamente.
  16. El selector no es un String.
HTMLPreload.abort
HTMLPreload.abort
BooleanobjectpublicHTMLPreload.abort
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta método objeto público permite abortar el proceso de precarga si éste se encuentra activo. Su respuesta permite ver si ha sido realizado con éxito o no. Para ver el estado es necesario hacer uso del método status.

HTMLPreload.stop
HTMLPreload.stop
BooleanobjectpublicHTMLPreload.stop
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta método objeto público permite detener el proceso de precarga si éste se encuentra activo. Su respuesta permite ver si ha sido realizado con éxito o no. Para ver el estado es necesario hacer uso del método status.

Aunque tenga distinto código de estado, éste funciona como el método abort.
HTMLPreload.retry
HTMLPreload.retry
BooleanobjectpublicHTMLPreload.retry
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

Esta método objeto público permite, independientemente de su estado, el reintento de precarga. Su respuesta permite ver si ha sido realizado con éxito o no. Para ver el estado es necesario hacer uso del método status.

Ya se encarga de iniciar el proceso de precarga una vez detenido todo el proceso actual de forma automática.

Application/Attributes

Esta librería está construida con el propósito de gestionar de una manera más manejable y dinámica los atributos de los elementos y objetos HTML, pero sigue dejando hacer uso de los métodos DOM estándar de JavaScript y mediante String.

Esta librería se basa en instrucciones preprogramadas las cuales quizás no contengan todos los elementos de las reglas de los atributos HTML por lo que pueden salir resultados inesperados con el uso de esta librería fuera de los fines a los que fue orientado. Es de vital importancia para el uso de esta librería seguir la filosofía de desarrollo de AnP y configurar bien esta misma librería.
Attributes.standard
Attributes.standard
Array<String>objectprivateAttributes.standard[
NameRequiredNullableTypedDefault Value
NameRequiredNullableTypedDefault Value

]

Esta constante privada determina la clave de todos los atributos considerados estándar de HTML a uso de AnP y las versiones HTML de trabajo del mismo.

Cualquier nombre que no salga en esta lista se entenderá que no pertenece al estándar HTML y para poder estandarizar dicho nombre se le añadirá, si no lo tiene ya o en su defecto aria-, el prefijo data-. Esta casuística puede causar que un atributo no registrado quedaría desconocido para AnP y cuando se trabaje esta librería dar como resultado que se le añada de forma inesperada el propio data-.