View Javadoc
1   package info.ejava.examples.ejb.ejbjpa.bl;
2   
3   import java.util.List;
4   
5   import info.ejava.examples.ejb.ejbjpa.bo.Floor;
6   import info.ejava.examples.ejb.ejbjpa.bo.Guest;
7   import info.ejava.examples.ejb.ejbjpa.bo.Room;
8   import info.ejava.examples.ejb.ejbjpa.dao.HotelDAO;
9   
10  public class HotelMgmtImpl implements HotelMgmt {
11      private HotelDAO dao;
12      
13      public void setHotelDao(HotelDAO dao) {
14          this.dao = dao;
15      }
16  
17      @Override
18      public Room getRoom(int number) {
19          return dao.getRoom(number);
20      }
21  
22      @Override
23      public Floor getFloor(int level) {
24          return dao.getFloor(level);
25      }
26  
27      @Override
28      public List<Floor> getFloors(int offset, int limit) {
29          return dao.getFloors(offset, limit);
30      }
31      
32      @Override
33      public List<Room> getAvailableRooms(Integer level, int offset, int limit) {
34          return dao.getAvailableRooms(level, offset, limit);
35      }
36      
37      @Override
38      public Guest checkIn(Guest guest, Room room) throws RoomUnavailableExcepton {
39          if (room==null) {
40              throw new RoomUnavailableExcepton("no room supplied");
41          }
42          
43          Room hotelRoom = dao.getRoom(room.getNumber());
44          if (hotelRoom==null) {
45              throw new RoomUnavailableExcepton(String.format("room [%d] does not exist", room.getNumber()));
46          }
47          
48          if (hotelRoom.getOccupant()!=null) {
49              throw new RoomUnavailableExcepton(String.format("room is occupied by %s", hotelRoom.getOccupant()));
50          }
51          
52          dao.addGuest(guest);
53          hotelRoom.setOccupant(guest);
54          return guest;
55      }
56      
57      @Override
58      public int checkout(Guest guest) {
59          Room room=dao.findRoomByGuest(guest);
60          if (room!=null) {
61              room.setOccupant(null);
62              return 1;
63          }
64          return 0;
65      }
66  }