6.1. Vamos a implementar un almacén de notas. En el
directorio Notas
tenemos la base de esta aplicación. Vamos
a ampliarla haciendo que estas notas se almacenen de forma persistente utilizando
RMS. Para ello deberemos completar el código de la clase Notas
de la siguiente forma:
a) En el constructor se debe abrir el almacén de registros
de nombre RS_NAME
(creándolo si es necesario) y cargando
todas las notas que tenemos almacenadas en él. Podemos utilizar la deserialización
definida en el objeto Nota
para leerlos. Conforme leamos las notas
las añadiremos al vector notas
.
El índice de cada registro en el almacén nos servirá para
luego poder modificar o eliminar dicha nota. Por esta razón deberemos
guardarnos este valor en alguna parte. Podemos utilizar para ello el campo id
de cada objeto Nota
creado.
b) En eliminaNota
deberemos eliminar las notas del almacén.
Para ello deberemos obtener el id
asociado a la nota y eliminar
dicho registro del almacén.
c) En cambiaNota
modificaremos una nota del almacén
sobrescribiéndola con la nueva nota proporcionada. Para ello obtendremos
el id
correspondiente a la antigua nota, y en ese registro escribiremos
la nueva nota utilizando la serialización del objeto Nota
.
d) En nuevaNota
añadiremos una nueva nota al almacén,
utilizando la serialización del objeto Nota
. Nos guardaremos
el id
del registro en el que hemos guardado la nota por si necesitamos
modificarlo posteriormente.
6.2. Obtener la información de la cantidad de memoria
ocupada y disponible a partir del objeto RecordStore
. Deberemos
hacer que los métodos getMem
y getFree
de la
clase Notas
devuelvan esta información.
6.3. Utilizar un listener para actualizar la lista
de notas en memoria. Añadiendo este listener sobre el almacén
de registros ya no necesitaremos modificar el vector de notas en los métodos
eliminaNota
, cambiaNota
y nuevaNota
,
podemos usar estos métodos sólo para modificar el almacén,
y actualizar el vector en memoria únicamente desde nuestro listener.
De esta forma la lista de notas que se muestra en pantalla se actualizará
siempre que se produzca un cambio en el almacén, aunque no haya sido
producido por el usuario desde nuestro MIDlet.