Author: dbkr
Date: 2006-07-17 11:31:07 +0000 (Mon, 17 Jul 2006)
New Revision: 9643

Added:
   trunk/apps/Freemail/src/freemail/RTSLog.java
Log:
D'oh.


Added: trunk/apps/Freemail/src/freemail/RTSLog.java
===================================================================
--- trunk/apps/Freemail/src/freemail/RTSLog.java        2006-07-17 07:56:31 UTC 
(rev 9642)
+++ trunk/apps/Freemail/src/freemail/RTSLog.java        2006-07-17 11:31:07 UTC 
(rev 9643)
@@ -0,0 +1,71 @@
+package freemail;
+
+import java.util.Date;
+import java.util.Set;
+import java.util.Iterator;
+import java.io.File;
+
+import freemail.utils.PropsFile;
+import freemail.utils.DateStringFactory;
+
+public class RTSLog {
+       PropsFile logfile;
+       private static String NEXTID = "nextid-";
+       private static String PASSES = "passes-";
+
+       public RTSLog(File f) {
+               this.logfile = new PropsFile(f);
+       }
+       
+       public int getPasses(String day) {
+               String val = this.logfile.get(PASSES+day);
+               
+               if (val == null)
+                       return 0;
+               else
+                       return Integer.parseInt(val);
+       }
+       
+       public void incPasses(String day) {
+               this.logfile.put(PASSES+day, 
Integer.toString(this.getPasses(PASSES+day) + 1));
+       }
+       
+       public void pruneBefore(Date keepafter) {
+               Set props = this.logfile.listProps();
+               
+               Iterator i = props.iterator();
+               while (i.hasNext()) {
+                       String cur = (String)i.next();
+                       
+                       String datestr;
+                       if (cur.startsWith(PASSES)) {
+                               datestr = cur.substring(PASSES.length());
+                       } else if (cur.startsWith(NEXTID)) {
+                               datestr = cur.substring(NEXTID.length());
+                       } else {
+                               continue;
+                       }
+                       
+                       Date logdate = 
DateStringFactory.DateFromKeyString(datestr);
+                       if (logdate == null) {
+                               // couldn't parse the date... hmm
+                               this.logfile.remove(cur);
+                       } else if (logdate.before(keepafter)) {
+                               this.logfile.remove(cur);
+                       }
+               }
+       }
+       
+       public int getNextId(String day) {
+               String nid = this.logfile.get(NEXTID+day);
+               if (nid == null) {
+                       return 1;
+               } else {
+                       return Integer.parseInt(nid);
+               }
+       }
+       
+       public void incNextId(String day) {
+               this.logfile.put(NEXTID+day, 
Integer.toString(this.getNextId(day) + 1));
+       }
+}


Reply via email to