OSDN Git Service

t25718不具合あり
[train-delayed/source.git] / workspace / TrainDelayed / src / com / td / db / HistoryDao.java
1 package com.td.db;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.List;\r
5 \r
6 import android.content.ContentResolver;\r
7 import android.content.Context;\r
8 import android.database.Cursor;\r
9 \r
10 import com.td.HistoryContentProvider;\r
11 import com.td.utility.Debug;\r
12 \r
13 public class HistoryDao {\r
14         private static HistoryDao instance = null;\r
15         \r
16         public static HistoryDao getInstance(){\r
17                 if (instance == null){\r
18                         instance = new HistoryDao();\r
19                 }\r
20                 return instance;\r
21         }\r
22         \r
23         private HistoryDao(){\r
24                 \r
25         }\r
26         \r
27         private List<History> search(Context context, String selection, String[] selectionArgs){\r
28                 ContentResolver resolver = context.getContentResolver();\r
29                 Cursor cursor = resolver.query(HistoryContentProvider.CONTENT_URI,\r
30                                 HistoryContentProvider.Projection.projection,\r
31                                 selection,\r
32                                 selectionArgs,\r
33                                 HistoryContentProvider.Fields.ID + " ASC");\r
34                 List<History> list = new ArrayList<History>();\r
35                 \r
36                 try {\r
37                 if (cursor.moveToFirst()) {\r
38                     do {\r
39                         int n = 0;\r
40                         long id = cursor.getLong(n++);\r
41                         long routeId = cursor.getLong(n++);\r
42                                 int ymd = cursor.getInt(n++);\r
43                                 int hm = cursor.getInt(n++);\r
44                                 int week = cursor.getInt(n++);\r
45                                 int period = cursor.getInt(n++);\r
46                                 long num = cursor.getLong(n++);\r
47                                 int status = cursor.getInt(n++);\r
48                                 \r
49                                 if (Debug.isDebug()){\r
50                                                 Debug.d(this, "" + id + " " + routeId + " " + ymd + " " + hm\r
51                                                                 + " " + week + " " + period + " " + num + " " + status);\r
52                                 }\r
53                                         History history = new History(id, routeId, ymd, hm, week,\r
54                                                         period, num, status);\r
55                                         list.add(history);\r
56                     } while (cursor.moveToNext());\r
57                 }               \r
58                 }\r
59                 finally {\r
60                         if (cursor != null){\r
61                                 cursor.close();\r
62                                 cursor = null;\r
63                         }\r
64                 }\r
65         return list;\r
66         }\r
67 \r
68         public List<History> search(Context context, long routeId, int ymd, int startHm, int endHm){\r
69                 String selection = "YMD = ? AND ? <= HM AND HM <= ? AND ROUTE_ID = ?";\r
70                 String[] selectionArgs = new String[4];\r
71                 selectionArgs[0] = String.valueOf(ymd);\r
72                 selectionArgs[1] = String.valueOf(startHm);\r
73                 selectionArgs[2] = String.valueOf(endHm);\r
74                 selectionArgs[3] = String.valueOf(routeId);\r
75                 \r
76                 return search(context, selection, selectionArgs);\r
77         }\r
78 \r
79         public List<History> search(Context context, int ymd, int startHm, int endHm){\r
80                 String selection = "YMD = ? AND ? <= HM AND HM <= ?";\r
81                 String[] selectionArgs = new String[3];\r
82                 selectionArgs[0] = String.valueOf(ymd);\r
83                 selectionArgs[1] = String.valueOf(startHm);\r
84                 selectionArgs[2] = String.valueOf(endHm);\r
85                 \r
86                 return search(context, selection, selectionArgs);\r
87         }\r
88 \r
89         public List<History> search(Context context){\r
90                 return search(context, null, null);\r
91         }\r
92 \r
93         public void delete(Context context){\r
94                 delete(context, null, null);\r
95         }\r
96         \r
97         public void deleteByYmd(Context context, int ymd){\r
98                 String selection = "YMD < ?";\r
99                 String[] selectionArgs = new String[1];;\r
100                 selectionArgs[0] = String.valueOf(ymd);\r
101                 \r
102                 delete(context, selection, selectionArgs);\r
103         }\r
104         \r
105         private void delete(Context context, String selection, String[] selectionArgs){\r
106                 ContentResolver resolver = context.getContentResolver();\r
107                 resolver.delete(HistoryContentProvider.CONTENT_URI, selection, selectionArgs);\r
108         }\r
109 }\r