configuration = Db4oEmbedded.newConfiguration();
configuration.common().activationDepth(c.getActivationDepth());
configuration.common().updateDepth(c.getUpdateDepth());
- configuration.common().objectClass(Owner.class).cascadeOnUpdate(true);
configuration.common().objectClass(Owner.class).cascadeOnDelete(true);
+ configuration.common().objectClass(Booking.class).cascadeOnDelete(true);
configuration.common().objectClass(RuralHouse.class)
- .cascadeOnUpdate(true);
+ .cascadeOnDelete(true);
+ configuration.common().objectClass(Offer.class)
+ .cascadeOnDelete(true);
configuration.common().objectClass(Account.class).cascadeOnUpdate(true);
db = Db4oEmbedded.openFile(configuration, c.getDb4oFilename());
}
try {
ObjectSet<Offer> of = db.queryByExample(offer);
RuralHouse rh = of.get(0).getRuralHouse();
- System.out.println(rh.offers.remove(of.get(0)));
+ System.out.println(rh.getAllOffers().remove(of.get(0)));
db.store(rh);
db.commit();
try {
List<Administrator> admL = db.query(new Predicate<Administrator>() {
- /**
- *
- */
private static final long serialVersionUID = 1L;
public boolean match(Administrator admin) {
}
public void storeAdmin() {
+
if (c.isDatabaseLocal() == false)
openSDB();
else
Administrator.getInstance().getRemoveRequest());
admL.get(0).setNewOwnerRequest(
Administrator.getInstance().getNewOwnerRequest());
+
db.commit();
} catch (Exception e) {
else
openDB();
- Vector<Booking> book = new Vector<Booking>() ;
+ Vector<Booking> book = new Vector<Booking>();
try {
offer.createBooking(theDB4oManagerAux.bookingNumber++, cl);
db.store(theDB4oManagerAux); // To store the new value for
// bookingNumber
-
+
db.store(offer);
db.commit();
book = offer.getBookings();
-
+
}
} catch (com.db4o.ext.ObjectNotStorableException e) {
openDB();
try {
- // TODO realize if there is another account with same username.
- // Quite difficult with the f***ing salt
- db.store(acc);
- db.commit();
+ ObjectSet<Account> result = db.queryByExample(new Account(acc
+ .getUsername()));
+ if (result.isEmpty()) {
+ db.store(acc);
+ db.commit();
+ return true;
+ }
} catch (Exception exc) {
exc.printStackTrace();
} finally {
db.close();
}
- return true;
+ return false;
}
// TODO remove account
public boolean removeAccount(Account acc) {
+ if (c.isDatabaseLocal() == false)
+ openSDB();
+ else
+ openDB();
+
+ try {
+ ObjectSet<Account> result = db.queryByExample(new Account(acc
+ .getUsername()));
+ if (!result.isEmpty()) {
+ db.delete(result.get(0));
+ ;
+ db.commit();
+ return true;
+ }
+ } catch (Exception exc) {
+ exc.printStackTrace();
+ } finally {
+ db.close();
+ }
return false;
}
-
- //TODO this method should be improved.
- public void acceptBooking(Offer of){
- Offer off = new Offer(of.getOfferNumber(),of.getRuralHouse(),of.getFirstDay(),of.getLastDay(),of.getPrice());
+
+ public void acceptBooking(Offer of) {
+ Offer off = new Offer(of.getOfferNumber(), new RuralHouse(of
+ .getRuralHouse().getHouseName(), null, null, null, null), null,
+ null, 0);
if (c.isDatabaseLocal() == false)
openSDB();
else
try {
ObjectSet<Offer> result = db.queryByExample(off);
- this.deleteOffer(result.get(0));
- db.store(of);
+ db.delete(result.get(0));
+ RuralHouse rh = result.get(0).getRuralHouse();
+ of.setRuralHouse(rh);
+ rh.getAllOffers().remove(result.get(0));
+ rh.getAllOffers().add(of);
+ db.store(rh);
db.close();
-
+
} catch (Exception e) {
- e.printStackTrace();;
- }
+ e.printStackTrace();
+ ;
+ }
}
-
- public void removeBooking(Booking b){
+
+ public void removeBooking(Booking b) {
if (c.isDatabaseLocal() == false)
openSDB();
else
openDB();
try {
ObjectSet<Booking> result = db.queryByExample(b);
- ObjectSet<Client> result2= db.queryByExample(b.getClient());
- db.delete(result.get(0));
- db.delete(result2.get(0));
+ result.get(0).getOffer().getBookings().remove(b);
+ db.store(result.get(0).getOffer());
db.commit();
} catch (Exception e) {
- e.printStackTrace();;
- }finally{
+ e.printStackTrace();
+ ;
+ } finally {
db.close();
}
-
}
}