public int compareTo(Object o2) { return compare(this, o2); }
public boolean equals(Object obj) { if (this == obj) { return true; } return compareTo(obj) == 0; }
public int hashCode() { return getRecurrenceId().hashCode(); }
/** Generate a recurrence instance for the given master event * based on the recurrenceId and the date/time info in the master. * * @param master event * @param recurrenceId for the instance. * @return instance object filled in. * @throws CalFacadeException */ public static BwRecurrenceInstance fromRecurrencId(final BwEvent master, String recurrenceId) throws CalFacadeException { final String stzid = master.getDtstart().getTzid(); final boolean dateOnly = master.getDtstart().getDateType(); final BwDateTime rstart = BwDateTime.makeBwDateTime(dateOnly, recurrenceId, stzid); final BwDateTime rend = rstart.addDuration( BwDuration.makeDuration(master.getDuration())); final BwRecurrenceInstance ri = new BwRecurrenceInstance(); ri.setDtstart(rstart); ri.setDtend(rend); ri.setRecurrenceId(ri.getDtstart().getDate()); ri.setMaster(master); return ri; }
public String toString() { StringBuffer sb = new StringBuffer(); sb.append("BwRecurrenceInstance{dtStart="); sb.append(getDtstart()); sb.append(", dtEnd="); sb.append(getDtend()); sb.append(", recurrenceId="); sb.append(getRecurrenceId()); sb.append(", master="); sb.append(getMaster().getId()); if (getOverride() != null) sb.append("}"); return sb.toString(); } }
public int compare(Object o1, Object o2) { if (o1 == o2) { return 0; } if (!(o1 instanceof BwRecurrenceInstance)) { return -1; } if (!(o2 instanceof BwRecurrenceInstance)) { return 1; } BwRecurrenceInstance inst1 = (BwRecurrenceInstance)o1; BwRecurrenceInstance inst2 = (BwRecurrenceInstance)o2; /* Note we only check master + recurrenceid. The recurrence id is the key * to the entry. This does not take account of modifications to the object. */ int res = inst1.getMaster().compareTo(inst2.getMaster()); if (res != 0) { return res; } return inst1.getRecurrenceId().compareTo(inst2.getRecurrenceId()); }