OSDN Git Service

Resync Linked & shared notebook tables.
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / sql / SharedNotebookTable.java
index e6aab91..d14e34d 100644 (file)
@@ -135,6 +135,30 @@ public class SharedNotebookTable {
                        deletedTable.addDeletedItem(new Long(id).toString(), "SharedNotebook");\r
                }\r
        }\r
+       // Delete the notebook based on a id\r
+       public void expungeNotebookByGuid(String id, boolean needsSync) {\r
+               boolean check;\r
+        NSqlQuery query = new NSqlQuery(db.getConnection());\r
+\r
+               check = query.prepare("delete from SharedNotebook "\r
+                               +"where guid=:id");\r
+               if (!check) {\r
+                       logger.log(logger.EXTREME, "SharedNotebook SQL delete by notebook guid prepare has failed.");\r
+                       logger.log(logger.EXTREME, query.lastError().toString());\r
+               }\r
+               query.bindValue(":id", id);\r
+               check = query.exec();\r
+               if (!check) \r
+                       logger.log(logger.MEDIUM, "SharedNotebook delete by notebook guid failed.");\r
+               \r
+               // Signal the parent that work needs to be done\r
+               if  (needsSync) {\r
+                       DeletedTable deletedTable = new DeletedTable(logger, db);\r
+                       deletedTable.addDeletedItem(new Long(id).toString(), "SharedNotebook");\r
+               }\r
+       }\r
+\r
+       \r
        // Update a notebook\r
        public void updateNotebook(SharedNotebook tempNotebook, boolean isDirty) {\r
                boolean check;\r
@@ -145,9 +169,10 @@ public class SharedNotebookTable {
                \r
                SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");\r
                \r
+               StringBuilder serviceCreated = new StringBuilder(simple.format(tempNotebook.getServiceCreated()));                                              \r
         NSqlQuery query = new NSqlQuery(db.getConnection());\r
                check = query.prepare("Update SharedNotebook set id=:id, userid=:userid, notebookGuid=:notebook, "\r
-                               + "email=:email, notebookModifiable=:mod, requireLogin=:rlogin, serviceCreated=:created, "\r
+                               + "email=:email, notebookModifiable=:mod, requireLogin=:rlogin, serviceCreated=:serviceCreated, "\r
                                + "shareKey=:shareKey, username=:username, isDirty=:isdirty");\r
                query.bindValue(":id", tempNotebook.getId());\r
                query.bindValue(":userid", tempNotebook.getUserId());\r
@@ -155,11 +180,9 @@ public class SharedNotebookTable {
                query.bindValue(":email", tempNotebook.getEmail());\r
                query.bindValue(":mod", tempNotebook.isNotebookModifiable());\r
                query.bindValue(":rlogin", tempNotebook.isRequireLogin());\r
+               query.bindValue(":serviceCreated", serviceCreated.toString());\r
                query.bindValue(":shareKey", tempNotebook.getShareKey());\r
                query.bindValue(":username", tempNotebook.getUsername());\r
-\r
-               StringBuilder serviceCreated = new StringBuilder(simple.format(tempNotebook.getServiceCreated()));                                              \r
-               query.bindValue(":serviceCreated", serviceCreated.toString());\r
                \r
                query.bindValue(":isDirty", isDirty);\r
                \r
@@ -207,21 +230,64 @@ public class SharedNotebookTable {
                return index;\r
        }                       \r
 \r
-       // does a record exist?\r
-       public String findNotebookByName(String newname) {\r
-               \r
-               NSqlQuery query = new NSqlQuery(db.getConnection());\r
+       // Load notebooks from the database\r
+       public List<SharedNotebook> getForNotebook(String guid) {\r
+               SharedNotebook tempNotebook;\r
+               List<SharedNotebook> index = new ArrayList<SharedNotebook>();\r
+               boolean check;\r
+                                       \r
+        NSqlQuery query = new NSqlQuery(db.getConnection());\r
+                                       \r
+               check = query.prepare("Select id, userid, notebookGuid, email, notebookModifiable, requireLogin, " +\r
+                               "serviceCreated, "+\r
+                               "shareKey, username from SharedNotebook where notebookGuid=:notebookGuid ");\r
+               if (!check)\r
+                       logger.log(logger.EXTREME, "SharedNotebook getForNotebook SQL prepare has failed.");\r
+               query.bindValue(":notebookGuid", guid);\r
+               check = query.exec();\r
+               if (!check)\r
+                       logger.log(logger.EXTREME, "SharedNotebook getForNotebook SQL exec has failed.");\r
                \r
-               query.prepare("Select guid from sharednotebook where name=:newname");\r
-               query.bindValue(":newname", newname);\r
-               if (!query.exec())\r
-                       logger.log(logger.EXTREME, "notebook SQL retrieve has failed.");\r
-               String val = null;\r
-               if (query.next())\r
-                       val = query.valueString(0);\r
-               return val;\r
-       }\r
+               while (query.next()) {\r
+                       tempNotebook = new SharedNotebook();\r
+                       tempNotebook.setId(query.valueLong(0));\r
+                       tempNotebook.setUserId(query.valueInteger(1));\r
+                       tempNotebook.setNotebookGuid(query.valueString(2));\r
+                       tempNotebook.setEmail(query.valueString(3));\r
+                       tempNotebook.setNotebookModifiable(query.valueBoolean(4,false));\r
+                       tempNotebook.setRequireLogin(query.valueBoolean(5,true));\r
+                       DateFormat indfm = null;\r
+                       try {\r
+                               indfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");\r
+                       } catch (Exception e) { }\r
+                       try {\r
+                               tempNotebook.setServiceCreated(indfm.parse(query.valueString(6)).getTime());\r
+                       } catch (ParseException e) {\r
+                               e.printStackTrace();\r
+                       }\r
+                       tempNotebook.setShareKey(query.valueString(7));\r
+                       tempNotebook.setUsername(query.valueString(8));\r
 \r
+                       index.add(tempNotebook); \r
+               }       \r
+               return index;\r
+       }                       \r
+\r
+       \r
+       // Get a list of shared notebooks that need to be updated\r
+       public List <Long> getDirtyIds() {\r
+               List<Long> index = new ArrayList<Long>();\r
+               boolean check;  \r
+        NSqlQuery query = new NSqlQuery(db.getConnection());\r
+                                       \r
+               check = query.exec("Select id from SharedNotebook where isDirty = true");\r
+               if (!check) \r
+                       logger.log(logger.EXTREME, "SharedNotebook SQL retrieve has failed in getdirtyIds.");\r
+               while (query.next()) {\r
+                       index.add(query.valueLong(0));\r
+               }       \r
+               return index;   \r
+       }\r
 \r
 }\r
 \r