OSDN Git Service

0b8f27477c681cdc390b8f962f2fc93724b92905
[andro-memo/andro-memo.git] / andro-memo-web / src / jp / gr / java_conf / u6k / andro_memo / web / json_service / MemoService.java
1 \r
2 package jp.gr.java_conf.u6k.andro_memo.web.json_service;\r
3 \r
4 import java.util.ArrayList;\r
5 import java.util.Date;\r
6 import java.util.HashMap;\r
7 import java.util.List;\r
8 import java.util.Map;\r
9 \r
10 import javax.jdo.PersistenceManager;\r
11 import javax.jdo.Transaction;\r
12 \r
13 import jp.gr.java_conf.u6k.andro_memo.entity.MemoEntity;\r
14 import jp.gr.java_conf.u6k.andro_memo.entity.PMF;\r
15 import jp.gr.java_conf.u6k.andro_memo.model.MemoModel;\r
16 \r
17 import com.google.appengine.api.datastore.KeyFactory;\r
18 \r
19 public class MemoService {\r
20 \r
21     public String create(String loginTicketKey, String title, String tag, String content, long updateDatetime) {\r
22         PersistenceManager pm = PMF.get().getPersistenceManager();\r
23         try {\r
24             Transaction tx = pm.currentTransaction();\r
25             try {\r
26                 tx.begin();\r
27 \r
28                 MemoModel memoModel = new MemoModel(pm);\r
29 \r
30                 MemoEntity memo = memoModel.create(loginTicketKey, title, tag, content, new Date(updateDatetime));\r
31 \r
32                 String key = KeyFactory.keyToString(memo.getKey());\r
33 \r
34                 tx.commit();\r
35 \r
36                 return key;\r
37             } finally {\r
38                 if (tx.isActive()) {\r
39                     tx.rollback();\r
40                 }\r
41             }\r
42         } finally {\r
43             pm.close();\r
44         }\r
45     }\r
46 \r
47     public void update(String loginTicketKey, String memoKey, String title, String tag, String content, long updateDatetime) {\r
48         PersistenceManager pm = PMF.get().getPersistenceManager();\r
49         try {\r
50             Transaction tx = pm.currentTransaction();\r
51             try {\r
52                 tx.begin();\r
53 \r
54                 MemoModel memoModel = new MemoModel(pm);\r
55 \r
56                 memoModel.update(loginTicketKey, memoKey, title, tag, content, new Date(updateDatetime));\r
57 \r
58                 tx.commit();\r
59             } finally {\r
60                 if (tx.isActive()) {\r
61                     tx.rollback();\r
62                 }\r
63             }\r
64         } finally {\r
65             pm.close();\r
66         }\r
67     }\r
68 \r
69     public void delete(String loginTicketKey, String memoKey) {\r
70         PersistenceManager pm = PMF.get().getPersistenceManager();\r
71         try {\r
72             Transaction tx = pm.currentTransaction();\r
73             try {\r
74                 tx.begin();\r
75 \r
76                 MemoModel memoModel = new MemoModel(pm);\r
77 \r
78                 memoModel.delete(loginTicketKey, memoKey);\r
79 \r
80                 tx.commit();\r
81             } finally {\r
82                 if (tx.isActive()) {\r
83                     tx.rollback();\r
84                 }\r
85             }\r
86         } finally {\r
87             pm.close();\r
88         }\r
89     }\r
90 \r
91     public List<Map<String, String>> findAll(String loginTicketKey) {\r
92         PersistenceManager pm = PMF.get().getPersistenceManager();\r
93         try {\r
94             List<Map<String, String>> resultList = new ArrayList<Map<String, String>>();\r
95 \r
96             MemoModel memoModel = new MemoModel(pm);\r
97 \r
98             List<MemoEntity> memoList = memoModel.findAll(loginTicketKey);\r
99 \r
100             for (MemoEntity memo : memoList) {\r
101                 String key = KeyFactory.keyToString(memo.getKey());\r
102                 String updateDatetime = Long.toString(memo.getUpdateDatetime().getTime());\r
103 \r
104                 Map<String, String> result = new HashMap<String, String>();\r
105                 result.put("key", key);\r
106                 result.put("updateDatetime", updateDatetime);\r
107 \r
108                 resultList.add(result);\r
109             }\r
110 \r
111             return resultList;\r
112         } finally {\r
113             pm.close();\r
114         }\r
115     }\r
116 \r
117     public Map<String, String> findByKey(String loginTicketKey, String memoKey) {\r
118         PersistenceManager pm = PMF.get().getPersistenceManager();\r
119         try {\r
120             MemoModel memoModel = new MemoModel(pm);\r
121 \r
122             MemoEntity memo = memoModel.findByKey(loginTicketKey, memoKey);\r
123 \r
124             Map<String, String> result = new HashMap<String, String>();\r
125             result.put("key", KeyFactory.keyToString(memo.getKey()));\r
126             result.put("title", memo.getTitle());\r
127             result.put("tag", memo.getTag());\r
128             if (memo.getContent() != null) {\r
129                 result.put("content", memo.getContent().getValue());\r
130             } else {\r
131                 result.put("content", null);\r
132             }\r
133             result.put("updateDatetime", Long.toString(memo.getUpdateDatetime().getTime()));\r
134 \r
135             return result;\r
136         } finally {\r
137             pm.close();\r
138         }\r
139     }\r
140 \r
141 }\r