package businessLogic;
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
+import java.util.Date;
+import java.util.Vector;
+
import com.db4o.ObjectContainer;
import com.db4o.ObjectSet;
+import common.BookingInterface;
import dataAccess.DB4oManager;
+import domain.Booking;
+import domain.Client;
+import domain.RuralHouse;
+import exceptions.OfferCanNotBeBooked;
-public final class BookingManager {
-
- private int bookingNumber = 0;
- dataAccess.DB4oManager dbMngr;
- private static BookingManager theBookingManager;
+public final class BookingManager extends UnicastRemoteObject implements BookingInterface {
- private BookingManager() {}
-
/**
- * This method returns the next Booking number
*
- * @return the book number
*/
- public static int getNumber(){
- ObjectContainer db=DB4oManager.getContainer();
- BookingManager b=getInstance();
- b.bookingNumber++;
- db.store(b);
- db.commit();
- return b.bookingNumber;
- }
+ private static final long serialVersionUID = 1L;
+ dataAccess.DB4oManager dbMngr;
+
+
+ public BookingManager() throws RemoteException {
+ super();
+ try {
+ this.dbMngr = DB4oManager.getInstance();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ public void removeDenyBooking(Booking b) throws RemoteException{
+ b.getOffer().getBookings().remove(b);
+ this.dbMngr.removeBooking(b);
+ }
+
+
+ public void acceptBooking(Booking b) throws RemoteException{
+ b.getOffer().setBooked(true);
+ for(Booking boo : b.getOffer().getBookings()){
+ if(!boo.equals(b))
+ b.getOffer().getBookings().remove(b);
+ }
+ this.dbMngr.acceptBooking(b.getOffer());
+ /*try {
+ MailManager.getInstance().Send(b.getClient().getMailAccount(), "Your booking has been accepted","Here should be the bill");
+ } catch (MessagingException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }*/
+
+ }
/**
- * This method returns the instance of the BookingManager class
+ * This method creates a book with a corresponding parameters
*
- * @return the booking manager
+ * @param First
+ * day, last day, house number and telephone
+ * @return a book
*/
- public static BookingManager getInstance() {
- ObjectContainer db=DB4oManager.getContainer();
- BookingManager b = new BookingManager();
- ObjectSet result = db.queryByExample(b);
- if (!result.hasNext()){
- theBookingManager = new BookingManager();
- db.store(theBookingManager);
- db.commit();
- } else theBookingManager=(BookingManager)result.next();
- return theBookingManager;
+ public Vector<Booking> createBooking(RuralHouse ruralHouse, Date firstDate,
+ Date lastDate, Client client)
+ throws OfferCanNotBeBooked,RemoteException {
+
+ return dbMngr.createBooking(ruralHouse, firstDate, lastDate,
+ client);
}
-
+
}
\ No newline at end of file