plements ICalendarFactory {
                            @Override  public Calendar newCalendar() {
                                return new GanttCalendar(...);
                            }
                        }                                                                
                        public Date adjustLeft(ICalendarFactory factory, Date d) {
                            Calendar c = factory.newCalendar();
                            while (c.get(Calendar.DAY_OF_WEEK) != c.getFirstDayOfWe