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

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 RoomValueFactory {
  7.   private static RoomValueFactory instance = null;
  8.   private EJBHomeFactory homeFactory;
  9.   private RoomValueFactory() throws NamingException {
  10.     homeFactory = EJBHomeFactory.getInstance();
  11.   }
  12.   public static RoomValueFactory getInstance() throws NamingException {
  13.     if(instance == null) {
  14.       instance = new RoomValueFactory();
  15.     }
  16.     return instance;
  17.   }
  18.   public RoomValue getRoom(String name)
  19.     throws FinderException, NamingException {
  20.     Room room = findRoom(name);
  21.     return createValue(room);
  22.   }
  23.   public Collection getAllRooms()
  24.     throws FinderException, NamingException {
  25.     Collection rooms = findAllRooms();
  26.     Collection roomValues = new Vector(rooms.size());
  27.     Iterator iterator = rooms.iterator();
  28.     Room room = null;
  29.     while(iterator.hasNext()) {
  30.       room = (Room) iterator.next();
  31.       roomValues.add(createValue(room));
  32.     }
  33.     return roomValues;
  34.   }
  35.   // Helper method used by the factory or a manager
  36.   public Room findRoom(String name)
  37.     throws FinderException, NamingException {
  38.     RoomHome home = (RoomHome) homeFactory.lookupByLocalEJBReference("Room");
  39.     return home.findByPrimaryKey(name);
  40.   }
  41.   // Helper method used by the factory or a manager
  42.   public Collection findAllRooms()
  43.     throws FinderException, NamingException {
  44.     RoomHome home = (RoomHome) homeFactory.lookupByLocalEJBReference("Room");
  45.     return home.findAll();
  46.   }
  47.   // Helper method used by the factory
  48.   private RoomValue createValue(Room room) {
  49.     return new RoomValue(room.getName(),
  50.       room.getCapacity(),
  51.       getMeetingIds(room));
  52.   }
  53.   // Helper method used by the factory
  54.   private Collection getMeetingIds(Room room) {
  55.     Collection meetings = room.getMeetings();
  56.     Collection meetingIds = new Vector(meetings.size());
  57.     Iterator iterator = meetings.iterator();
  58.     while(iterator.hasNext()) {
  59.       Meeting meeting = (Meeting) iterator.next();
  60.       meetingIds.add(meeting.getId());
  61.     }
  62.     return meetingIds;
  63.   }
  64. }