Java by API/javax.microedition.rms/RecordComparator

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

implements RecordComparator

   <source lang="java">

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.RecordComparator; import javax.microedition.rms.RecordEnumeration; import javax.microedition.rms.RecordStore; public class J2MESortExample 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 Comparator comparator = null;
 public J2MESortExample() {
   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);
       }
       StringBuffer buffer = new StringBuffer();
       Comparator comparator = new Comparator();
       recordEnumeration = recordstore.enumerateRecords(null, comparator, false);
       while (recordEnumeration.hasNextElement()) {
         buffer.append(new String(recordEnumeration.nextRecord()));
         buffer.append("\n");
       }
       alert = new Alert("Reading", buffer.toString(), null, AlertType.WARNING);
       alert.setTimeout(Alert.FOREVER);
       display.setCurrent(alert);
       recordstore.closeRecordStore();
       if (RecordStore.listRecordStores() != null) {
         RecordStore.deleteRecordStore("myRecordStore");
         recordEnumeration.destroy();
       }
     } catch (Exception error) {
       alert = new Alert("Error Removing", error.toString(), null, AlertType.WARNING);
       alert.setTimeout(Alert.FOREVER);
       display.setCurrent(alert);
     }
   }
 }

} class Comparator implements RecordComparator {

 public int compare(byte[] record1, byte[] record2) {
   String string1 = new String(record1), string2 = new String(record2);
   int comparison = string1.rupareTo(string2);
   if (comparison == 0)
     return RecordComparator.EQUIVALENT;
   else if (comparison < 0)
     return RecordComparator.PRECEDES;
   else
     return RecordComparator.FOLLOWS;
 }

}

 </source>