1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 package net.sf.bluecove.util;
26
27 import javax.microedition.rms.RecordStore;
28 import javax.microedition.rms.RecordStoreException;
29
30 import org.bluecove.tester.log.Logger;
31
32
33
34
35
36 public class StorageRMS implements Storage {
37
38 public String retriveData(String name) {
39 RecordStore recordStore = null;
40 try {
41 recordStore = RecordStore.openRecordStore("BlueCove" + name, false);
42 if (recordStore.getNumRecords() > 0) {
43 int recordId = 1;
44 byte[] data = recordStore.getRecord(recordId);
45 return new String(data);
46 } else {
47
48 return null;
49 }
50 } catch (Throwable e) {
51 Logger.error("error accessing RecordStore", e);
52 return null;
53 } finally {
54 closeQuietly(recordStore);
55 }
56 }
57
58 public void storeData(String name, String value) {
59 RecordStore recordStore = null;
60 try {
61 recordStore = RecordStore.openRecordStore("BlueCove" + name, true);
62 byte[] data = value.getBytes();
63 int recordId;
64 if (recordStore.getNumRecords() > 0) {
65 recordId = 1;
66 recordStore.setRecord(recordId, data, 0, data.length);
67 } else {
68 recordId = recordStore.addRecord(data, 0, data.length);
69 }
70 } catch (Throwable e) {
71 Logger.error("error accessing RecordStore", e);
72 } finally {
73 closeQuietly(recordStore);
74 }
75 }
76
77 public static void closeQuietly(RecordStore recordStore) {
78 try {
79 if (recordStore != null) {
80 recordStore.closeRecordStore();
81 }
82 } catch (RecordStoreException ignore) {
83
84 }
85 }
86 }