download DataStore.java
Language: Java
LOC: 57
Project Info
Sync4j
Server: ObjectWeb Forge
Type: cvs
...ment\sync4j\syncclient\sps\
   ContactDataStore.java
   DataAccessException.java
   DataStore.java
   EventDataStore.java
   NetworkException.java
   Record.java

package sync4j.syncclient.sps;

import java.util.Enumeration;
import java.util.Vector;

import javax.microedition.rms.RecordStore;

import javax.microedition.pim.PIM;
import javax.microedition.pim.PIMList;
import javax.microedition.pim.PIMException;
import net.rim.device.api.system.PersistentObject;
import net.rim.device.api.system.PersistentStore;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.util.StringMatch;
import sync4j.syncclient.util.StaticDataHelper;

import sync4j.syncclient.blackberry.parser.ParserFactory;
import sync4j.syncclient.blackberry.parser.EventParser;

/**
 * This class provide abstract methods
 * to access device database
 *
 * @author Fabio Maggi @ Funambol
 * $Id: DataStore.java,v 1.9 2005/10/27 09:33:12 fabius Exp $
 */
public abstract class DataStore {
      //------------------------------------------------------------- Constants

    public static final char   RECORD_STATE_NEW      = 'N'            ;
    public static final char   RECORD_STATE_DELETED  = 'D'            ;
    public static final char   RECORD_STATE_UPDATED  = 'U'            ;
    public static final char   RECORD_STATE_UNSIGNED = ' '            ;

    protected static final long PERSISTENCE_KEY = 0x50b137116d9be33cL ;

    public  static final int    MAX_ITEM_NUMBER = 24                  ;


    //------------------------------------------------------------- Private Data

    protected PIMList pimList;
    protected int page;
    protected Enumeration items;

    // ------------------------------------------------------------------------

    public static DataStore getDataStore (String datastoreName) {

        StaticDataHelper stdh = new StaticDataHelper();

        if (stdh.getContactSourceUri().equals(datastoreName))   {
            return new ContactDataStore ();
        } else {
            return new EventDataStore   ();
        }
    }

    protected DataStore() {
        pimList = null;
        page = MAX_ITEM_NUMBER;
    }

    /**
     * Set last timestamp in dedicate recordStore
     * @param lastTimestamp
     * @throws DataAccessException
     **/
    public abstract void setLastTimestamp(long lastTimestamp)
    throws DataAccessException;


    /**
     * @return last timestamp from dedicate recordstore
     * @throws DataAccessException
     **/
    public abstract long getLastTimestamp()
    throws DataAccessException;

    /**
     * if record exist in database, update records
     * if record not exist in database, add record
     * @param record record to store
     * @throws DataAccessException
     **/
    public abstract Record setRecord(Record record, boolean modify)
    throws DataAccessException;

    /**
     * Delete a record from the event database.
     * @param record
     * @throws DataAccessException
     */
    public abstract void deleteRecord(Record record)
    throws DataAccessException;


    /**
     * return no deleted records from device recordstore
     *
     * @return records found
     *
     * @throws DataAccessException
     **/
    public abstract boolean getNextRecords(Vector v) throws DataAccessException;

    /**
     * return record from recordstore
     * filter by record state
     *
     * @return records found
     *
     * @throws DataAccessException
     **/
    public abstract boolean getNextRecords(Vector v, char state) throws DataAccessException;

    public abstract void startDSOperations();

    public abstract void resetModificationCursor();

    /**
     * execute commit recordstore operations
     * remove records signed as DELETED 'D'
     * mark UNSIGNED ' ' records signed as NEW 'N' and UPDATED 'U'
     *
     * @throws DataAccessException
     *
     */
    public abstract void commitDSOperations()
    throws DataAccessException;


    public void setPage(int page) {
        this.page = page;
    }

    public int getPage() {
        return page;
    }
}

About Koders | Resources | Downloads | Support | Black Duck | Submit Project | Terms of Service | DMCA | Privacy Policy | Site Map| Contact Us