J2ME: Test the RMS listener methods

import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.rms.*;

public class RmsListener extends MIDlet
{
  private RecordStore rs = null;
  static final String REC_STORE = “db_8”;

  public RmsListener()
  {
    // Open record store and add listener
    openRecStore();
    rs.addRecordListener(new TestRecordListener());

    // Initiate actions that will wake up the listener    
    writeRecord(“J2ME and MIDP”);
    updateRecord(“MIDP and J2ME”);
    deleteRecord();
    
    closeRecStore();  // Close record store
    deleteRecStore()// Remove the record store
  }

  public void destroyAppboolean unconditional )
  {
  }

  public void startApp()
  {
    // There is no user interface, go ahead and shutdown
    destroyApp(false);
    notifyDestroyed();
  }

  public void pauseApp()
  {
  }

  public void openRecStore()
  {
    try
    {
      // The second parameter indicates that the record store
      // should be created if it does not exist
      rs = RecordStore.openRecordStore(REC_STORE, true);
    }
    catch (Exception e)
    {
      db(e.toString());
    }
  }    
  
  public void closeRecStore()
  {
    try
    {
      rs.closeRecordStore();
    }
    catch (Exception e)
    {
      db(e.toString());
    }
  }

  public void deleteRecStore()
  {
    if (RecordStore.listRecordStores() != null)
    {
      try
      {
        RecordStore.deleteRecordStore(REC_STORE);
      }
      catch (Exception e)
      {
        db(e.toString());
      }
    }      
  }

  public void writeRecord(String str)
  {
    byte[] rec = str.getBytes();

    try
    {
      rs.addRecord(rec, 0, rec.length);
    }
    catch (Exception e)
    {
      db(e.toString());
    }
  }

  public void updateRecord(String str)
  {
    try
    {
      rs.setRecord(1, str.getBytes()0, str.length());
    }
    catch (Exception e)
    {
      db(e.toString());
    }
  }

  public void deleteRecord()
  {
    try
    {
      rs.deleteRecord(1);
    }
    catch (Exception e)
    {
      db(e.toString());
    }
  }

  /*————————————————–
  * Simple message to console for debug/errors
  * When used with Exceptions we should handle the 
  * error in a more appropriate manner.
  *————————————————-*/
  public void db(String str)
  {
    System.err.println(“Msg: ” + str);
  }

}


/*————————————————–
* Listen for updates to the record store
*————————————————-*/
class TestRecordListener implements RecordListener
{
  public void recordAdded(RecordStore recordStore, int recordId
  
    try
    {
      System.out.println(“Record with ID#: ” + recordId + 
                         ” added to RecordStore: ” + recordStore.getName())
    }
    catch (Exception e)
    {
      System.err.println(e);
    
  

  public void recordDeleted(RecordStore recordStore, int recordId
  {
    try
    {
      System.out.println(“Record with ID#: ” + recordId + 
                         ” deleted from RecordStore: ” + recordStore.getName())
    
    catch (Exception e)
    {
      System.err.println(e);
    }
  }

  public void recordChanged(RecordStore recordStore, int recordId
  {
    try
    {
      System.out.println(“Record with ID#: ” + recordId + 
                         ” changed in RecordStore: ” + recordStore.getName())
    
    catch (Exception e)
    {
      System.err.println(e);
    }
  
}


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.