OSDN Git Service

NixNoteのUpgradeDbメソッドを不要部分を削除。
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / sql / WatchFolderTable.java
1 /*\r
2  * This file is part of NixNote/NeighborNote \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 WatchFolderTable {\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 WatchFolderTable(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 WatchFolder...");\r
45         if (!query.exec("Create table WatchFolders (folder varchar primary key, notebook varchar," +\r
46                         "keep boolean, depth integer)"));\r
47                 logger.log(logger.HIGH, "Table WatchFolders creation FAILED!!!"); \r
48         }\r
49         // Drop the table\r
50         public void dropTable() {\r
51                 NSqlQuery query = new NSqlQuery(db.getConnection());\r
52                 query.exec("Drop table WatchFolders");\r
53         }\r
54         // Add an folder\r
55         public void addWatchFolder(String folder, String notebook, boolean keep, int depth) {\r
56                 if (exists(folder))\r
57                         expungeWatchFolder(folder);\r
58         NSqlQuery query = new NSqlQuery(db.getConnection());\r
59                 query.prepare("Insert Into WatchFolders (folder, notebook, keep, depth) " +\r
60                                 "values (:folder, :notebook, :keep, :depth)");\r
61                 query.bindValue(":folder", folder);\r
62                 query.bindValue(":notebook", notebook);\r
63                 query.bindValue(":keep", keep);\r
64                 query.bindValue(":depth", depth);\r
65                 if (!query.exec()) {\r
66                         logger.log(logger.MEDIUM, "Insert into WatchFolder failed.");\r
67                 }\r
68         }\r
69         // Add an folder\r
70         public boolean exists(String folder) {\r
71         NSqlQuery query = new NSqlQuery(db.getConnection());\r
72                 query.prepare("Select folder from WatchFolders where folder=:folder ");\r
73                 query.bindValue(":folder", folder);\r
74                 query.exec();\r
75                 if (!query.next()) \r
76                         return false;\r
77                 else\r
78                         return true;\r
79         }\r
80 \r
81         // remove an folder\r
82         public void expungeWatchFolder(String folder) {\r
83         NSqlQuery query = new NSqlQuery(db.getConnection());\r
84                 query.prepare("delete from WatchFolders where folder=:folder");\r
85                 query.bindValue(":folder", folder);\r
86                 if (!query.exec()) {\r
87                         logger.log(logger.MEDIUM, "Expunge WatchFolder failed.");\r
88                         logger.log(logger.MEDIUM, query.lastError());\r
89                 }\r
90         }\r
91         public void expungeAll() {\r
92         NSqlQuery query = new NSqlQuery(db.getConnection());\r
93                 if (!query.exec("delete from WatchFolders")) {\r
94                         logger.log(logger.MEDIUM, "Expunge all WatchFolder failed.");\r
95                         logger.log(logger.MEDIUM, query.lastError());\r
96                 }\r
97         }\r
98         public List<WatchFolderRecord> getAll() {\r
99                 logger.log(logger.HIGH, "Entering RWatchFolders.getAll");\r
100                 \r
101                 List<WatchFolderRecord> list = new ArrayList<WatchFolderRecord>();\r
102                 NSqlQuery query = new NSqlQuery(db.getConnection());\r
103                 query.exec("Select folder, (select name from notebook where guid = notebook), keep, depth from WatchFolders");\r
104                 while (query.next()) {\r
105                         WatchFolderRecord record = new WatchFolderRecord();\r
106                         record.folder = query.valueString(0);\r
107                         record.notebook = query.valueString(1);\r
108                         record.keep = new Boolean(query.valueString(2));\r
109                         record.depth = new Integer(query.valueString(3));\r
110                         list.add(record);\r
111                 }\r
112                 logger.log(logger.HIGH, "Leaving RWatchFolders.getAll");\r
113                 return list;\r
114 \r
115         }\r
116         \r
117         public String getNotebook(String dir) {\r
118                 logger.log(logger.HIGH, "Entering RWatchFolders.getNotebook");\r
119                 NSqlQuery query = new NSqlQuery(db.getConnection());\r
120                 query.prepare("Select notebook from WatchFolders where folder=:dir");\r
121                 query.bindValue(":dir", dir);\r
122                 query.exec();\r
123                 String response = null;\r
124                 while (query.next()) {\r
125                         response = query.valueString(0);\r
126                 }\r
127                 logger.log(logger.HIGH, "Leaving RWatchFolders.getNotebook");\r
128                 return response;\r
129 \r
130         }\r
131 }\r