MeetingValueFactory.java
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:3k
源码类别:

Java编程

开发平台:

Java

  1. package com.borland.training.meetings.sessions;
  2. import java.util.*;
  3. import javax.ejb.*;
  4. import javax.naming.*;
  5. import com.borland.training.meetings.entities.*;
  6. class MeetingValueFactory {
  7.   private static MeetingValueFactory instance = null;
  8.   private EJBHomeFactory homeFactory;
  9.   private MeetingValueFactory() throws NamingException {
  10.     homeFactory = EJBHomeFactory.getInstance();
  11.   }
  12.   public static MeetingValueFactory getInstance() throws NamingException {
  13.     if(instance == null) {
  14.       instance = new MeetingValueFactory();
  15.     }
  16.     return instance;
  17.   }
  18.   public MeetingValue getMeeting(Long id)
  19.     throws FinderException, NamingException {
  20.     Meeting meeting = findMeeting(id);
  21.     return createValue(meeting);
  22.   }
  23.   public Collection getMeetingsOfAttendee(Long id)
  24.     throws FinderException, NamingException {
  25.     Collection meetings = findMeetingsOfAttendee(id);
  26.     return createValues(meetings);
  27.   }
  28.   public Collection getAllMeetings()
  29.     throws FinderException, NamingException {
  30.     Collection meetings = findAllMeetings();
  31.     return createValues(meetings);
  32.   }
  33.   // Helper method used by the factory or a manager
  34.   public Meeting findMeeting(Long id)
  35.     throws FinderException, NamingException {
  36.     MeetingHome home = (MeetingHome) homeFactory.lookupByLocalEJBReference("Meeting");
  37.     return home.findByPrimaryKey(id);
  38.   }
  39.   // Helper method used by the factory or a manager
  40.   public Collection findMeetingsOfAttendee(Long id)
  41.     throws FinderException, NamingException {
  42.     AttendeeHome home = (AttendeeHome) homeFactory.lookupByLocalEJBReference("Attendee");
  43.     Attendee attendee = home.findByPrimaryKey(id);
  44.     return attendee.getMeetings();
  45.   }
  46.   // Helper method used by the factory or a manager
  47.   public Collection findAllMeetings()
  48.     throws FinderException, NamingException {
  49.     MeetingHome home = (MeetingHome) homeFactory.lookupByLocalEJBReference("Meeting");
  50.     return home.findAll();
  51.   }
  52.   // Helper method used by the factory
  53.   private MeetingValue createValue(Meeting meeting) {
  54.     return new MeetingValue(meeting.getId(),
  55.       meeting.getTopic(),
  56.       meeting.getStartTime(),
  57.       meeting.getFinishTime(),
  58.       meeting.getRoom().getName(),
  59.       getAttendeeIds(meeting));
  60.   }
  61.   // Helper method used by the factory
  62.   private Collection createValues(Collection meetings) {
  63.     Collection meetingValues = new Vector(meetings.size());
  64.     Iterator iterator = meetings.iterator();
  65.     Meeting meeting = null;
  66.     while(iterator.hasNext()) {
  67.       meeting = (Meeting) iterator.next();
  68.       meetingValues.add(createValue(meeting));
  69.     }
  70.     return meetingValues;
  71.   }
  72.   // Helper method used by the factory
  73.   private Collection getAttendeeIds(Meeting meeting) {
  74.     Collection attendees = meeting.getAttendees();
  75.     Collection attendeeIds = new Vector(attendees.size());
  76.     Iterator iterator = attendees.iterator();
  77.     Attendee attendee = null;
  78.     while(iterator.hasNext()) {
  79.       attendee = (Attendee) iterator.next();
  80.       attendeeIds.add(attendee.getId());
  81.     }
  82.     return attendeeIds;
  83.   }
  84. }