www.pudn.com > phonebk.rar > Model.java
/*
* Model.java
*
* Created on 2006年3月17日, 上午9:33
*
* To change this template, choose Tools | Options and locate the template under
* the Source Creation and Management node. Right-click the template and choose
* Open. You can then make changes to the template in the Source Editor.
*/
package com.j2medev.sample.phonebook;
import java.util.*;
import javax.microedition.rms.*;
import java.io.*;
/**
*
* @author Admin
*/
public class Model {
private RecordStore rs = null;
private RecordStore rs_index = null;
private RecordStore accout = null;
// private Vector entries = new Vector();
//添加联系人
public Model(){
try{
rs = RecordStore.openRecordStore("data", true);
rs_index = RecordStore.openRecordStore("dataindex", true);
accout = RecordStore.openRecordStore("accout",true);
}catch(RecordStoreException e){
e.printStackTrace();
}
}
private static class indexFilter implements RecordFilter{
private String key;
private int flag;
public indexFilter(String key,int flag){
this.key = key;
this.flag = flag;
}
public boolean matches(byte[] data){
if(key != null){
try{
return Index.matches(data,key,flag);
}catch(IOException e){
e.printStackTrace();
return false;
}
}else
return true;
}
}
public void addIndex(Index index) throws IOException{
try{
byte[] data = index.serialize();
if(rs_index.getNumRecords()>=0){
RecordEnumeration record = rs_index.enumerateRecords(new indexFilter(index.getKey(),0),null,false);
if(record.hasNextElement()){
rs_index.setRecord(record.nextRecordId(), data, 0, data.length);
}else{
//System.out.println("执行到这儿了");
rs_index.addRecord(data, 0, data.length);
}
}
}catch(RecordStoreException e){
e.printStackTrace();
}
}
public void addEntry(Entry entry){
try{
byte[] data = entry.serialize();
// System.out.println("执行到这儿了");
int id = rs.addRecord(data, 0, data.length);
Index index = new Index(entry.getName(), id);
addIndex(index);
}catch(IOException ex){
ex.printStackTrace();
}catch(RecordStoreException e){
e.printStackTrace();
}
//entries.addElement(entry);
}
//得到联系人信息
public Entry getEntry(String name){
try{
RecordEnumeration rei = rs_index.enumerateRecords(new indexFilter(name, 0), null, false);
Index index = null;
if(rei.numRecords() == 1){
int id = rei.nextRecordId();
index = Index.deserialize(rs_index.getRecord(id));
//int recordid = index.getRecordID();
byte[] data = rs.getRecord(index.getRecordID());
Entry entry = null;
return entry = Entry.deserialize(data);
}
}catch(RecordStoreException e){
e.printStackTrace();
}catch(IOException ex){
ex.printStackTrace();
return null;
}
return null;
// return (Entry)entries.elementAt(index);
}
/*/更新联系人信息
public void updateEntry(Entry entry){
for(int i =0;idata.length){
data = new byte[length + 10];
}
rs_index.getRecord(id, data, 0);
index[i] = Index.deserialize(data);
i++;
}
return index;
// Entry[] ret= new Entry[entries.size()];
// entries.copyInto(ret);
// return ret;
}
//删除联系人
public void deletRecord(String name) throws RecordStoreException,IOException{
int id = getanddelelindex(name, 0);
rs.deleteRecord(id);
/*
for(int i = 0; i