Java by API/javax.microedition.rms/RecordFilter

Материал из Java эксперт
Перейти к: навигация, поиск

implements RecordFilter

   <source lang="java">

import java.io.ByteArrayInputStream; import java.io.DataInputStream; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.rumand; import javax.microedition.lcdui.rumandListener; 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) {
   }
 }

}

 </source>