DEADSOFTWARE

License project under GNU GPL 3.
[LongFlight.git] / src / code / kalter / longflight / rms / RMS.java
1 package code.kalter.longflight.rms;
3 import code.kalter.longflight.ByteArrayInputStream;
4 import code.kalter.longflight.ByteArrayOutputStream;
5 import javax.microedition.rms.InvalidRecordIDException;
6 import javax.microedition.rms.RecordStore;
7 import javax.microedition.rms.RecordStoreException;
9 /**
10 * Удобная работа с RMS
11 *
12 * @author KalterFive
13 */
14 public class RMS {
16 public final RecordStore recordStore;
18 public RMS(String name, boolean createIfRecordStoreNotFound)
19 throws RecordStoreException {
20 recordStore = RecordStore.openRecordStore(name,
21 createIfRecordStoreNotFound);
22 }
24 public ByteArrayInputStream get(int id) throws RecordStoreException,
25 RecordNotFoundException {
26 if (recordStore.getNumRecords() < id) {
27 throw new RecordNotFoundException();
28 }
29 return new ByteArrayInputStream(recordStore.getRecord(id));
30 }
32 /*
33 * Если запись с номером не будет найдена, то массив байтов запишется в
34 * новую запись, после последней
35 */
36 public void put(int id, ByteArrayOutputStream bytes)
37 throws RecordStoreException {
38 final byte[] array = bytes.toArray();
39 final int length = array.length;
40 try {
41 recordStore.setRecord(id, array, 0, length);
42 } catch (InvalidRecordIDException e) {
43 recordStore.addRecord(array, 0, length);
44 }
45 }
47 public void close() throws RecordStoreException {
48 recordStore.closeRecordStore();
49 }
50 }