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 {
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();
} 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;
+ }
+
+
}