package businessLogic; import java.util.Date; import java.util.Vector; import com.db4o.ObjectContainer; import com.db4o.ObjectSet; import dataAccess.DB4oManager; import domain.Booking; import domain.Offer; import domain.Owner; import domain.RuralHouse; import exceptions.OfferCanNotBeBooked; public final class BookingManager { private int bookingNumber = 0; dataAccess.DB4oManager dbMngr; private static BookingManager theBookingManager; public BookingManager() { try { this.dbMngr = DB4oManager.getInstance(); } catch (Exception e) { e.printStackTrace(); } } /** * 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; } /** * This method returns the instance of the BookingManager class * * @return the booking manager */ 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 void removeBooking(Booking B) { // TODO } public Vector getAllBookings(Owner ow) { Vector books = new Vector(); for (RuralHouse rh : ow.getRuralHouses()) { Vector off = rh.getAllOffers(); for (Offer of : off) { System.out.print(of.toString()); if (of.getBooking() != null) { books.add(of.getBooking()); } } } return books; } /** * This method creates a book with a corresponding parameters * * @param First * day, last day, house number and telephone * @return a book */ public Booking createBooking(RuralHouse ruralHouse, Date firstDate, Date lastDate, String bookTelephoneNumber) throws OfferCanNotBeBooked { return dbMngr.createBooking(ruralHouse, firstDate, lastDate, bookTelephoneNumber); } }