AttendeeValueFactory.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 AttendeeValueFactory {
  7.   private static AttendeeValueFactory instance = null;
  8.   private EJBHomeFactory homeFactory;
  9.   private AttendeeValueFactory() throws NamingException {
  10.     homeFactory = EJBHomeFactory.getInstance();
  11.   }
  12.   public static AttendeeValueFactory getInstance() throws NamingException {
  13.     if(instance == null) {
  14.       instance = new AttendeeValueFactory();
  15.     }
  16.     return instance;
  17.   }
  18.   public AttendeeValue getAttendee(Long id)
  19.     throws FinderException, NamingException {
  20.     Attendee attendee = findAttendee(id);
  21.     return createValue(attendee);
  22.   }
  23.   public Collection getAttendeesByName(String name)
  24.     throws FinderException, NamingException {
  25.     Collection attendees = findAttendeesByName(name);
  26.     return createValues(attendees);
  27.   }
  28.   public Collection getAllAttendees()
  29.     throws FinderException, NamingException {
  30.     Collection attendees = findAllAttendees();
  31.     return createValues(attendees);
  32.   }
  33.   // Helper method used by the factory or a manager
  34.   public Attendee findAttendee(Long id)
  35.     throws FinderException, NamingException {
  36.     AttendeeHome home = (AttendeeHome) homeFactory.lookupByLocalEJBReference("Attendee");
  37.     return home.findByPrimaryKey(id);
  38.   }
  39.   // Helper method used by the factory or a manager
  40.   public Collection findAllAttendees()
  41.     throws FinderException, NamingException {
  42.     AttendeeHome home = (AttendeeHome) homeFactory.lookupByLocalEJBReference("Attendee");
  43.     return home.findAll();
  44.   }
  45.   // Helper method used by the factory or a manager
  46.   public Collection findAttendeesByName(String name)
  47.     throws FinderException, NamingException {
  48.     AttendeeHome home = (AttendeeHome) homeFactory.lookupByLocalEJBReference("Attendee");
  49.     return home.findByName(name);
  50.   }
  51.   // Helper method used by the factory.
  52.   private AttendeeValue createValue(Attendee attendee) {
  53.     return new AttendeeValue(attendee.getId(),
  54.       attendee.getName(),
  55.       attendee.getPosition(),
  56.       attendee.getTitle(),
  57.       attendee.getPhone(),
  58.       attendee.getEmail(),
  59.       getMeetingIds(attendee));
  60.   }
  61.   // Helper method used by the factory.
  62.   private Collection createValues(Collection attendees) {
  63.     Collection attendeeValues = new Vector(attendees.size());
  64.     Iterator iterator = attendees.iterator();
  65.     Attendee attendee = null;
  66.     while(iterator.hasNext()) {
  67.       attendee = (Attendee) iterator.next();
  68.       attendeeValues.add(createValue(attendee));
  69.     }
  70.     return attendeeValues;
  71.   }
  72.   // Helper method used by the factory
  73.   private Collection getMeetingIds(Attendee attendee) {
  74.     Collection meetings = attendee.getMeetings();
  75.     Collection meetingIds = new Vector(meetings.size());
  76.     Iterator iterator = meetings.iterator();
  77.     Meeting meeting = null;
  78.     while(iterator.hasNext()) {
  79.       meeting = (Meeting) iterator.next();
  80.       meetingIds.add(meeting.getId());
  81.     }
  82.     return meetingIds;
  83.   }
  84. }