Android Open Source - sana Event Provider






From Project

Back to project page sana.

License

The source code is released under:

Copyright (c) 2010, Moca All rights reserved. The source code for Moca is licensed under the BSD license as follows: Redistribution and use in source and binary forms, with or without modification, ...

If you think the Android project sana listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.moca.db;
//from w  w  w.  ja v  a2 s . co m
import java.util.HashMap;

import org.moca.db.MocaDB.DatabaseHelper;
import org.moca.db.MocaDB.EventSQLFormat;

import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
import android.text.TextUtils;
import android.util.Log;

public class EventProvider extends ContentProvider {
  private static final String TAG = EventProvider.class.toString();
  
  private static final String EVENTS_TABLE_NAME = "events";
    
    private static final int EVENTS = 1;
    private static final int EVENT_ID = 2;
    
    private DatabaseHelper mOpenHelper;
    private static final UriMatcher sUriMatcher;
    private static HashMap<String,String> sCounterProjectionMap;
    
    @Override
  public boolean onCreate() {
    Log.i(TAG, "onCreate()");
        mOpenHelper = new DatabaseHelper(getContext());
        return true;
  }

  @Override
  public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
    Log.i(TAG, "query() uri="+uri.toString() + " projection=" + TextUtils.join(",",projection));
        
        SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
        qb.setTables(EVENTS_TABLE_NAME);
        
        switch(sUriMatcher.match(uri)) {
        case EVENTS:    
            break;
        case EVENT_ID:
            qb.appendWhere(EventSQLFormat._ID + "=" + uri.getPathSegments().get(1));
            break;
        default:
            throw new IllegalArgumentException("Unknown URI " + uri);
        }
        
        String orderBy;
        if(TextUtils.isEmpty(sortOrder)) {
            orderBy = EventSQLFormat.DEFAULT_SORT_ORDER;
        } else {
            orderBy = sortOrder;
        }
        
        SQLiteDatabase db = mOpenHelper.getReadableDatabase();
        Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, orderBy);
        c.setNotificationUri(getContext().getContentResolver(), uri);
        return c;
  }
    
  @Override
  public int delete(Uri uri, String selection, String[] selectionArgs) {
    Log.i(TAG, "delete: " + uri);
      
        SQLiteDatabase db = mOpenHelper.getWritableDatabase();
        int count;
        switch (sUriMatcher.match(uri)) {
        case EVENTS:
            count = db.delete(EVENTS_TABLE_NAME, selection, selectionArgs);
            break;
        case EVENT_ID:
          String eventId = uri.getPathSegments().get(1);
            count = db.delete(EVENTS_TABLE_NAME, EventSQLFormat._ID + "=" + eventId + (!TextUtils.isEmpty(selection) ? " AND (" + selection + ")" : ""), selectionArgs);
            break;
        default:
            throw new IllegalArgumentException("Unknown URI " + uri);
        }
        
        getContext().getContentResolver().notifyChange(uri, null);
        return count;    
  }

  @Override
  public String getType(Uri uri) {
    Log.i(TAG, "getType(uri="+uri.toString()+")");
        switch(sUriMatcher.match(uri)) {
        case EVENTS:
            return EventSQLFormat.CONTENT_TYPE;
        case EVENT_ID:
            return EventSQLFormat.CONTENT_ITEM_TYPE;
        default:
            throw new IllegalArgumentException("Unknown URI " + uri);
        }
  }
  
  private void insertDefault(ContentValues values, String key, boolean defaultValue) {
    if (!values.containsKey(key)) {
      values.put(key, defaultValue);
    }
  }
  
  private void insertDefault(ContentValues values, String key, Long defaultValue) {
    if (!values.containsKey(key)) {
      values.put(key, defaultValue);
    }
  }
  
  private void insertDefault(ContentValues values, String key, String defaultValue) {
    if (!values.containsKey(key)) {
      values.put(key, defaultValue);
    }
  }

  @Override
  public Uri insert(Uri uri, ContentValues initialValues) {
    if (sUriMatcher.match(uri) != EVENTS) {
      throw new IllegalArgumentException("Unknown URI " + uri);
    }
          
    
    ContentValues values;
        if(initialValues != null) {
            values = new ContentValues(initialValues);
        } else {
            values = new ContentValues();
        }
        
        Long now = Long.valueOf(System.currentTimeMillis());
        
        insertDefault(values, EventSQLFormat.EVENT_TYPE, "");
        insertDefault(values, EventSQLFormat.EVENT_VALUE, "");
        insertDefault(values, EventSQLFormat.CREATED_DATE, now);
        insertDefault(values, EventSQLFormat.MODIFIED_DATE, now);
        insertDefault(values, EventSQLFormat.UPLOADED, false);
        insertDefault(values, EventSQLFormat.PATIENT_REFERENCE, "");
        insertDefault(values, EventSQLFormat.ENCOUNTER_REFERENCE, "");
        insertDefault(values, EventSQLFormat.USER_REFERENCE, "");

        SQLiteDatabase db = mOpenHelper.getWritableDatabase();
        long rowId = db.insert(EVENTS_TABLE_NAME, null, values);
        
        if(rowId > 0) {
            Uri eventUri = ContentUris.withAppendedId(EventSQLFormat.CONTENT_URI, rowId);
            getContext().getContentResolver().notifyChange(eventUri, null);
            return eventUri;
        }
       
        throw new SQLException("Failed to insert row into " + uri);
  }

  @Override
  public int update(Uri uri, ContentValues values, String selection,
      String[] selectionArgs) {
    SQLiteDatabase db = mOpenHelper.getWritableDatabase();
        int count = 0; 
        
        switch(sUriMatcher.match(uri)) {
        case EVENTS:
            count = db.update(EVENTS_TABLE_NAME, values, selection, selectionArgs);
            break;
            
        case EVENT_ID:
            String procedureId = uri.getPathSegments().get(1);
            count = db.update(EVENTS_TABLE_NAME, values, EventSQLFormat._ID + "=" + procedureId + (!TextUtils.isEmpty(selection) ? " AND (" + selection + ")" : ""), selectionArgs);
            break;
        default:
            throw new IllegalArgumentException("Unknown URI " + uri);
        }
        
        getContext().getContentResolver().notifyChange(uri, null);
        return count;
  }
  
  public static void onCreateDatabase(SQLiteDatabase db) {
    Log.i(TAG, "Creating Events Table");
    db.execSQL("CREATE TABLE " + EVENTS_TABLE_NAME + " ("
        + EventSQLFormat._ID + " INTEGER PRIMARY KEY,"
        + EventSQLFormat.EVENT_TYPE + " TEXT, "
        + EventSQLFormat.EVENT_VALUE + " TEXT, " 
        + EventSQLFormat.ENCOUNTER_REFERENCE + " TEXT, "
        + EventSQLFormat.PATIENT_REFERENCE + " TEXT, "
        + EventSQLFormat.USER_REFERENCE + " TEXT, "
        + EventSQLFormat.UPLOADED + " INTEGER, "
                + EventSQLFormat.CREATED_DATE + " INTEGER,"
                + EventSQLFormat.MODIFIED_DATE + " INTEGER"
        + ");");
  }
    
  public static void onUpgradeDatabase(SQLiteDatabase db, int oldVersion, int newVersion) {
    Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
        + newVersion);
    
    if (oldVersion == 1 && newVersion == 2) {
      // This table is created in version 2.
      onCreateDatabase(db);
    }
  }
  
  static {
        sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
        sUriMatcher.addURI(MocaDB.EVENT_AUTHORITY, "events", EVENTS);
        sUriMatcher.addURI(MocaDB.EVENT_AUTHORITY, "events/#", EVENT_ID);
        
        sCounterProjectionMap = new HashMap<String, String>();
        sCounterProjectionMap.put(EventSQLFormat._ID, EventSQLFormat._ID);
        sCounterProjectionMap.put(EventSQLFormat.EVENT_TYPE, EventSQLFormat.EVENT_TYPE);
        sCounterProjectionMap.put(EventSQLFormat.EVENT_VALUE, EventSQLFormat.EVENT_VALUE);
        sCounterProjectionMap.put(EventSQLFormat.ENCOUNTER_REFERENCE, EventSQLFormat.ENCOUNTER_REFERENCE);
        sCounterProjectionMap.put(EventSQLFormat.PATIENT_REFERENCE, EventSQLFormat.PATIENT_REFERENCE);
        sCounterProjectionMap.put(EventSQLFormat.USER_REFERENCE, EventSQLFormat.USER_REFERENCE);
        sCounterProjectionMap.put(EventSQLFormat.MODIFIED_DATE, EventSQLFormat.MODIFIED_DATE);
        sCounterProjectionMap.put(EventSQLFormat.CREATED_DATE, EventSQLFormat.CREATED_DATE);
    }
    
  
  
}




Java Source Code List

.Moca.java
org.moca.Constants.java
org.moca.ImagePreviewDialog.java
org.moca.ScalingImageAdapter.java
org.moca.SelectableImageView.java
org.moca.activity.NotificationList.java
org.moca.activity.NotificationViewer.java
org.moca.activity.PatientInfoDialog.java
org.moca.activity.ProcedureRunner.java
org.moca.activity.ProceduresList.java
org.moca.activity.SavedProcedureList.java
org.moca.activity.Settings.java
org.moca.db.EncounterDAO.java
org.moca.db.EventDAO.java
org.moca.db.EventProvider.java
org.moca.db.Event.java
org.moca.db.ImageProvider.java
org.moca.db.MocaDB.java
org.moca.db.NotificationMessage.java
org.moca.db.NotificationProvider.java
org.moca.db.PatientInfo.java
org.moca.db.PatientProvider.java
org.moca.db.PatientValidator.java
org.moca.db.ProcedureDAO.java
org.moca.db.ProcedureProvider.java
org.moca.db.SavedProcedureProvider.java
org.moca.db.SoundProvider.java
org.moca.media.AudioPlayer.java
org.moca.net.MDSCode.java
org.moca.net.MDSInterface.java
org.moca.net.MDSNotification.java
org.moca.net.MDSResult.java
org.moca.net.SMSReceive.java
org.moca.procedure.BinaryUploadElement.java
org.moca.procedure.DateElement.java
org.moca.procedure.GpsElement.java
org.moca.procedure.MultiSelectElement.java
org.moca.procedure.PatientIdElement.java
org.moca.procedure.PictureElement.java
org.moca.procedure.ProcedureElement.java
org.moca.procedure.ProcedurePage.java
org.moca.procedure.ProcedureParseException.java
org.moca.procedure.Procedure.java
org.moca.procedure.RadioElement.java
org.moca.procedure.SelectElement.java
org.moca.procedure.SoundElement.java
org.moca.procedure.TextElement.java
org.moca.procedure.TextEntryElement.java
org.moca.procedure.ValidationError.java
org.moca.procedure.branching.Criteria.java
org.moca.procedure.branching.Criterion.java
org.moca.procedure.branching.LogicAnd.java
org.moca.procedure.branching.LogicBase.java
org.moca.procedure.branching.LogicNot.java
org.moca.procedure.branching.LogicOr.java
org.moca.service.BackgroundUploader.java
org.moca.service.QueueManager.java
org.moca.service.ServiceConnector.java
org.moca.service.ServiceListener.java
org.moca.task.CheckCredentialsTask.java
org.moca.task.ImageProcessingTaskRequest.java
org.moca.task.ImageProcessingTask.java
org.moca.task.MDSSyncTask.java
org.moca.task.PatientLookupListener.java
org.moca.task.PatientLookupTask.java
org.moca.task.ResetDatabaseTask.java
org.moca.task.ValidationListener.java
org.moca.util.MocaUtil.java
org.moca.util.UserDatabase.java