Changeset 365

Show
Ignore:
Timestamp:
04/12/06 01:15:22
Author:
douglm
Message:

Freebusy fixes.

Remove some more use of Vector

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/calendar3/appcommon/src/org/bedework/appcommon/MyCalendarVO.java

    r278 r365  
    471471    firstDay.set(Calendar.DAY_OF_MONTH, 
    472472                 calendar.getMinimum(Calendar.DAY_OF_MONTH)); 
     473    firstDay.set(Calendar.HOUR_OF_DAY, 0); 
     474    firstDay.set(Calendar.MINUTE, 0); 
     475    firstDay.set(Calendar.SECOND, 0); 
     476    firstDay.set(Calendar.MILLISECOND, 0); 
    473477    return new MyCalendarVO(firstDay, calInfo.getLocale()); 
    474478  } 
     
    485489    c.add(Calendar.MONTH, 1); 
    486490    c.add(Calendar.DATE, -1); 
     491    c.set(Calendar.HOUR_OF_DAY, 0); 
     492    c.set(Calendar.MINUTE, 0); 
     493    c.set(Calendar.SECOND, 0); 
     494    c.set(Calendar.MILLISECOND, 0); 
    487495    return new MyCalendarVO(c, calInfo.getLocale()); 
    488496  } 
     
    496504    Calendar firstDay = (Calendar)calendar.clone(); 
    497505    firstDay.set(Calendar.DAY_OF_WEEK, calInfo.getFirstDayOfWeek()); 
     506    firstDay.set(Calendar.HOUR_OF_DAY, 0); 
     507    firstDay.set(Calendar.MINUTE, 0); 
     508    firstDay.set(Calendar.SECOND, 0); 
     509    firstDay.set(Calendar.MILLISECOND, 0); 
    498510    return new MyCalendarVO(firstDay, calInfo.getLocale()); 
    499511  } 
     
    509521    c.add(Calendar.WEEK_OF_YEAR, 1); 
    510522    c.add(Calendar.DATE, -1); 
     523    c.set(Calendar.HOUR_OF_DAY, 0); 
     524    c.set(Calendar.MINUTE, 0); 
     525    c.set(Calendar.SECOND, 0); 
     526    c.set(Calendar.MILLISECOND, 0); 
    511527    return new MyCalendarVO(c, calInfo.getLocale()); 
    512528  } 
  • trunk/calendar3/calFacade/src/org/bedework/calfacade/BwFreeBusyComponent.java

    r2 r365  
    5555 
    5656import java.io.Serializable; 
     57import java.util.ArrayList; 
    5758import java.util.Collection; 
    5859import java.util.Iterator; 
    59 import java.util.Vector; 
    6060 
    6161import net.fortuna.ical4j.model.Period; 
     
    8383  /** Collection of Period 
    8484   */ 
    85   private Vector periods; 
     85  private ArrayList periods; 
    8686 
    8787  /** Constructor 
     
    111111  public Collection getPeriods() { 
    112112    if (periods == null) { 
    113       periods = new Vector(); 
     113      periods = new ArrayList(); 
    114114    } 
    115115    return periods; 
  • trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/TimeRange.java

    r2 r365  
    5757import org.bedework.calfacade.BwDateTime; 
    5858 
     59import net.fortuna.ical4j.model.property.DateProperty; 
    5960import net.fortuna.ical4j.model.Property; 
    6061 
     
    133134   */ 
    134135  public boolean matches(Property candidate) { 
     136    if (!(candidate instanceof DateProperty)) { 
     137      return false; 
     138    } 
     139 
    135140    // XXX later 
    136141    return true; 
  • trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/filter/CompFilter.java

    r2 r365  
    5858import edu.rpi.cct.webdav.servlet.common.WebdavUtils; 
    5959 
     60import java.util.ArrayList; 
     61import java.util.Collection; 
    6062import java.util.Iterator; 
    61 import java.util.Vector; 
    6263 
    6364import org.apache.log4j.Logger; 
     
    7576  private TimeRange timeRange; 
    7677 
    77   private Vector compFilters; 
    78  
    79   private Vector propFilters; 
     78  private Collection compFilters; 
     79 
     80  private Collection propFilters; 
    8081 
    8182  /** Constructor 
     
    131132   * @return Vector of comp filters 
    132133   */ 
    133   public Vector getCompFilters() { 
     134  public Collection getCompFilters() { 
    134135    if (compFilters == null) { 
    135       compFilters = new Vector(); 
     136      compFilters = new ArrayList(); 
    136137    } 
    137138 
     
    156157   * @return Vector of prop filter 
    157158   */ 
    158   public Vector getPropFilters() { 
     159  public Collection getPropFilters() { 
    159160    if (propFilters == null) { 
    160       propFilters = new Vector(); 
     161      propFilters = new ArrayList(); 
    161162    } 
    162163 
  • trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/filter/Filter.java

    r310 r365  
    7070import edu.rpi.sss.util.xml.XmlUtil; 
    7171 
     72import java.util.ArrayList; 
    7273import java.util.Collection; 
    7374import java.util.Iterator; 
    74 import java.util.Vector; 
    7575import javax.servlet.http.HttpServletResponse; 
    7676 
     
    236236 
    237237    if (!"VCALENDAR".equals(cfltr.getName())) { 
    238       return new Vector(); 
     238      return new ArrayList(); 
    239239    } 
    240240 
     
    262262      if ((calTimerange != null) && 
    263263          (calTimerange.getStart().after(calTimerange.getEnd()))) { 
    264         return new Vector(); 
     264        return new ArrayList(); 
    265265      } 
    266266 
     
    274274        eventq.trange = calTimerange; 
    275275      } else { 
    276         Vector subcfs = cfltr.getCompFilters(); 
    277         CompFilter subcf = (CompFilter)subcfs.firstElement(); 
     276        Collection subcfs = cfltr.getCompFilters(); 
     277        CompFilter subcf = (CompFilter)subcfs.iterator().next(); 
    278278 
    279279        if ("VEVENT".equals(subcf.getName())) { 
     
    287287            postFilterNeeded = true; 
    288288            if (eventFilters == null) { 
    289               eventFilters = new Vector(); 
     289              eventFilters = new ArrayList(); 
    290290            } 
    291291            eventFilters.addAll(subcf.getPropFilters()); 
     
    293293 
    294294          if (eventq == null) { 
    295             return new Vector(); 
     295            return new ArrayList(); 
    296296          } 
    297297        } else { 
     
    299299             Collection 
    300300           */ 
    301           return new Vector(); 
     301          return new ArrayList(); 
    302302        } 
    303303      } 
     
    305305 
    306306    if (eventq == null) { 
    307       return new Vector(); 
     307      return new ArrayList(); 
    308308    } 
    309309 
     
    369369    // Currently only handle VCALENDAR for top level. 
    370370    if (!"VCALENDAR".equals(cfltr.getName())) { 
    371       return new Vector(); 
    372     } 
    373  
    374     Vector filtered = new Vector(); 
     371      return new ArrayList(); 
     372    } 
     373 
     374    ArrayList filtered = new ArrayList(); 
    375375    Iterator it = nodes.iterator(); 
    376376    while (it.hasNext()) { 
     
    419419   * and provide conditions for the query. 
    420420   * 
    421    * @param cfs 
     421   * @param cfs    Collection 
    422422   * @param globaltr 
    423423   * @return EventQuery    defining query or null if nothing could be 
     
    425425   * @throws WebdavException 
    426426   */ 
    427   private EventQuery buildEventQuery(Vector cfs, 
     427  private EventQuery buildEventQuery(Collection cfs, 
    428428                                     TimeRange globaltr) throws WebdavException { 
    429429    Iterator it = cfs.iterator(); 
     
    468468      } 
    469469 
    470       Vector propFilters = cf.getPropFilters(); 
     470      Collection propFilters = cf.getPropFilters(); 
    471471 
    472472      if (eq.propFilters == null) { 
     
    484484    TimeRange trange; 
    485485 
    486     Vector propFilters; 
     486    Collection propFilters; 
    487487 
    488488    /* true if we have to postfilter the result obtained via a search 
  • trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/filter/PropFilter.java

    r2 r365  
    5858import edu.rpi.cct.webdav.servlet.shared.WebdavException; 
    5959 
     60import java.util.ArrayList; 
     61import java.util.Collection; 
    6062import java.util.Iterator; 
    61 import java.util.Vector; 
    6263 
    6364import net.fortuna.ical4j.model.Component; 
     
    8182  private TextMatch match; 
    8283 
    83   private Vector paramFilters; 
     84  private ArrayList paramFilters; 
    8485 
    8586  /** Constructor 
     
    178179 
    179180  /** 
    180    * @return Vector 
    181    */ 
    182   public Vector getParamFilters() { 
     181   * @return Collection 
     182   */ 
     183  public Collection getParamFilters() { 
    183184    if (paramFilters == null) { 
    184       paramFilters = new Vector(); 
     185      paramFilters = new ArrayList(); 
    185186    } 
    186187 
  • trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java

    r363 r365  
    10471047      } 
    10481048 
    1049       Collection evs = getEvents(sub, null, start, end, CalFacadeDefs.retrieveRecurExpanded); 
     1049      Collection evs = getEvents(sub, null, start, end, 
     1050                                 CalFacadeDefs.retrieveRecurExpanded); 
    10501051 
    10511052      try { 
  • trunk/calendar3/webadmin/src/org/bedework/webadmin/event/PEUpdateEventAction.java

    r300 r365  
    123123       * guid must be set to null to avoid dup guid. 
    124124       */ 
    125       EventInfo ei = form.fetchSvci().getEvent(event.getId()); 
     125      EventInfo ei = fetchEvent(event, form); 
    126126      BwEvent evcopy = new BwEventObj(); 
    127127      ei.getEvent().shallowCopyTo(evcopy); 
  • trunk/calendar3/webclient/src/org/bedework/webclient/BwAccessAction.java

    r314 r365  
    137137      } 
    138138    } else { 
    139       EventInfo ei = svci.getEvent(id); 
     139      EventInfo ei = findEvent(request, form); 
    140140 
    141141      if (ei == null) { 
  • trunk/calendar3/webclient/src/org/bedework/webclient/BwFreeBusyAction.java

    r119 r365  
    5656 
    5757//import org.bedework.calfacade.BwDateTime; 
     58import org.bedework.appcommon.MyCalendarVO; 
    5859import org.bedework.calfacade.BwFreeBusy; 
    5960import org.bedework.calfacade.BwFreeBusyComponent; 
    6061import org.bedework.calfacade.BwUser; 
    6162import org.bedework.calfacade.CalFacadeUtil; 
     63import org.bedework.calfacade.ifs.CalTimezones; 
    6264import org.bedework.calsvci.CalSvcI; 
    6365 
     
    7375 * <p>Request parameters - all optional:<ul> 
    7476 *      <li>  userid:   whose free busy we want - default to current user</li>. 
    75  *      <li>  calendar: name of the calendar - default to main calendar</li>. 
     77 *      <li>  calendar: name of the calendar - default to subscriptions 
     78 *                      specified by user</li>. 
    7679 *      <li>  start:    start of period - default to beginning of this week</li>. 
    7780 *      <li>  end:      end of period - default to end of this week</li>. 
    78  *      <li>  interval: default entire period or a number</li>. 
     81 *      <li>  interval: default entire period or a multiplier</li>. 
    7982 *      <li>  intunit:  default to hours, "minutes", "hours, "days", "weeks" 
    8083 *                      "months"</li>. 
    8184 * </ul> 
     85 * <p>e.g interval=30 and intunit="minutes" means half hour intervals 
    8286 * <p>Forwards to:<ul> 
    8387 *      <li>"doNothing"    input error or we want to ignore the request.</li> 
     
    96100  public String doAction(HttpServletRequest request, 
    97101                         BwActionForm form) throws Throwable { 
    98     String userId = request.getParameter("userid"); 
    99102    BwUser user; 
    100103    CalSvcI svci = form.fetchSvci(); 
     104    String userId = getReqPar(request, "userid"); 
    101105 
    102106    if (userId != null) { 
     
    110114    } 
    111115 
    112     Calendar start = Calendar.getInstance(request.getLocale()); 
     116    MyCalendarVO today = form.getToday(); 
     117    MyCalendarVO thisWeek = today.getFirstDayOfThisWeek(); 
     118    Calendar start = thisWeek.getCalendar(); 
    113119    //BwDateTime startDt = form.getEventStartDate().getDateTime(); 
    114120 
    115     Calendar end = Calendar.getInstance(request.getLocale()); 
     121    Calendar end = thisWeek.getNextWeek().getCalendar(); 
    116122    //BwDateTime endDt = form.getEventEndDate().getDateTime(); 
    117123 
    118     int interval = 1; 
    119     String intstr = request.getParameter("interval"); 
    120  
    121     if (intstr != null) { 
    122       try { 
    123         interval = Integer.parseInt(intstr); 
    124       } catch (Throwable t) { 
    125         form.getErr().emit("org.bedework.client.error.badinterval"); 
    126         return "error"; 
    127       } 
    128     } 
    129  
     124    int interval = getIntReqPar(request, "interval", 1); 
    130125    if (interval <= 0) { 
    131126      form.getErr().emit("org.bedework.client.error.badinterval"); 
     
    134129 
    135130    int intunit = Calendar.HOUR; 
    136     String intunitStr = request.getParameter("intunit"); 
     131    String intunitStr = getReqPar(request, "intunit"); 
    137132 
    138133    if (intunitStr != null) { 
     
    154149 
    155150    //int maxRequests = 1000; 
     151    CalTimezones tzs = svci.getTimezones(); 
    156152 
    157153    BwFreeBusy fb = null; 
     
    165161      } 
    166162      BwFreeBusy fb1 = svci.getFreeBusy(null, user, 
    167                           CalFacadeUtil.getDateTime(sdt, false, true, 
    168                                                     svci.getTimezones()), 
     163                          CalFacadeUtil.getDateTime(sdt, false, true, tzs), 
    169164                          CalFacadeUtil.getDateTime(start.getTime(), false, true, 
    170                                                     svci.getTimezones())); 
     165                                                    tzs)); 
    171166 
    172167      if (fb == null) { 
     
    184179    } 
    185180 
    186     fb.setEnd(form.getEventEndDate().getDateTime()); 
     181    fb.setEnd(CalFacadeUtil.getDateTime(end.getTime(), false, false, tzs)); 
    187182 
    188183    form.assignFreeBusy(fb); 
  • trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java

    r362 r365  
    6161import org.bedework.calfacade.BwCalendar; 
    6262import org.bedework.calfacade.BwCategory; 
     63import org.bedework.calfacade.BwEvent; 
    6364import org.bedework.calfacade.BwLocation; 
    6465import org.bedework.calfacade.BwSponsor; 
     
    391392    } else if (debug) { 
    392393      debugMsg("Get event by guid found " + ev.getEvent()); 
     394    } 
     395 
     396    return ev; 
     397  } 
     398 
     399  /** Refetch an event givena copy of that event. Calnedar guid and possibly 
     400   * recurrecne id must be set. 
     401   * 
     402   * @param event   BwEvent to refetch 
     403   * @param form 
     404   * @return EventInfo or null if not found 
     405   * @throws Throwable 
     406   */ 
     407  protected EventInfo fetchEvent(BwEvent event, 
     408                                 BwActionFormBase form) throws Throwable { 
     409    CalSvcI svci = form.fetchSvci(); 
     410    EventInfo ev = null; 
     411    BwSubscription sub = null; 
     412 
     413    BwCalendar cal = event.getCalendar(); 
     414 
     415    if (cal == null) { 
     416      // Assume no access 
     417      form.getErr().emit("org.bedework.client.error.noaccess"); 
     418      return null; 
     419    } 
     420 
     421    String guid = event.getGuid(); 
     422 
     423    if (guid == null) { 
     424      // Assume no access 
     425      form.getErr().emit("org.bedework.client.error.noaccess"); 
     426      return null; 
     427    } 
     428 
     429    String rid = event.getRecurrence().getRecurrenceId(); 
     430 
     431    // XXX is this right? 
     432    int retMethod = CalFacadeDefs.retrieveRecurMaster; 
     433    Collection evs = svci.getEvent(sub, cal, guid, rid, retMethod); 
     434    if (debug) { 
     435      debugMsg("Get event by guid found " + evs.size()); 
     436    } 
     437    if (evs.size() == 1) { 
     438      ev = (EventInfo)evs.iterator().next(); 
     439    } else { 
     440      // XXX this needs dealing with 
     441    } 
     442 
     443    if (ev == null) { 
     444      form.getErr().emit("org.bedework.client.error.nosuchevent", /*eid*/guid); 
     445      return null; 
     446    } else if (debug) { 
     447      debugMsg("Fetch event found " + ev.getEvent()); 
    393448    } 
    394449