Mega Code Archive

 
Categories / Java by API / Javax Microedition Rms
 

Implements RecordFilter

import java.io.ByteArrayInputStream; import java.io.DataInputStream; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.midlet.MIDlet; import javax.microedition.rms.RecordEnumeration; import javax.microedition.rms.RecordFilter; import javax.microedition.rms.RecordStore; public class J2MESearchExample extends MIDlet implements CommandListener {   private Display display;   private Alert alert;   private Form form = new Form("Mixed RecordEnumeration", null);   private Command exit = new Command("Exit", Command.SCREEN, 1);   private Command start = new Command("Start", Command.SCREEN, 1);   private RecordStore recordstore = null;   private RecordEnumeration recordEnumeration = null;   private Filter filter = null;   public J2MESearchExample() {     display = Display.getDisplay(this);     form.addCommand(exit);     form.addCommand(start);     form.setCommandListener(this);   }   public void startApp() {     display.setCurrent(form);   }   public void pauseApp() {   }   public void destroyApp(boolean unconditional) {   }   public void commandAction(Command command, Displayable displayable) {     if (command == exit) {       destroyApp(true);       notifyDestroyed();     } else if (command == start) {       try {         recordstore = RecordStore.openRecordStore("myRecordStore", true);         String outputData[] = { "M", "B", "A" };         for (int x = 0; x < 3; x++) {           byte[] byteOutputData = outputData[x].getBytes();           recordstore.addRecord(byteOutputData, 0, byteOutputData.length);         }         filter = new Filter("Bob");         recordEnumeration = recordstore.enumerateRecords(filter, null, false);         if (recordEnumeration.numRecords() > 0) {           String string = new String(recordEnumeration.nextRecord());           alert = new Alert("Reading", string, null, AlertType.WARNING);           alert.setTimeout(Alert.FOREVER);           display.setCurrent(alert);         }         recordstore.closeRecordStore();         if (RecordStore.listRecordStores() != null) {           RecordStore.deleteRecordStore("myRecordStore");           recordEnumeration.destroy();           filter.filterClose();         }       } catch (Exception error) {         alert = new Alert("Error Removing", error.toString(), null, AlertType.WARNING);         alert.setTimeout(Alert.FOREVER);         display.setCurrent(alert);       }     }   } } class Filter implements RecordFilter {   private String search = null;   private ByteArrayInputStream inputstream = null;   private DataInputStream datainputstream = null;   public Filter(String search) {     this.search = search.toLowerCase();   }   public boolean matches(byte[] suspect) {     String string = new String(suspect).toLowerCase();     if (string != null && string.indexOf(search) != -1)       return true;     else       return false;   }   public void filterClose() {     try {       if (inputstream != null) {         inputstream.close();       }       if (datainputstream != null) {         datainputstream.close();       }     } catch (Exception error) {     }   } }