Calendar.java


Below is the syntax highlighted version of Calendar.java.


/*
 * Name: Jude Nelson
 * Precept: P01B, P07A
 * Login: jcnelson
 * 
 * This is the Calendar class solution.
 */
public class Calendar {
  // calendar ST that maps dates to days
  private ST<Integer, Day> cal;
  
  // make a new calendar
  public Calendar() {
    this.cal = new ST<Integer, Day>();
  }
  
  // schedule an event
  public void schedule(int date, Event ev) {
    if( this.cal.contains( date ) ) {
      // already have a day on this date; add the event to it
      this.cal.get(date).addEvent( ev );
    }
    else {
      // no day on this date; make a day and add the event
      Day nd = new Day();
      nd.addEvent( ev );
      this.cal.put(date, nd);
    }
  }
  
  // print our calendar out
  public void show() {
    for( int date : cal ) {
      StdOut.println(date);
      cal.get(date).show();
      StdOut.println();
    }
  }
  
  // test main for Calendar
  public static void main(String[] args) { 
    // set up some events
    Event ev1 = new Event(1000, 1050, "COS126 exam");
    Event ev2 = new Event(1230, 1320, "COS126 precept exam");
    Event ev3 = new Event(1200, 1300, "lunch with Bob");
    Event ev4 = new Event(1000, 1050, "COS126 lecture");
    Event ev5 = new Event(1230, 1320, "COS126 precept");
    // set up some dates
    int d1 = 20120501;
    int d2 = 20120503;
    Calendar c = new Calendar();
    c.schedule(d1, ev2);
    c.schedule(d1, ev1);
    c.schedule(d2, ev3);
    c.schedule(d2, ev4);
    c.schedule(d2, ev5);
    // Output the events for each date
    c.show();
  }
  
}