deleted aplicationFacade and imported it's functions to specific business logics.
[RRRRHHHH_Code] / ruralHouses / src / businessLogic / OfferManager.java
index 3c00ca5..ea782a0 100644 (file)
@@ -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;
+       }
+
+       
 }