OSDN Git Service

c672286b914011e00bd616f3a256b967cf5642e6
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / sql / DeletedTable.java
1 /*\r
2  * This file is part of NixNote \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 \r
23 import java.util.ArrayList;\r
24 import java.util.List;\r
25 \r
26 import cx.fbn.nevernote.sql.driver.NSqlQuery;\r
27 import cx.fbn.nevernote.utilities.ApplicationLogger;\r
28 import cx.fbn.nevernote.utilities.ListManager;\r
29 \r
30 public class DeletedTable {\r
31         ListManager parent;\r
32         private final ApplicationLogger                 logger;\r
33         private final DatabaseConnection                db;\r
34 \r
35         \r
36         // Constructor\r
37         public DeletedTable(ApplicationLogger l,DatabaseConnection d) {\r
38                 logger = l;\r
39                 db = d;\r
40         }\r
41         // Create the table\r
42         public void createTable() {\r
43                 NSqlQuery query = new NSqlQuery(db.getConnection());\r
44                 logger.log(logger.HIGH, "Creating table DeletedItems...");\r
45         if (!query.exec("Create table DeletedItems (guid varchar primary key, type varchar)"))\r
46                 logger.log(logger.HIGH, "Table DeletedItems creation FAILED!!!"); \r
47         }\r
48         // Drop the table\r
49         public void dropTable() {\r
50                 NSqlQuery query = new NSqlQuery(db.getConnection());\r
51                 query.exec("Drop table DeletedItems");\r
52         }\r
53         // Add an item to the deleted table\r
54         public void addDeletedItem(String guid, String type) {\r
55                 if (exists(guid,type))\r
56                         return;\r
57         NSqlQuery query = new NSqlQuery(db.getConnection());\r
58                 query.prepare("Insert Into DeletedItems (guid, type) Values(:guid, :type)");\r
59                 query.bindValue(":guid", guid);\r
60                 query.bindValue(":type", type);\r
61                 if (!query.exec()) {\r
62                         logger.log(logger.MEDIUM, "Insert into deleted items failed.");\r
63                         logger.log(logger.MEDIUM, query.lastError());\r
64                 }\r
65         }\r
66         // Check if a record exists\r
67         public boolean exists(String guid, String type) {\r
68         NSqlQuery query = new NSqlQuery(db.getConnection());\r
69                 query.prepare("Select guid, type from DeletedItems where guid=:guid and type=:type");\r
70                 query.bindValue(":guid", guid);\r
71                 query.bindValue(":type", type);\r
72                 query.exec();\r
73                 if (!query.next()) {\r
74                         return false;\r
75                 }\r
76                 return true;\r
77         }\r
78         // Add an item to the deleted table\r
79         public void expungeDeletedItem(String guid, String type) {\r
80         NSqlQuery query = new NSqlQuery(db.getConnection());\r
81                 query.prepare("delete from DeletedItems where guid=:guid and type=:type");\r
82                 query.bindValue(":guid", guid);\r
83                 query.bindValue(":type", type);\r
84                 if (!query.exec()) {\r
85                         logger.log(logger.LOW, "Expunge deleted items failed.");\r
86                         logger.log(logger.LOW, query.lastError());\r
87                 }\r
88         }\r
89         public List<DeletedItemRecord> getAllDeleted() {\r
90                 logger.log(logger.HIGH, "Entering DeletedTable.getAllDeleted");\r
91                 List<DeletedItemRecord> list = new ArrayList<DeletedItemRecord>();\r
92                 NSqlQuery query = new NSqlQuery(db.getConnection());\r
93                 query.exec("Select guid, type from DeletedItems");\r
94                 while (query.next()) {\r
95                         DeletedItemRecord record = new DeletedItemRecord();\r
96                         record.guid = query.valueString(0);\r
97                         record.type = query.valueString(1);\r
98                         list.add(record);\r
99                 }\r
100                 logger.log(logger.HIGH, "Leaving DeletedTable.getAllDeleted");\r
101                 return list;\r
102 \r
103         }\r
104         public void expungeAllDeletedRecords() {\r
105                 NSqlQuery query = new NSqlQuery(db.getConnection());\r
106                 query.exec("delete from DeletedItems");\r
107         }\r
108 \r
109 }\r