@Override
 public Cursor query(
     Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
   switch (uriMatcher.match(uri)) {
     case SINGLE_CODE:
       SQLiteDatabase db = dbHelper.getReadableDatabase();
       long id = ContentUris.parseId(uri);
       selection = FlickrContract.CommentsInfo._ID + "=?";
       selectionArgs = new String[] {String.valueOf(id)};
       return db.query(
           FlickrContract.CommentsInfo.TABLE_NAME,
           projection,
           selection,
           selectionArgs,
           null,
           null,
           null);
     case MULTIPLE_CODE:
       db = dbHelper.getReadableDatabase();
       return db.query(
           FlickrContract.CommentsInfo.TABLE_NAME,
           projection,
           selection,
           selectionArgs,
           null,
           null,
           null);
   }
   return null;
 }
 @Override
 public int delete(Uri uri, String selection, String[] selectionArgs) {
   int row = 0;
   switch (uriMatcher.match(uri)) {
     case SINGLE_CODE:
       SQLiteDatabase db = dbHelper.getWritableDatabase();
       long id = ContentUris.parseId(uri);
       selection = FlickrContract.CommentsInfo._ID + "=?";
       selectionArgs = new String[] {String.valueOf(id)};
       row = db.delete(FlickrContract.CommentsInfo.TABLE_NAME, selection, selectionArgs);
       db.close();
       break;
     case MULTIPLE_CODE:
       db = dbHelper.getWritableDatabase();
       row = db.delete(FlickrContract.CommentsInfo.TABLE_NAME, selection, selectionArgs);
       db.close();
       break;
   }
   return row;
 }
 @Override
 public Uri insert(Uri uri, ContentValues values) {
   switch (uriMatcher.match(uri)) {
     case MULTIPLE_CODE:
       SQLiteDatabase db = dbHelper.getWritableDatabase();
       long id = db.insert(FlickrContract.CommentsInfo.TABLE_NAME, null, values);
       uri = ContentUris.withAppendedId(uri, id);
       db.close();
       break;
   }
   return uri;
 }