[ Team LiB ] Previous Section Next Section

Report.java

import java.util.*;

public class Report {
    public Report() {
    }

    Hashtable offeringToName = new Hashtable();

    public void populateMap() throws Exception {
        Collection schedules = Schedule.all();
        for (Iterator eachSchedule = schedules.iterator();
            eachSchedule.hasNext();)
        {
            Schedule schedule = (Schedule) eachSchedule.next();

            for (Iterator each = schedule.schedule.iterator();
                each.hasNext(); )
            {
                Offering offering = (Offering) each.next();
                populateMapFor(schedule, offering);
            }
        }
    }

    private void populateMapFor(Schedule schedule, Offering offering) {
        ArrayList list = (ArrayList) offeringToName.get(
            new Integer(offering.getId()));
        if (list == null) {
            list = new ArrayList();
            offeringToName.put(new Integer(offering.getId()), list);
        }
        list.add(schedule.name);
    }

    public void writeOffering(
        StringBuffer buffer, ArrayList list, Offering offering)
    {
        buffer.append(offering.getCourse().getName() + " "
                    + offering.getDaysTimes() + "\n");

        for (Iterator iterator = list.iterator(); iterator.hasNext();)
        {
            String s = (String) iterator.next();
            buffer.append("\t" + s + "\n");
        }
    }

    public void write(StringBuffer buffer) throws Exception {
        populateMap();

        Enumeration enumeration = offeringToName.keys();
        while (enumeration.hasMoreElements()) {
           Integer offeringId = (Integer) enumeration.nextElement();
           ArrayList list = (ArrayList) offeringToName.get(offeringId);
           writeOffering(buffer, list,
               Offering.find(offeringId.intValue()));
        }

        buffer.append("Number of scheduled offerings: ");
        buffer.append(offeringToName.size());
        buffer.append("\n");
    }
}
    [ Team LiB ] Previous Section Next Section