avatar

590

Fix event logging; events were being referred to by entry_id, but we were filling in entry_id with the auction identifier.

by mrs, 07 Aug, 2008 05:09 PM
589 590  
884884   }
885885 
886886   private EventLogger getEvents() {
887     if(mEntryEvents == null) mEntryEvents = new EventLogger(get("id"), getTitle());
887     if(mEntryEvents == null) mEntryEvents = new EventLogger(getIdentifier(), getId(), getTitle());
888888     return mEntryEvents;
889889   }
890890 
------
931931         setComment(curElement.getContents());
932932         break;
933933       case 6:
934         mEntryEvents = new EventLogger(getIdentifier(), getTitle());
934         mEntryEvents = new EventLogger(getIdentifier(), getId(), getTitle());
935935         mEntryEvents.fromXML(curElement);
936936         break;
937937       case 7:
------
976976     if(isBidOn()) {
977977       XMLElement xbid = new XMLElement("bid");
978978       xbid.setEmpty();
979       xbid.setProperty("quantity", Integer.toString(getInteger("last_bid_quantity")));
979       xbid.setProperty("quantity", Integer.toString(getBidQuantity()));
980980       xbid.setProperty("currency", getBid().fullCurrencyName());
981981       xbid.setProperty("price", Double.toString(getBid().getValue()));
982982       if(mBidAt != 0) {
382 590  
3535   /** Records all status messages that are added.
3636    * 
3737    */
38   private String mId =null;
38   private String mIdentifier =null;
3939   private String mTitle =null;
40   private Integer mEntryId = null;
4041   private List<EventStatus> mAllEvents;
4142   private final EventStatus mNullEvent = new EventStatus("Nothing has happened.", new Date());
4243 
------
6566           if(entryField.getTagName().equals("date")) msgtime = Long.parseLong(entryField.getContents());
6667         }
6768 
68         EventStatus newEvent = new EventStatus(msg, new Date(msgtime), mId, mTitle);
69         EventStatus newEvent = new EventStatus(msg, new Date(msgtime), mEntryId, mIdentifier, mTitle);
6970         newEvent.setRepeatCount(curCount);
7071         newEvent.saveDB();
7172 
------
103104     return(xmlLog);
104105   }
105106 
106   public EventLogger(String identifier, String title) {
107     mId = identifier;
107   public EventLogger(String identifier, Integer entryId, String title) {
108     mIdentifier = identifier;
109     mEntryId = entryId;
108110     mTitle = title;
109     mNullEvent.setEntryId(mId);
111     mNullEvent.setEntryId(mEntryId);
112     mNullEvent.setAuctionIdentifier(mIdentifier);
110113     mNullEvent.setTitle(mTitle);
111114 
112     mAllEvents = EventStatus.findAllByEntry(mId);
115     mAllEvents = EventStatus.findAllByEntry(mEntryId, mIdentifier);
113116     if(mAllEvents == null) mAllEvents = new ArrayList<EventStatus>();
114117   }
115118 
------
133136       if(inStatus.equals(lastStatus.getMessage())) {
134137         lastStatus.setRepeatCount(lastStatus.getRepeatCount() + 1);
135138       } else {
136         whatHappened = new EventStatus(inStatus, new Date(), mId, mTitle);
139         whatHappened = new EventStatus(inStatus, new Date(), mEntryId, mIdentifier, mTitle);
137140 
138141         mAllEvents.add(whatHappened);
139142         ErrorManagement.logMessage(whatHappened.toString());
490 590  
2525  *
2626  */
2727 public class EventStatus extends ActiveRecord {
28   private String mAuctionIdentifier;
29 
2830   //  For ActiveRecord construction.
2931   public EventStatus() { }
3032 
------
3436     setRepeatCount(1);
3537   }
3638 
37   public EventStatus(String what, Date when, String id, String title) {
39   public EventStatus(String what, Date when, Integer entryId, String identifier, String title) {
3840     setMessage(what);
3941     setLoggedAt(when);
4042     setRepeatCount(1);
41     setEntryId(id);
43     setEntryId(entryId);
44     setAuctionIdentifier(identifier);
4245     setTitle(title);
4346   }
4447 
------
5356   public String toString() {
5457     String count = "";
5558     if (getRepeatCount() > 1) count = " (" + getRepeatCount() + ")";
56     String outStatus = getLoggedAt() + ": " + getEntryId() + " (" + getTitle() + ") - " + getMessage() + count;
59     String outStatus = getLoggedAt() + ": " + getAuctionIdentifier() + " (" + getTitle() + ") - " + getMessage() + count;
5760 
5861     return(outStatus);
5962   }
------
8083     return (EventStatus) ActiveRecord.findFirstBy(EventStatus.class, "id", Integer.toString(id));
8184   }
8285 
83   public static List<EventStatus> findAllByEntry(String entry_id) {
84     List<ActiveRecord> records = ActiveRecord.findAllBy(EventStatus.class, "entry_id", entry_id, "created_at ASC");
86   public static List<EventStatus> findAllByEntry(Integer entryId, String identifier) {
87     List<ActiveRecord> records = ActiveRecord.findAllBy(EventStatus.class, "entry_id", Integer.toString(entryId), "created_at ASC");
8588 
8689     if(records != null) {
8790       List<EventStatus> results = new ArrayList<EventStatus>(records.size());
8891       for(ActiveRecord record : records) {
89         results.add((EventStatus)record);
92         EventStatus es = (EventStatus)record;
93         es.setAuctionIdentifier(identifier);
94         results.add(es);
9095       }
9196 
9297       return results;
------
9499     return null;
95100   }
96101 
102   private String getAuctionIdentifier() {
103     return mAuctionIdentifier;
104   }
105 
106   public void setAuctionIdentifier(String identifier) {
107     mAuctionIdentifier = identifier;
108   }
109 
97110   public String getMessage() { return getString("message"); }
98111   public Date getLoggedAt() { return getDate("created_at"); }
99   public int getRepeatCount() { return getInteger("repeat_count"); }
112   public int getRepeatCount() { return getInteger("repeat_count", 1); }
100113   public String getTitle() { return getString("title"); }
101114   public String getEntryId() { return getString("entry_id"); }
102115 
------
104117   public void setLoggedAt(Date loggedAt) { setDate("created_at", loggedAt); }
105118   public void setRepeatCount(int repeatCount) { setInteger("repeat_count", repeatCount); }
106119   public void setTitle(String title) { setString("title", title); }
107   public void setEntryId(String entryId) { setString("entry_id", entryId); }
120   public void setEntryId(Integer entryId) { setInteger("entry_id", entryId); }
108121 
109122   public boolean deleteForEntry(int id) {
110123     return deleteAllEntries(Integer.toString(id));