数据解释 J2ME API 提供某种接口来解释存储在记录存储中的数据。这个过程包括比较记录来确定它们的相对排序。它还包括根据给定条件的内容过滤。
比较记录 MIDlet 实现 RecordComparator接口,并定义 compare (byte[] rec1, byte[] rec2)方法来比较两个候选记录。这个方法的返回值必须指示这两条记录的顺序。
清单 7. 比较记录并确定相对排序1
2
3
4
5
6
7
8
9
10
11
| Int compare (byte[] b1, byte[] b2)
{
String s1 = new String(b1);
String s2 = new String(b2);
If (s1.compareTo(s2) > 0)
Return RecordComparator.FOLLOWS;
Else if (s1.compareTo(s2) == 0)
Return RecordComparator.EQUIVALENT;
Else
Return RecordComparator.PRECEDES;
}
|
枚举记录RecordEnumeration接口负责枚举记录存储中的记录。它逻辑上维护记录存储中一连串的记录的 recordId。枚举器将以记录比较器确定的顺序迭代所有记录(或者如果提供了一个可选的记录过滤器,那么只是一个子集)。如果既没有指定过滤器又没有指定比较器,枚举将以未定义的顺序遍历记录存储中的所有记录。
清单 8. 枚举记录1
2
3
| RecordEnumeration re = rs.enumerateRecords(null, null, false);
If (re.hasNextElement())
Byte nextRec[] = re.nextRecord();
|
过滤记录 MIDlet 实现 RecordFilter接口,定义检查记录是否满足应用程序定义的标准的过滤器。这个应用程序实现 RecordFilter的 match()方法来选择 RecordEnumeration返回的记录。
清单 9. 过滤记录1
2
3
4
5
6
7
8
| Public boolean matches(byte[] candidate)
{
String s1 = new String(candidate);
If (s1.equals("XX"))
Returns true;
Else
Returns false;
}
|
|