X-Git-Url: https://xp-dev.com/git/RRRRHHHH_Code/blobdiff_plain/44451eb517505374d4c8ea1c2c706307f9b0a382..e168688434227fc59065555c0bb408fc17e2ebc2:/ruralHouses/src/businessLogic/OfferManager.java diff --git a/ruralHouses/src/businessLogic/OfferManager.java b/ruralHouses/src/businessLogic/OfferManager.java index 3c00ca5..ea782a0 100644 --- a/ruralHouses/src/businessLogic/OfferManager.java +++ b/ruralHouses/src/businessLogic/OfferManager.java @@ -1,9 +1,18 @@ package businessLogic; +import java.rmi.RemoteException; +import java.sql.Date; + import com.db4o.ObjectContainer; import com.db4o.ObjectSet; import dataAccess.DB4oManager; +import domain.Booking; +import domain.Offer; +import domain.RuralHouse; +import exceptions.BadDates; +import exceptions.OfferCanNotBeBooked; +import exceptions.OverlappingOfferExists; public final class OfferManager { @@ -11,7 +20,13 @@ public final class OfferManager { dataAccess.DB4oManager dbMngr; private static OfferManager theOfferManager; - private OfferManager() {} + public OfferManager() { + try { + this.dbMngr = DB4oManager.getInstance(); + } catch (Exception e) { + e.printStackTrace(); + } + } public static int getNumber() { ObjectContainer db=DB4oManager.getContainer(); @@ -38,4 +53,22 @@ public final class OfferManager { } else theOfferManager=(OfferManager)result.next(); return theOfferManager; } + + /** + * This method creates an offer with a house number, first day, last day and price + * + * @param House + * number, start day, last day and price + * @return the created offer, or null, or an exception + */ + public Offer createOffer(RuralHouse ruralHouse, Date firstDay, Date lastDay, + float price) throws OverlappingOfferExists, BadDates, RemoteException, Exception { + if (firstDay.compareTo(lastDay)>=0) throw new BadDates(); + + boolean b = dbMngr.existsOverlappingOffer(ruralHouse,firstDay,lastDay); // The ruralHouse object in the client may not be updated + if (!b) return dbMngr.createOffer(ruralHouse,firstDay,lastDay,price); + return null; + } + + }