Author: jflesch
Date: 2007-08-15 13:07:53 +0000 (Wed, 15 Aug 2007)
New Revision: 14693

Modified:
   trunk/apps/Thaw/src/thaw/plugins/index/Index.java
   trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
Log:
When refreshing an index, don't delete the files / links with the flag 
'dontDelete' set to true

Modified: trunk/apps/Thaw/src/thaw/plugins/index/Index.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/Index.java   2007-08-15 12:51:38 UTC 
(rev 14692)
+++ trunk/apps/Thaw/src/thaw/plugins/index/Index.java   2007-08-15 13:07:53 UTC 
(rev 14693)
@@ -297,8 +297,8 @@

                                PreparedStatement st;

-                               purgeFileList();
-                               purgeLinkList();
+                               purgeFileList(false);
+                               purgeLinkList(false);
                                purgeCommentKeys();

                                st = 
db.getConnection().prepareStatement("DELETE FROM indexParents "+
@@ -319,12 +319,26 @@
        }


+       /**
+        * call purgeLinkList(false)
+        */
        public void purgeLinkList() {
+               purgeLinkList(false);
+       }
+
+       public void purgeLinkList(boolean useDontDelete) {
                synchronized(db.dbLock) {

                        try {
                                final Connection c = db.getConnection();
-                               final PreparedStatement st = 
c.prepareStatement("DELETE FROM links WHERE indexParent = ?");
+                               final PreparedStatement st;
+
+                               if (!useDontDelete)
+                                       st = c.prepareStatement("DELETE FROM 
links WHERE indexParent = ?");
+                               else
+                                       st = c.prepareStatement("DELETE FROM 
links WHERE indexParent = ? "+
+                                                               "AND dontDelete 
= FALSE");
+
                                st.setInt(1, getId());
                                st.execute();
                        } catch(final SQLException e) {
@@ -333,11 +347,23 @@
                }
        }

+       /**
+        * call purgeFileList(false)
+        */
        public void purgeFileList() {
+               purgeFileList(false);
+       }
+
+       public void purgeFileList(boolean useDontDelete) {
                synchronized(db.dbLock) {
                        try {
                                final Connection c = db.getConnection();
-                               final PreparedStatement st = 
c.prepareStatement("DELETE FROM files WHERE indexParent = ?");
+                               final PreparedStatement st;
+
+                               if (!useDontDelete)
+                                       st = c.prepareStatement("DELETE FROM 
files WHERE indexParent = ?");
+                               else
+                                       st = c.prepareStatement("DELETE FROM 
files WHERE indexParent = ? AND dontDelete = FALSE");
                                st.setInt(1, getId());
                                st.execute();
                        } catch(final SQLException e) {
@@ -1045,10 +1071,16 @@

        }

+       /**
+        * call purgeIndex(true)
+        */
+       public void purgeIndex() {
+               purgeIndex(true);
+       }

-       public void purgeIndex() {
-               purgeFileList();
-               purgeLinkList();
+       public void purgeIndex(boolean useDontDelete) {
+               purgeFileList(useDontDelete);
+               purgeLinkList(useDontDelete);
                purgeCommentKeys();
        }


Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java   
2007-08-15 12:51:38 UTC (rev 14692)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java   
2007-08-15 13:07:53 UTC (rev 14693)
@@ -1208,10 +1208,17 @@

                synchronized(db.dbLock) {
                        try {
-                               selectSt = 
db.getConnection().prepareStatement("SELECT id from files WHERE indexParent = ? 
AND LOWER(filename) LIKE ? LIMIT 1");
+                               selectSt = 
db.getConnection().prepareStatement("SELECT id from files "+
+                                                                              
"WHERE indexParent = ? "+
+                                                                              
" AND LOWER(filename) LIKE ? "+
+                                                                              
"LIMIT 1");
                                st = 
db.getConnection().prepareStatement("INSERT INTO files "+
-                                                                        "(id, 
filename, publicKey, localPath, mime, size, category, indexParent, dontDelete) 
"+
-                                                                        
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, TRUE)");
+                                                                        "(id, 
filename, publicKey, "+
+                                                                        " 
localPath, mime, size, "+
+                                                                        " 
category, indexParent, dontDelete) "+
+                                                                        
"VALUES (?, ?, ?, "+
+                                                                        " ?, 
?, ?, "+
+                                                                        " ?, 
?, TRUE)");
                                nextId = DatabaseManager.getNextId(db, "files");

                                if (nextId < 0)
@@ -1399,8 +1406,8 @@

                                st = 
db.getConnection().prepareStatement("INSERT INTO files "+
                                                                         "(id, 
filename, publicKey, localPath, "+
-                                                                        " 
mime, size, category, indexParent) "+
-                                                                        
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
+                                                                        " 
mime, size, category, indexParent, dontDelete) "+
+                                                                        
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, TRUE)");
                                nextId = DatabaseManager.getNextId(db, "files");

                                if (nextId < 0)


Reply via email to