9.1. Vamos a implementar un almacén de notas. En el
directorio Notas tenemos la base de esta aplicación. Cada
nota será un objeto de la clase Mensaje, que tendrá
un asunto y un texto. Además incorpora métodos de serialización
y deserialización.
Vamos a almacenar estos mensajes de forma persistente utilizando RMS. Para
ello vamos a utilizar el patrón de diseño adaptador, completando
el código de la clase AdaptadorRMS de la siguiente forma:
a) En el constructor se debe abrir el almacén de registros
de nombre RS_DATOS (creándolo si es necesario). En el método
cerrar cerraremos el almacén de registros abierto.
b) En listaMensajes utilizaremos un objeto RecordEnumeration
para obtener todos los mensajes almacenados. Podemos utilizar la deserialización
definida en el objeto Mensaje para leerlos. Conforme leamos los
mensajes los añadiremos a un vector.
El índice de cada registro en el almacén nos servirá para
luego poder modificar o eliminar dicho mensaje. Por esta razón deberemos
guardarnos este valor en alguna parte. Podemos utilizar para ello el campo rmsID
de cada objeto Mensaje creado.
En getMensaje deberemos introducir el código para obtener
un mensaje dado su identificador de RMS.
c) En addMensaje deberemos introducir el código
necesario para insertar un mensaje en el almacén. Con esto ya podremos
probar la aplicación, añadiendo mensajes y comprobando que se
han añadido correctamente. Probar a cerrar el emulador y volverlo a abrir
para comprobar que los datos se han guardado de forma persistente.
d) En removeMensaje deberemos eliminar un mensaje del
almacén dado su identificador.
e) En updateMensaje modificaremos un mensaje del almacén
sobrescribiéndolo con el nuevo mensaje proporcionado. Para ello obtendremos
el identificador correspondiente a al mensaje antiguo de su campo rmsID.
9.2. Obtener la información de la cantidad de memoria
ocupada y disponible a partir del objeto RecordStore. Deberemos
hacer que los métodos getLibre y getOcupado
de la clase AdaptadorRMS devuelvan esta información.