Changeset 701

Show
Ignore:
Timestamp:
07/05/06 11:28:26
Author:
douglm
Message:

Fix aggregation

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • freebusy/trunk/webclient/src/org/bedework/fbaggregator/FBInfoSet.java

    r700 r701  
    5959                         "/ucaldav/user/testuser02")); 
    6060                         */ 
    61     /* 
    6261    addInfo(new FBUserInfo("douglm@rpi.edu", "douglm", "bedework", 
    6362                           "localhost", 8080, false, 
     
    6665                           "localhost", 8080, false, 
    6766                           "/ucaldav/user/johnsa")); 
    68                            */ 
     67                           /* 
    6968    addInfo(new FBUserInfo("testuser02", "testuser02", "bedework", 
    7069                           "www.bedework.org", 80, false, 
     
    7372                           "www.bedework.org", 80, false, 
    7473                           "/ucaldav/user/testuser08")); 
     74                           */ 
    7575  } 
    7676 
  • freebusy/trunk/webclient/src/org/bedework/fbaggregator/GetFreeBusy.java

    r700 r701  
    55 
    66import org.bedework.calfacade.BwDuration; 
     7import org.bedework.calfacade.BwFreeBusyComponent; 
    78import org.bedework.calfacade.util.CalFacadeUtil; 
     9import org.bedework.calfacade.util.Granulator.EventPeriod; 
    810import org.bedework.fbaggregator.FreeBusyAggregator.FbResponse; 
    911import org.bedework.fbclient.FBUserInfo; 
     
    117119 
    118120          /* null times for a failing response */ 
    119           if (resp.getStart() != null) { 
    120             allResponses.setStart(resp.getStart()); 
    121             allResponses.setEnd(resp.getEnd()); 
     121          if (resp.getStart() == null) { 
     122            continue; 
    122123          } 
    123124 
    124           allResponses.eps.addAll(resp.eps); 
     125          allResponses.setStart(resp.getStart()); 
     126          allResponses.setEnd(resp.getEnd()); 
     127 
     128          boolean first = false; 
     129 
     130          if (allResponses.eps.isEmpty()) { 
     131            first = true; 
     132          } 
     133 
     134          // Merge resp into allResponses - they should have the same start/end 
     135          Iterator allIt = allResponses.eps.iterator(); 
     136          Iterator respIt = resp.eps.iterator(); 
     137 
     138          while (respIt.hasNext()) { 
     139            EventPeriod respEp = (EventPeriod)respIt.next(); 
     140            EventPeriod allEp; 
     141            if (first) { 
     142              allResponses.eps.add(respEp); 
     143              allEp = respEp; 
     144            } else { 
     145              allEp = (EventPeriod)allIt.next(); 
     146 
     147              // Validity check 
     148              if (!allEp.getStart().equals(respEp.getStart()) || 
     149                  !allEp.getEnd().equals(respEp.getEnd())) { 
     150                form.getErr().emit("org.bedework.fbaggregator.syserror"); 
     151                break; 
     152              } 
     153            } 
     154 
     155            if ((respEp.getType() == BwFreeBusyComponent.typeBusy) || 
     156                (respEp.getType() == BwFreeBusyComponent.typeBusyUnavailable)) { 
     157              allEp.setNumBusy(allEp.getNumBusy() + 1); 
     158            } else if (respEp.getType() == BwFreeBusyComponent.typeBusyTentative) { 
     159              allEp.setNumTentative(allEp.getNumTentative() + 1); 
     160            } 
     161          } 
    125162        } 
    126163