- ~
- jbidwatcher
- trunk
- src
- com
- jbidwatcher
- util
- db
- DBTimeQueue.java
| DBTimeQueue.java |
|---|
mrs 1 package com.jbidwatcher.util.db; mrs 2 mrs 3 import java.util.List; mrs 4 import java.util.Date; mrs 5 mrs 6 /** mrs 7 * Created by IntelliJ IDEA. mrs 8 * User: Morgan mrs 9 * Date: Apr 4, 2009 mrs 10 * Time: 10:40:23 PM mrs 11 * mrs 12 * mrs 13 */ mrs 14 @SuppressWarnings({"unchecked"}) mrs 15 public class DBTimeQueue extends ActiveRecord { mrs 16 private void setRepeatCount(int howMany) { setInteger("repeat_count", howMany); } mrs 17 public int getRepeatCount() { return getInteger("repeat_count"); } mrs 18 private void setInterval(int repeat) { setInteger("repeat_interval", repeat); } mrs 19 public Integer getInterval() { return getInteger("repeat_interval"); } mrs 20 private void setFireAt(long when) { setDate("fire_at", new Date(when)); } mrs 21 private void setPayload(String payload) { setString("payload", payload); } mrs 22 public String getPayload() { return getString("payload"); } mrs 23 private void setDestination(String destination) { setString("destination", destination); } mrs 24 public String getDestination() { return getString("destination"); } mrs 25 mrs 26 public String toString() { mrs 27 StringBuffer sb = new StringBuffer("{ "); mrs 28 sb.append("destination => \"").append(getDestination()); mrs 29 sb.append("\", "); mrs 30 sb.append("payload => \"").append(getPayload()); mrs 31 sb.append("\", "); mrs 32 sb.append("fire_at => ").append(getDate("fire_at")); mrs 33 if (getInterval() != null && getInterval() != 0) { mrs 34 sb.append("\", "); mrs 35 sb.append("interval => ").append(getInterval()); mrs 36 sb.append("\", "); mrs 37 sb.append("repeat_count => ").append(getRepeatCount()); mrs 38 } mrs 39 sb.append(" }"); mrs 40 return sb.toString(); mrs 41 } mrs 42 mrs 43 public static DBTimeQueue addEvent(String destination, String payload, long when, int repeat, int howmany) { mrs 44 DBTimeQueue rval = new DBTimeQueue(); mrs 45 rval.setDestination(destination); mrs 46 rval.setPayload(payload); mrs 47 rval.setFireAt(when); mrs 48 rval.setInterval(repeat); mrs 49 rval.setRepeatCount(howmany); mrs 50 rval.saveDB(); mrs 51 mrs 52 return rval; mrs 53 } mrs 54 mrs 55 /*-*********************-*/ mrs 56 /* Database access stuff */ mrs 57 /*-*********************-*/ mrs 58 private static Table sDB = null; mrs 59 protected static String getTableName() { return "time_queue"; } mrs 60 mrs 61 protected Table getDatabase() { mrs 62 if (sDB == null) sDB = openDB(getTableName()); mrs 63 return sDB; mrs 64 } mrs 65 mrs 66 public static List<DBTimeQueue> getSorted() { mrs 67 return (List<DBTimeQueue>) findAllBy(DBTimeQueue.class, null, null, "fire_at"); mrs 68 } mrs 69 mrs 70 public static List<DBTimeQueue> getUnsorted() { mrs 71 return (List<DBTimeQueue>) findAllBy(DBTimeQueue.class, null, null); mrs 72 } mrs 73 mrs 74 public static boolean erase(Object destination, Object payload) { mrs 75 List<DBTimeQueue> targets; mrs 76 if(destination != null) { mrs 77 String[] keys = {"destination", "payload"}; mrs 78 String[] values = {destination.toString(), payload.toString()}; mrs 79 targets = (List<DBTimeQueue>) findAllMulti(DBTimeQueue.class, keys, values, null); mrs 80 } else { mrs 81 targets = (List<DBTimeQueue>) findAllBy(DBTimeQueue.class, "payload", payload.toString(), null); mrs 82 } mrs 83 boolean allDeleted = true; mrs 84 if(targets != null) { mrs 85 for (DBTimeQueue target : targets) { mrs 86 allDeleted = target.delete() && allDeleted; mrs 87 } mrs 88 } mrs 89 return allDeleted; mrs 90 } mrs 91 mrs 92 public static List<DBTimeQueue> allBefore(long fire_at) { mrs 93 return (List<DBTimeQueue>) findAllComparator(DBTimeQueue.class, "fire_at", "<=", formatDate(new Date(fire_at)), "fire_at ASC"); mrs 94 } mrs 95 }
Check out the code: svn co jbidwatcher/trunk/src/com/jbidwatcher/util/db/DBTimeQueue.java
