Saltar al contenido

Object and String Tables

Abrir en ChatGPT

La ObjectTable y la StringTable proporcionan acceso estático a datos compartidos en un entorno webforJ. Ambas son accesibles desde cualquier parte de tu aplicación y sirven para diferentes propósitos:

  • ObjectTable: Para almacenar y recuperar objetos Java a través de tu aplicación.
  • StringTable: Para trabajar con pares de clave-valor de cadenas persistentes, a menudo utilizados para datos de configuración o de estilo de entorno.

Estas tablas están disponibles a nivel de entorno y no requieren gestión de instancias.

ObjectTable

ObjectTable es un mapa de clave-valor accesible globalmente para almacenar cualquier objeto Java. Proporciona acceso simple a un estado compartido sin necesidad de instanciar o configurar nada. Solo hay una instancia de ObjectTable y se borra cuando la aplicación se actualiza o termina. Es útil para escenarios donde necesitas hacer datos disponibles a través de múltiples componentes o contextos sin mantener una cadena de referencias.

Configuración y recuperación de objetos

ObjectTable.put("userInfo", new User("Alice", "admin"));
User user = (User) ObjectTable.get("userInfo");

Comprobación de presencia

if (ObjectTable.contains("userInfo")) {
// La clave existe
}

Eliminación de entradas

ObjectTable.clear("userInfo");

Tamaño de la tabla

int total = ObjectTable.size();

StringTable

StringTable proporciona acceso estático a variables de cadena globales. Es persistente y está limitado a la aplicación actual. Los valores se pueden modificar programáticamente o inyectar a través de la configuración del entorno. Este mecanismo es particularmente útil para almacenar valores de configuración, flags y ajustes que deben ser accesibles en toda la aplicación pero no necesitan llevar datos complejos.

Obtener y establecer valores de cadena

StringTable.put("COMPANY", "Acme Corp");
String company = StringTable.get("COMPANY");

Valores preconfigurados desde la configuración

Puedes definir claves en tu archivo webforj.conf:

webforj.stringTable = {
COMPANY: 'Acme Corp'
}

Luego accede a ella en el código:

String val = StringTable.get("COMPANY");

Comprobación de presencia

if (StringTable.contains("COMPANY")) {
// La clave está configurada
}

Limpiar una clave

StringTable.clear("COMPANY");