Initial commit
[mustard2:mustard2.git] / src / org / mustard2 / db / AttachmentTable.java
1 package org.mustard2.db;
2
3 import org.mustard2.android.MustardException;
4 import org.mustard2.android.R;
5
6 import android.content.ContentValues;
7 import android.content.Context;
8 import android.database.sqlite.SQLiteConstraintException;
9 import android.database.sqlite.SQLiteDatabase;
10
11 public class AttachmentTable {
12         
13         public static final String NAME = "attachments";
14         
15         public static final String KEY_ROWID = "_id";
16         public static final String KEY_STATUS_ID = "_status_id";
17         public static final String KEY_MIMETYPE = "mimetype";
18         public static final String KEY_URL = "url";
19         
20         public static final String CREATE_SQL =  
21                 "CREATE TABLE " + NAME  + " (" +
22                 KEY_ROWID + " integer primary key autoincrement, " +
23                 KEY_STATUS_ID + " integer not null,  " +
24                 KEY_MIMETYPE + " text not null," +
25                 KEY_URL + " text not null, " +
26                 "FOREIGN KEY ("+KEY_STATUS_ID+") REFERENCES "+StatusTable.NAME+"("+StatusTable.KEY_ROWID+") ON DELETE CASCADE )";
27         
28         private SQLiteDatabase mDb;
29         private Context mContext;
30         
31         public AttachmentTable(SQLiteDatabase db, Context context) {
32                 mDb=db;
33                 mContext=context;
34         }
35         
36         public long insertAttachment(long status_id, String url, String mimetype) throws MustardException {
37
38                 ContentValues initialValues = new ContentValues();
39                 initialValues.put(KEY_STATUS_ID, status_id);
40                 initialValues.put(KEY_URL, url);
41                 initialValues.put(KEY_MIMETYPE, mimetype);
42                 long ret = -1;
43                 try {
44                          ret = mDb.insertOrThrow(NAME, null, initialValues);
45                 } catch(SQLiteConstraintException e) {
46                         ret = 0;
47                 } catch (Exception e) {
48                                 throw new MustardException(mContext.getString(R.string.create_attachment_error,e.toString()));
49                 }
50                 return ret;
51         }
52         
53 }