OSDN Git Service

a0461e76658fff7a724f41738f01a6fc9b95cad6
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / sql / NoteResourceTable.java
1 /*\r
2  * This file is part of NeverNote \r
3  * Copyright 2009 Randy Baumgarte\r
4  * \r
5  * This file may be licensed under the terms of of the\r
6  * GNU General Public License Version 2 (the ``GPL'').\r
7  *\r
8  * Software distributed under the License is distributed\r
9  * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either\r
10  * express or implied. See the GPL for the specific language\r
11  * governing rights and limitations.\r
12  *\r
13  * You should have received a copy of the GPL along with this\r
14  * program. If not, go to http://www.gnu.org/licenses/gpl.html\r
15  * or write to the Free Software Foundation, Inc.,\r
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\r
17  *\r
18 */\r
19 \r
20 \r
21 package cx.fbn.nevernote.sql;\r
22 import java.util.List;\r
23 \r
24 import com.evernote.edam.type.Resource;\r
25 \r
26 import cx.fbn.nevernote.Global;\r
27 import cx.fbn.nevernote.sql.requests.ResourceRequest;\r
28 \r
29 \r
30 public class NoteResourceTable {\r
31         private final int id;\r
32         \r
33         // Constructor\r
34         public NoteResourceTable(int i) {\r
35                 id = i;\r
36         }\r
37         // Create the table\r
38         public void createTable() {\r
39                 ResourceRequest request = new ResourceRequest();\r
40                 request.requestor_id = id;\r
41                 request.type = ResourceRequest.Create_Table;\r
42                 Global.dbRunner.addWork(request);\r
43         }\r
44         // Drop the table\r
45         public void dropTable() {               \r
46                 ResourceRequest request = new ResourceRequest();\r
47                 request.requestor_id = id;\r
48                 request.type = ResourceRequest.Drop_Table;\r
49                 Global.dbRunner.addWork(request);\r
50         }\r
51         // Reset the dirty flag\r
52         public void  resetDirtyFlag(String guid) {\r
53                 ResourceRequest request = new ResourceRequest();\r
54                 request.requestor_id = id;\r
55                 request.type = ResourceRequest.Reset_Dirty_Flag;\r
56                 request.string1 = new String(guid);\r
57                 Global.dbRunner.addWork(request);\r
58         }\r
59         // Set if the resource should be indexed\r
60         public void  setIndexNeeded(String guid, Boolean indexNeeded) {\r
61                 ResourceRequest request = new ResourceRequest();\r
62                 request.requestor_id = id;\r
63                 request.type = ResourceRequest.Set_Index_Needed;\r
64                 request.string1 = new String(guid);\r
65                 request.bool1 = indexNeeded;\r
66                 Global.dbRunner.addWork(request);\r
67         }\r
68         // get any unindexed resource\r
69         public List<String> getNextUnindexed(int limit) {\r
70                 ResourceRequest request = new ResourceRequest();\r
71                 request.requestor_id = id;\r
72                 request.type = ResourceRequest.Get_Next_Unindexed;\r
73                 request.int1 = limit;\r
74                 Global.dbRunner.addWork(request);\r
75                 Global.dbClientWait(id);\r
76                 ResourceRequest req = Global.dbRunner.resourceResponse.get(id).copy();\r
77                 return req.responseStrings;\r
78         }\r
79         public void saveNoteResource(Resource r, boolean isDirty) {\r
80                 ResourceRequest request = new ResourceRequest();\r
81                 request.requestor_id = id;\r
82                 request.type = ResourceRequest.Save_Note_Resource;\r
83                 request.resource = r.deepCopy();\r
84                 request.bool1 = isDirty;\r
85                 Global.dbRunner.addWork(request);\r
86 //              Global.dbClientWait(id);\r
87         }\r
88         // delete an old resource\r
89         public void expungeNoteResource(String guid) {\r
90                 ResourceRequest request = new ResourceRequest();\r
91                 request.requestor_id = id;\r
92                 request.type = ResourceRequest.Expunge_Note_Resource;\r
93                 request.string1 = new String(guid);\r
94                 Global.dbRunner.addWork(request);\r
95         }\r
96 \r
97         // Get a note resource from the database by it's hash value\r
98         public String getNoteResourceGuidByHashHex(String noteGuid, String hash) {\r
99                 ResourceRequest request = new ResourceRequest();\r
100                 request.requestor_id = id;\r
101                 request.type = ResourceRequest.Get_Note_Resource_Guid_By_Hash_Hex;\r
102                 request.string1 = new String(noteGuid);\r
103                 request.string2 = new String(hash);\r
104                 Global.dbRunner.addWork(request);\r
105                 Global.dbClientWait(id);\r
106                 ResourceRequest req = Global.dbRunner.resourceResponse.get(id).copy();\r
107                 return req.responseString;      \r
108         }\r
109         // Get a note resource from the database by it's hash value\r
110         public Resource getNoteResourceDataBodyByHashHex(String noteGuid, String hash) {\r
111                 ResourceRequest request = new ResourceRequest();\r
112                 request.requestor_id = id;\r
113                 request.type = ResourceRequest.Get_Note_Resource_Data_Body_By_Hash_Hex;\r
114                 request.string1 = new String(noteGuid);\r
115                 request.string2 = new String(hash);\r
116                 Global.dbRunner.addWork(request);\r
117                 Global.dbClientWait(id);\r
118                 ResourceRequest req = Global.dbRunner.resourceResponse.get(id).copy();\r
119                 return req.responseResource;\r
120         }\r
121 \r
122         // Update a note resource guid\r
123         public void updateNoteResourceGuid(String oldGuid, String newGuid, boolean isDirty) {\r
124                 ResourceRequest request = new ResourceRequest();\r
125                 request.requestor_id = id;\r
126                 request.type = ResourceRequest.Update_Note_Resource_Guid;\r
127                 request.string1 = new String(oldGuid);\r
128                 request.string2 = new String(newGuid);\r
129                 request.bool1 = isDirty;\r
130                 Global.dbRunner.addWork(request);\r
131 //              Global.dbClientWait(id);\r
132         }\r
133         \r
134 \r
135         // Reset update sequence number to zero\r
136         public void resetUpdateSequenceNumber(String guid, boolean isDirty) {\r
137                 ResourceRequest request = new ResourceRequest();\r
138                 request.requestor_id = id;\r
139                 request.type = ResourceRequest.Reset_Update_Sequence_Number;\r
140                 request.string1 = new String(guid);\r
141                 request.bool1 = isDirty;\r
142                 Global.dbRunner.addWork(request);\r
143         }\r
144         \r
145         // Get a note's resourcesby Guid\r
146         public Resource getNoteResource(String guid, boolean withBinary) {\r
147                 if (guid == null) \r
148                         return null;\r
149                 ResourceRequest request = new ResourceRequest();\r
150                 request.requestor_id = id;\r
151                 request.type = ResourceRequest.Get_Note_Resource;\r
152                 request.string1 = new String(guid);\r
153                 request.bool1 = withBinary;\r
154                 Global.dbRunner.addWork(request);\r
155                 Global.dbClientWait(id);\r
156                 ResourceRequest req = Global.dbRunner.resourceResponse.get(id).copy();\r
157                 return req.responseResource;\r
158         }\r
159         \r
160         \r
161         // Get a note's resourcesby Guid\r
162         public List<Resource> getNoteResources(String noteGuid, boolean withBinary) {\r
163                 ResourceRequest request = new ResourceRequest();\r
164                 request.requestor_id = id;\r
165                 request.type = ResourceRequest.Get_Note_Resources;\r
166                 request.string1 = new String(noteGuid);\r
167                 request.bool1 = withBinary;\r
168                 Global.dbRunner.addWork(request);\r
169                 Global.dbClientWait(id);\r
170                 ResourceRequest req = Global.dbRunner.resourceResponse.get(id).copy();\r
171                 return req.responseResources;\r
172         }\r
173         \r
174         \r
175         // Get all of a note's recognition data by the note guid\r
176         public List<Resource> getNoteResourcesRecognition(String noteGuid) {\r
177                 ResourceRequest request = new ResourceRequest();\r
178                 request.requestor_id = id;\r
179                 request.type = ResourceRequest.Get_Note_Resources_Recognition;\r
180                 request.string1 = new String(noteGuid);\r
181                 Global.dbRunner.addWork(request);\r
182                 Global.dbClientWait(id);\r
183                 ResourceRequest req = Global.dbRunner.resourceResponse.get(id).copy();\r
184                 return req.responseResources;\r
185         }\r
186         \r
187         // Get a note's recognition data by it's guid.\r
188         public Resource getNoteResourceRecognition(String guid) {\r
189                 ResourceRequest request = new ResourceRequest();\r
190                 request.requestor_id = id;\r
191                 request.type = ResourceRequest.Get_Note_Resource_Recognition;\r
192                 request.string1 = new String(guid);\r
193                 Global.dbRunner.addWork(request);       \r
194                 Global.dbClientWait(id);\r
195                 ResourceRequest req = Global.dbRunner.resourceResponse.get(id).copy();\r
196                 return req.responseResource;\r
197         }\r
198         // Save Note Resource\r
199         public void updateNoteResource(Resource r, boolean isDirty) {\r
200                 ResourceRequest request = new ResourceRequest();\r
201                 request.requestor_id = id;\r
202                 request.type = ResourceRequest.Update_Note_Resource;\r
203                 request.resource = r.deepCopy();\r
204                 request.bool1 = isDirty;\r
205                 Global.dbRunner.addWork(request);\r
206         }\r
207         \r
208         // Drop the table\r
209         public void reindexAll() {              \r
210                 ResourceRequest request = new ResourceRequest();\r
211                 request.requestor_id = id;\r
212                 request.type = ResourceRequest.Reindex_All;\r
213                 Global.dbRunner.addWork(request);\r
214         }\r
215         // Count unindexed notes\r
216         public int getResourceCount() {\r
217                 ResourceRequest request = new ResourceRequest();\r
218                 request.requestor_id = id;\r
219                 request.type = ResourceRequest.Get_Resource_Count;\r
220                 Global.dbRunner.addWork(request);\r
221                 Global.dbClientWait(id);\r
222                 ResourceRequest req = Global.dbRunner.resourceResponse.get(id).copy();\r
223                 return req.responseInteger;\r
224         }\r
225 }\r