Test the RMS listener methods : Database Persistence « J2ME « Java





Test the RMS listener methods

Test the RMS listener methods
/*--------------------------------------------------
* RmsListener.java
*
* Test the RMS listener methods
*
* No GUI interface, all output is to the console
*
* Example from the book:     Core J2ME Technology
* Copyright John W. Muchow   http://www.CoreJ2ME.com
* You may use/modify for any non-commercial purpose
*-------------------------------------------------*/
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 destroyApp( boolean 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);
    }
  } 
}


           
       










Related examples in the same category

1.Write Read Mixed Data Types Example Write Read Mixed Data Types Example
2.Record Enumeration Example Record Enumeration Example
3.Mixed Record Enumeration Example Mixed Record Enumeration Example
4.Sort Record Example
5.Sort Mixed Record Data Type Example Sort Mixed Record Data Type Example
6.Search ExampleSearch Example
7.Search Mixed Record Data Type ExampleSearch Mixed Record Data Type Example
8.Record MIDletRecord MIDlet
9.Store DatabaseStore Database
10.Use streams to read and write Java data types to the record store.Use streams to read and write Java data types to the record store.
11.Read and write to the record store.Read and write to the record store.
12.Persistent Ranking MIDlet
13.Persistence: storing and showing game scores
14.Read Display FileRead Display File