debugging
[RRRRHHHH_Code] / ruralHouses / src / dataAccess / DB4oManager.java
index a2bcfde..03601e1 100644 (file)
@@ -4,7 +4,11 @@ import java.io.File;
 //import java.util.Enumeration;
 //import java.util.Vector;
 import java.rmi.RemoteException;
-import java.util.*;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Vector;
 
 import com.db4o.Db4oEmbedded;
 import com.db4o.ObjectContainer;
@@ -16,6 +20,7 @@ import com.db4o.query.Predicate;
 
 import configuration.ConfigXML;
 import domain.Account;
+import domain.Administrator;
 import domain.Booking;
 import domain.HouseFeatures;
 import domain.Offer;
@@ -64,8 +69,8 @@ public class DB4oManager {
                } else // c.getDataBaseOpenMode().equals("open")
 
                {
-                       ObjectSet res = db.queryByExample(DB4oManagerAux.class);
-                       ListIterator listIter = res.listIterator();
+                       ObjectSet<DB4oManagerAux> res = db.queryByExample(DB4oManagerAux.class);
+                       ListIterator<DB4oManagerAux> listIter = res.listIterator();
                        if (listIter.hasNext())
                                theDB4oManagerAux = (DB4oManagerAux) res.next();
                }
@@ -124,11 +129,17 @@ public class DB4oManager {
                        Account jonAcc = new Account("userJon", "passJon", jon);
                        Account alfredoAcc = new Account("userAlfredo", "passAlfredo",
                                        alfredo);
+
+                       Account admin = new Account("admin","admin", true);
+                       db.store(Administrator.giveAdmin());
+                       db.store(jon);
+                       db.store(alfredo);
                        db.store(jonAcc);
                        db.store(alfredoAcc);
+                       db.store(admin);
                        db.commit();
                } finally {
-                       db.close();
+                       db.close();     
                }
        }
 
@@ -141,8 +152,7 @@ public class DB4oManager {
 
                try {
                        Owner proto = new Owner(null, null);
-                       ObjectSet result = db.queryByExample(proto);
-                       Vector<Owner> owners = new Vector<Owner>();
+                       ObjectSet<Owner> result = db.queryByExample(proto);
                        while (result.hasNext()) {
                                Owner o = (Owner) result.next();
                                System.out.println("Deleted owner: " + o.toString());
@@ -208,6 +218,75 @@ public class DB4oManager {
                }
        }
 
+       
+       @SuppressWarnings("static-access")
+       public LinkedList<RuralHouse>[] getAdminData(){
+               if (c.isDatabaseLocal() == false)
+                       openSDB();
+               else
+                       openDB();
+               @SuppressWarnings("unchecked")
+               LinkedList<RuralHouse>[] ret =  new LinkedList[2];
+               
+               try {
+                       
+                       List<Administrator> admL = db.query(new Predicate<Administrator>(){
+                               /**
+                                * 
+                                */
+                               private static final long serialVersionUID = 1L;
+
+                               public boolean match(Administrator admin){
+                                       return true;
+                               }
+                       });
+                       
+                       ret[0] = admL.get(0).getAddRequest();
+                       ret[1] = admL.get(0).getRemoveRequest();
+                       return ret;
+               }
+               finally {
+                       db.close();
+                       
+               }
+               
+       }
+       
+       @SuppressWarnings("static-access")
+       public void storeAdmin() {
+               if (c.isDatabaseLocal() == false)
+                       openSDB();
+               else
+                       openDB();               
+               try {
+                       
+                       List<Administrator> admL = db.query(new Predicate<Administrator>(){
+                               /**
+                                * 
+                                */
+                               private static final long serialVersionUID = 1L;
+
+                               public boolean match(Administrator admin){
+                                       return true;
+                               }
+                       });
+                       
+                       admL.get(0).setAddRequest(Administrator.getAddRequest());
+                       admL.get(0).setRemoveRequest(Administrator.getRemoveRequest());
+                       db.commit();
+                       
+               }
+               catch(Exception e){
+                       
+               }
+               finally {
+                       db.close();
+               }
+               
+               
+       }
+       
+       
        /**
         * This method creates a book with a corresponding parameters
         * 
@@ -225,6 +304,7 @@ public class DB4oManager {
                        openDB();
 
                Booking bok = null;
+               
 
                try {
 
@@ -233,7 +313,7 @@ public class DB4oManager {
 
                        RuralHouse proto = new RuralHouse(ruralHouse.getHouseName(), null,
                                        ruralHouse.getDescription(), ruralHouse.getDistrict(), null);
-                       ObjectSet result = db.queryByExample(proto);
+                       ObjectSet<RuralHouse> result = db.queryByExample(proto);
                        RuralHouse rh = (RuralHouse) result.next();
 
                        Offer offer;
@@ -293,7 +373,7 @@ public class DB4oManager {
 
                try {
                        RuralHouse proto = new RuralHouse(null, null, null, null, null);
-                       ObjectSet result = db.queryByExample(proto);
+                       ObjectSet<RuralHouse> result = db.queryByExample(proto);
                        Vector<RuralHouse> ruralHouses = new Vector<RuralHouse>();
                        while (result.hasNext())
                                ruralHouses.add((RuralHouse) result.next());
@@ -354,7 +434,7 @@ public class DB4oManager {
                        openDB();
 
                try {
-                       Account proto = new Account(usr, pwd, new Owner(null, null));
+                       Account proto = new Account(usr, pwd, null);
                        ObjectSet<Account> result = db.queryByExample(proto);
                        Vector<Account> accounts = new Vector<Account>();
                        while (result.hasNext())
@@ -379,9 +459,16 @@ public class DB4oManager {
                RuralHouse house = new RuralHouse(rh.getHouseName(), null, null, null,
                                null);
                try {
-                       ObjectSet<Owner> result = db.queryByExample(house);
+                       ObjectSet<RuralHouse> result = db.queryByExample(house);
                        if (result.isEmpty()) {
-                               db.store(rh);
+                               Owner ow = (Owner) db.queryByExample(rh.getOwner()).get(0);
+                               ObjectSet<RuralHouse> orh = db.queryByExample(new RuralHouse(null, ow, null, null, null));
+                               for (RuralHouse aa: orh){
+                                       db.delete(aa);
+                               }
+                               db.delete(ow);
+                               ow.addRuralHouse(rh);
+                               db.store(ow);
                                db.commit();
                                stored = true;
                        } else {
@@ -408,6 +495,7 @@ public class DB4oManager {
                        if (!rhs.isEmpty()) {
                                Owner found =  result.get(0);
                                found.getRuralHouses().remove(rhs.get(0));
+                               db.delete(rhs.get(0));
                                db.store(found);
                                db.commit();
                        }
@@ -441,4 +529,6 @@ public class DB4oManager {
                }
 
        }
+
+       
 }