J2MESortExample.java Source code

Java tutorial

Introduction

Here is the source code for J2MESortExample.java

Source

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.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.compareTo(string2);
        if (comparison == 0)
            return RecordComparator.EQUIVALENT;
        else if (comparison < 0)
            return RecordComparator.PRECEDES;
        else
            return RecordComparator.FOLLOWS;
    }
}