A través de los servicios broker.localPersistence.*, se tiene acceso a funciones relacionadas con el almacenamiento de datos en forma local, es decir en el dispositivo.
Los tipos de datos que pueden ser persistidos localmente por estas funciones en mat|r son:
Básicos := Integer | Bool | Double | String | Date
Recursivos := Array <Básicos> | Array <Recursivos> | Map <Básicos> | Map <Recursivos>
METODOS PUBLICOS
void broker.localPersistence.save(String key, Any valorAGuardar)
Guarda un valor en el almacenamiento de datos local en la key especificada como argumento.
| Argumentos |
|
| key |
String: key en donde va a ser guardado el valor. |
| valorAGuardar |
[Básicos, Recursivos]: Valor a guardar en la key especificada. |
| Excepciones |
|
LocalPersistenceInternalException – Has been an exception in local persistence service, in method save for key key. |
Se produjo una excepcion en el servicio de persistencia local. |
UnsupportedTypeInPersistenceService – Error when trying to persist an unsupported type type. |
El tipo de dato que se intenta persistir no es soportado por la funcionalidad. |
Any broker.localPersistence.get(String key)
Recupera un valor desde el almacenamiento de datos local.
| Argumentos |
|
| key |
String: key del valor a ser recuperado. |
| Retorna |
|
| [Básicos, Recursivos] |
Valor correspondiente a la key especificada. |
| Excepciones |
|
LocalPersistenceInternalException – Has been an exception in local persistence service, in method get for key key. |
Se produjo una excepcion en el servicio de persistencia local. |
LocalPersistenceKeyNotFound – Local persistence service has not found a value for key key. |
El servicio de persistencia local no encontró un valor para la key especificada. |
Any broker.localPersistence.get(String key, Any valorPorDefecto)
Recupera un valor desde el almacenamiento de datos local, devolviendo un valor por defecto si no se encuentra un valor para la key especificada.
| Argumentos |
|
| key |
String: key del valor a ser recuperado. |
| valorPorDefecto |
[Básicos, Recursivos]: valor por defecto. |
| Retorna |
|
| [Básicos, Recursivos] |
Valor correspondiente a la key especificada. |
| Excepciones |
|
LocalPersistenceInternalException – Has been an exception in local persistence service, in method get for key key. |
Se produjo una excepcion en el servicio de persistencia local. |
LocalPersistenceKeyNotFound – Local persistence service has not found a value for key key. |
El servicio de persistencia local no encontró un valor para la key especificada. |
UnsupportedTypeInPersistenceService – Error when trying to get an unsupported type type. |
El tipo de dato que se intenta recuperar por defecto no es soportado. |
Bool broker.localPersistence.hasKey(String key)
Retorna true si existe la key espeficada en key.
| Argumentos |
|
| key |
String: key a ser consultada en el almacenamiento local. |
| Retorna |
|
| Bool |
Retorna true si existe la key especificada. |
void broker.localPersistence.remove(String key)
Borra el valor correspondiente a la key especificada desde el almacenamiento de datos local.
| Argumentos |
|
| key |
String: key del valor a ser borrado. |
| Excepciones |
|
LocalPersistenceKeyNotFound – Local persistence service has not found a value for key key. |
El servicio de persistencia local no encontró un valor para la key especificada. |
void broker.localPersistence.removeAll()
Borra por completo el almacenamiento de datos local.
Ejemplo:
Experience Main {
String name label("Main name")
Decision rule1 action("MainContext.agregarTarea") label("Agregar tarea")
Decision rule2 action("MainContext.borrarLista") label("Borrar lista de tareas")
}
Model Tarea {
String nombreTarea
String descripcionTarea
}
RuleContext MainContext {
Rule agregarTarea {
if (broker.localPersistence.hasKey(“listaTareas”)) {
//recupero la lista de tareas
Array<Tarea> miListaDeTareas = broker.localPersistence.get(“listaTareas”)
Tarea nuevaTarea = Tarea()
nuevaTarea.nombreTarea = “nueva tarea”
nuevaTarea.descripcionTarea = “comprar verduras”
//agrego una nueva tarea a la lista recuperada
miListaDeTareas.add(nuevaTarea)
//guardo la lista en el almacenamiento local
broker.localPersistence.save(“listaTareas”, miListaDeTareas)
}
}
Rule borrarLista {
if (broker.localPersistence.hasKey(“listaTareas”)) {
//borro la lista de tareas
broker.localPersistence.remove(“listaTareas”)
}
}
}