deleted: ruralHouses/hs_err_pid6014.log
[RRRRHHHH_Code] / ruralHouses / src / dataAccess / DB4oManager.java
index 80bc080..40fe83c 100644 (file)
@@ -50,14 +50,12 @@ public class DB4oManager {
                        new File(c.getDb4oFilename()).delete();
 
                if (c.isDatabaseLocal()) {
-                       configuration = Db4oEmbedded.newConfiguration();
-                       configuration.common().activationDepth(c.getActivationDepth());
-                       configuration.common().updateDepth(c.getUpdateDepth());
-                       db = Db4oEmbedded.openFile(configuration, c.getDb4oFilename());
+                       openDB();
                        System.out.println("DataBase opened");
                } else // c.isDatabaseLocal==false
                {
-                       openObjectContainer();
+                       openSDB();
+                       System.out.println("Remote DataBase opened");
                }
                if (c.getDataBaseOpenMode().equals("initialize")) {
                        initializeDB();
@@ -76,10 +74,11 @@ public class DB4oManager {
                configuration = Db4oEmbedded.newConfiguration();
                configuration.common().activationDepth(c.getActivationDepth());
                configuration.common().updateDepth(c.getUpdateDepth());
+               configuration.common().objectClass(Owner.class).cascadeOnDelete(true);
                db = Db4oEmbedded.openFile(configuration, c.getDb4oFilename());
        }
 
-       private void openObjectContainer() {
+       private void openSDB() {
 
                configurationCS = Db4oClientServer.newClientConfiguration();
                configurationCS.common().activationDepth(c.getActivationDepth());
@@ -111,12 +110,12 @@ public class DB4oManager {
                try {
                        Owner jon = new Owner("Jon");
                        Owner alfredo = new Owner("Alfredo");
-                       jon.addRuralHouse(1, "Ezkioko etxea", "Ezkio", 3, 3, 3, 3, 3);
-                       jon.addRuralHouse(2, "Eskiatzeko etxea", "Jaca", 4, 4, 4, 4, 4);
+                       jon.addRuralHouse("Ezkio", "Ezkioko etxea", "Ezkio", 3, 3, 3, 3, 3);
+                       jon.addRuralHouse("Eskia", "Eskiatzeko etxea", "Jaca", 4, 4, 4, 4, 4);
                        jon.setBankAccount("1349 5677 21 2133567777");
-                       alfredo.addRuralHouse(3, "Casa del abuelo", "Pitillas", 5, 5, 5, 5,
+                       alfredo.addRuralHouse("Aitonako", "Casa del abuelo", "Pitillas", 5, 5, 5, 5,
                                        5);
-                       alfredo.addRuralHouse(4, "", "Murgia", 6, 6, 6, 6, 6);
+                       alfredo.addRuralHouse("Murgoitz", "", "Murgia", 6, 6, 6, 6, 6);
                        alfredo.setBankAccount("4144 0087 23 9700002133");
                        Account jonAcc = new Account("userJon", "passJon", jon);
                        Account alfredoAcc = new Account("userAlfredo", "passAlfredo",
@@ -127,20 +126,46 @@ public class DB4oManager {
                        db.store(alfredoAcc);
                        db.commit();
                } finally {
-                       // db.close();
+                       db.close();
                }
        }
 
+       public void deleteDB() {
+
+               if (c.isDatabaseLocal() == false)
+                       openSDB();
+               else
+                       openDB();
+
+               try {
+                       Owner proto = new Owner(null, null);
+                       ObjectSet result = db.queryByExample(proto);
+                       Vector<Owner> owners = new Vector<Owner>();
+                       while (result.hasNext()) {
+                               Owner o = (Owner) result.next();
+                               System.out.println("Deleted owner: " + o.toString());
+                               db.delete(o);
+                       }
+                       db.commit();
+               } finally {
+                       db.close();
+               }
+       }
+       
+       
        @SuppressWarnings("finally")
        public Offer createOffer(RuralHouse ruralHouse, Date firstDay,
                        Date lastDay, float price) throws RemoteException, Exception {
                Offer o = null;
-               try {
 
-                       if (c.isDatabaseLocal() == false)
-                               openObjectContainer();
+               if (c.isDatabaseLocal() == false)
+                       openSDB();
+               else
+                       openDB();
+
+               try {
 
-                       RuralHouse proto = new RuralHouse(ruralHouse.getHouseNumber(),
+                       RuralHouse proto = new RuralHouse(ruralHouse.getHouseName(),
                                        null, null, null, null);
                        ObjectSet result = db.queryByExample(proto);
                        RuralHouse rh = (RuralHouse) result.next();
@@ -155,26 +180,54 @@ public class DB4oManager {
                        System.out
                                        .println("Error: com.db4o.ext.ObjectNotStorableException in createOffer");
                } finally {
-                       return o;
+                       db.close();
                }
+               return o;
        }
 
-       public void deleteDB() {
+       @SuppressWarnings("finally")
+       public Offer modifyOffer(Offer offer) throws RemoteException, Exception {
+               if (c.isDatabaseLocal() == false)
+                       openSDB();
+               else
+                       openDB();
 
                try {
-                       Owner proto = new Owner(null, null);
-                       ObjectSet result = db.queryByExample(proto);
-                       Vector<Owner> owners = new Vector<Owner>();
-                       while (result.hasNext()) {
-                               Owner o = (Owner) result.next();
-                               System.out.println("Deleted owner: " + o.toString());
-                               db.delete(o);
-                       }
+
+                       
+                       db.store(offer);
                        db.commit();
+
+               } catch (com.db4o.ext.ObjectNotStorableException e) {
+                       System.out
+                                       .println("Error: com.db4o.ext.ObjectNotStorableException in createOffer");
                } finally {
-                       // db.close();
+                       db.close();
                }
+               return offer;
        }
+       
+       @SuppressWarnings("finally")
+       public void deleteOffer(RuralHouse rh, Offer offer) throws RemoteException, Exception {
+               if (c.isDatabaseLocal() == false)
+                       openSDB();
+               else
+                       openDB();
+
+               try {
+
+                       db.store(rh);
+                       db.delete(offer);
+                       db.commit();
+
+               } catch (com.db4o.ext.ObjectNotStorableException e) {
+                       System.out
+                                       .println("Error: com.db4o.ext.ObjectNotStorableException in createOffer");
+               } finally {
+                       db.close();
+               }
+       }
+       
 
        /**
         * This method creates a book with a corresponding parameters
@@ -187,12 +240,19 @@ public class DB4oManager {
                        Date lastDate, String bookTelephoneNumber)
                        throws OfferCanNotBeBooked {
 
+               if (c.isDatabaseLocal() == false)
+                       openSDB();
+               else
+                       openDB();
+
+               Booking bok = null;
+
                try {
 
                        if (c.isDatabaseLocal() == false)
-                               openObjectContainer();
+                               openSDB();
 
-                       RuralHouse proto = new RuralHouse(ruralHouse.getHouseNumber(),
+                       RuralHouse proto = new RuralHouse(ruralHouse.getHouseName(),
                                        null, ruralHouse.getDescription(), ruralHouse.getTown(),
                                        null);
                        ObjectSet result = db.queryByExample(proto);
@@ -208,18 +268,18 @@ public class DB4oManager {
                                                                                                // bookingNumber
                                db.store(offer);
                                db.commit();
-                               return offer.getBooking();
+                               bok = offer.getBooking();
                        }
-                       return null;
 
                } catch (com.db4o.ext.ObjectNotStorableException e) {
                        System.out
                                        .println("Error: com.db4o.ext.ObjectNotStorableException in createBooking");
-                       return null;
                } catch (Exception exc) {
                        exc.printStackTrace();
-                       return null;
+               } finally {
+                       db.close();
                }
+               return bok;
        }
 
        /**
@@ -229,7 +289,9 @@ public class DB4oManager {
        public Vector<Owner> getOwners() throws RemoteException, Exception {
 
                if (c.isDatabaseLocal() == false)
-                       openObjectContainer();
+                       openSDB();
+               else
+                       openDB();
 
                try {
                        Owner proto = new Owner(null, null);
@@ -239,43 +301,50 @@ public class DB4oManager {
                                owners.add((Owner) result.next());
                        return owners;
                } finally {
-                       // db.close();
+                       db.close();
                }
        }
 
        public Vector<RuralHouse> getAllRuralHouses() throws RemoteException,
                        Exception {
+
                if (c.isDatabaseLocal() == false)
-                       openObjectContainer();
+                       openSDB();
+               else
+                       openDB();
 
                try {
-                       RuralHouse proto = new RuralHouse(0, null, null, null, null);
+                       RuralHouse proto = new RuralHouse(null, null, null, null, null);
                        ObjectSet result = db.queryByExample(proto);
                        Vector<RuralHouse> ruralHouses = new Vector<RuralHouse>();
                        while (result.hasNext())
                                ruralHouses.add((RuralHouse) result.next());
                        return ruralHouses;
                } finally {
-                       // db.close();
+                       db.close();
                }
        }
 
        public boolean existsOverlappingOffer(RuralHouse rh, Date firstDay,
                        Date lastDay) throws RemoteException, OverlappingOfferExists {
+
+               if (c.isDatabaseLocal() == false)
+                       openSDB();
+               else
+                       openDB();
+
                try {
-                       if (c.isDatabaseLocal() == false)
-                               openObjectContainer();
 
                        RuralHouse rhn = (RuralHouse) db
                                        .queryByExample(
-                                                       new RuralHouse(rh.getHouseNumber(), null, null,
+                                                       new RuralHouse(rh.getHouseName(), null, null,
                                                                        null, null)).next();
                        if (rhn.overlapsWith(firstDay, lastDay) != null)
                                throw new OverlappingOfferExists();
                        else
                                return false;
                } finally {
-                       // db.close();
+                       db.close();
                }
        }
 
@@ -301,8 +370,12 @@ public class DB4oManager {
         */
        public Vector<Account> getAccount(String usr, String pwd)
                        throws RemoteException, Exception {
+
                if (c.isDatabaseLocal() == false)
-                       openObjectContainer();
+                       openSDB();
+               else
+                       openDB();
+
                try {
                        Account proto = new Account(usr, pwd, new Owner(null, null));
                        ObjectSet<Account> result = db.queryByExample(proto);
@@ -311,7 +384,7 @@ public class DB4oManager {
                                accounts.add((Account) result.next());
                        return accounts;
                } finally {
-                       // db.close();
+                       db.close();
                }
        }
 
@@ -319,11 +392,14 @@ public class DB4oManager {
         * @param rh
         */
        public boolean storeRuralHouses(RuralHouse rh) {
-//             DB4oManager.openDB();
+
                if (c.isDatabaseLocal() == false)
-                       openObjectContainer();
+                       openSDB();
+               else
+                       openDB();
+
                boolean stored = false;
-               RuralHouse house = new RuralHouse(rh.getHouseNumber(), null, null,
+               RuralHouse house = new RuralHouse(rh.getHouseName(), null, null,
                                null, null);
                try {
                        ObjectSet<Owner> result = db.queryByExample(house);
@@ -333,44 +409,74 @@ public class DB4oManager {
                                stored = true;
                        }
                } finally {
-//                     db.close();
+                       db.close();
                }
                return stored;
        }
 
-       public void removeHouse(int houseNumber) {
-//             DB4oManager.openDB();
+
+       public void removeHouse(RuralHouse rh, Owner owner) {
+
                if (c.isDatabaseLocal() == false)
-                       openObjectContainer();
-               RuralHouse house = new RuralHouse(houseNumber, null, null, null, null);
+                       openSDB();
+               else
+                       openDB();               
                try {
-                       ObjectSet<RuralHouse> result = db.queryByExample(house);
+                       ObjectSet<RuralHouse> result = db.queryByExample(rh);
                        if (!result.isEmpty()) {
                                RuralHouse found = (RuralHouse) result.get(0);
+//                             db.delete(found.getOwner());
+                               db.store(owner);
                                db.delete(found);
                                db.commit();
                        }
                } catch (Exception exc) {
                        exc.printStackTrace();
                } finally {
-//                     db.close();
+                       db.close();
                }
 
        }
        
        public Vector<RuralHouse> getRuralHousesByTown(String town){
-               RuralHouse rh = new RuralHouse(0,null,null,town,null);
+               RuralHouse rh = new RuralHouse(null,null,null,town,null);
+               
                if (c.isDatabaseLocal() == false)
-                       openObjectContainer();
+                       openSDB();
+               else
+                       openDB();
+
+               try {
+                       ObjectSet<RuralHouse> result = db.queryByExample(rh);
+                       Vector<RuralHouse> ruralHouses = new Vector<RuralHouse>();
+                       while (result.hasNext())
+                               ruralHouses.add(result.next());
+                       return ruralHouses;
+               } finally {
+                       db.close();
+               }
+
+       }
+       public RuralHouse getRuralHouseByName(String name){
+               RuralHouse rh = new RuralHouse(name,null,null,null,null);
+               
+               if (c.isDatabaseLocal() == false)
+                       openSDB();
+               else
+                       openDB();
+               
                try{
                        ObjectSet<RuralHouse> result = db.queryByExample(rh);
                        Vector<RuralHouse> ruralHouses = new Vector<RuralHouse>();
                        while(result.hasNext())
                                ruralHouses.add(result.next());
-                       return ruralHouses;
-               }finally{
-                       //db.close();
+                       db.close();
+                       return ruralHouses.get(0);
+               } catch (NullPointerException e){
+                       return null;
                }
                
+               
+               
        }
 }