}
@Override
- public Owner checkCredentials(String usr, String pwd) {
+ public Account checkCredentials(String usr, String pwd) {
try {
Vector<Account> account = dbMngr.getAccount(usr, pwd);
if (account.isEmpty())
return null;
else
- return account.get(0).getOwner();
+ return account.get(0);
} catch (Exception e) {
// TODO Auto-generated catch block
}
return null;
}
+
+
}
package businessLogic;
+import domain.Account;
import domain.Owner;
public interface LoginManagerInterface {
- public Owner checkCredentials(String usr, String pwd);
+ public Account checkCredentials(String usr, String pwd);
+
+++ /dev/null
-package businessLogic;
-
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-import java.sql.Date;
-import java.util.Vector;
-
-import domain.Booking;
-import domain.Offer;
-import domain.Owner;
-import domain.RuralHouse;
-import exceptions.OfferCanNotBeBooked;
-
-
-public interface __ApplicationFacadeInterface extends Remote {
-
-
- /**
- * 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 None
- */
-
-
- Offer createOffer(RuralHouse ruralHouse, Date firstDay, Date lastDay,
- float price) throws RemoteException, Exception;
-
- /**
- * This method creates a book with a corresponding parameters
- *
- * @param First
- * day, last day, house number and telephone
- * @return a book
- */
- Booking createBooking(RuralHouse ruralHouse, Date firstDay, Date lastDay,
- String telephoneNumber) throws RemoteException,
- OfferCanNotBeBooked;
-
-
- /**
- * This method retrieves the existing owners
- *
- * @return a Set of owners
- */
- public Vector<Owner> getOwners() throws RemoteException,
- Exception;
-
-
-
- public void close() throws RemoteException;
-
-
-
-}
\ No newline at end of file
+++ /dev/null
-package businessLogic;
-
-import java.rmi.RemoteException;
-import java.rmi.server.UnicastRemoteObject;
-import java.sql.Date;
-import java.sql.SQLException;
-import java.util.Vector;
-
-import dataAccess.DB4oManager;
-import domain.Booking;
-import domain.Offer;
-import domain.Owner;
-import domain.RuralHouse;
-import exceptions.BadDates;
-import exceptions.DB4oManagerCreationException;
-import exceptions.OfferCanNotBeBooked;
-import exceptions.OverlappingOfferExists;
-
-
-public class __FacadeImplementation extends UnicastRemoteObject implements __ApplicationFacadeInterface {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- Vector<Owner> owners;
- Vector<RuralHouse> ruralHouses;
- DB4oManager dB4oManager;
-
-
- public __FacadeImplementation() throws RemoteException, InstantiationException,
- IllegalAccessException, ClassNotFoundException, SQLException, DB4oManagerCreationException {
- owners=null;
- ruralHouses=null;
- try{
- dB4oManager=DB4oManager.getInstance();
- }
- catch (com.db4o.ext.DatabaseFileLockedException e) {
- System.out.println("Error in FacadeImplementation: "+e.toString());
- throw e;
- }
- catch (Exception e) {
- System.out.println("Error in FacadeImplementation: "+e.toString());
- throw new DB4oManagerCreationException();
- }
- }
-
-
- /**
- * 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();
- ruralHouses=null;
- owners=null;
- boolean b = dB4oManager.existsOverlappingOffer(ruralHouse,firstDay,lastDay); // The ruralHouse object in the client may not be updated
- if (!b) return dB4oManager.createOffer(ruralHouse,firstDay,lastDay,price);
- return null;
- }
-
- /**
- * This method creates a book with a corresponding parameters
- *
- * @param First
- * day, last day, house number and telephone
- * @return a book
- */
- public Booking createBooking(RuralHouse ruralHouse, Date firstDate, Date lastDate, String bookTelephoneNumber)
- throws OfferCanNotBeBooked {
- ruralHouses=null;
- owners=null;
- return dB4oManager.createBooking(ruralHouse,firstDate,lastDate,bookTelephoneNumber);
- }
-
-
- /**
- * This method existing owners
- *
- */
- public Vector<Owner> getOwners() throws RemoteException,
- Exception {
-
- if (owners!=null) { System.out.println("Owners obtained directly from business logic layer");
- return owners; }
- else return owners=dB4oManager.getOwners();
- }
-
- public Vector<RuralHouse> getAllRuralHouses() throws RemoteException,
- Exception {
-
- if (ruralHouses!=null) { System.out.println("RuralHouses obtained directly from business logic layer");
- return ruralHouses; }
- else return ruralHouses=dB4oManager.getAllRuralHouses();
-
- }
-
- public void close() throws RemoteException{
- dB4oManager.close();
-
- }
-
- }
-
//import java.util.Vector;
import java.rmi.RemoteException;
import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
import java.util.ListIterator;
import java.util.Vector;
import com.db4o.config.EmbeddedConfiguration;
import com.db4o.cs.Db4oClientServer;
import com.db4o.cs.config.ClientConfiguration;
+import com.db4o.query.Predicate;
import configuration.ConfigXML;
import domain.Account;
+import domain.Administrator;
import domain.Booking;
import domain.HouseFeatures;
import domain.Offer;
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();
}
}
}
}
+
+ public LinkedList<RuralHouse>[] getAdminData(){
+ if (c.isDatabaseLocal() == false)
+ openSDB();
+ else
+ openDB();
+ LinkedList<RuralHouse>[] ret = new LinkedList[2];
+
+ try {
+
+ List<Administrator> admL = db.query(new Predicate<Administrator>(){
+ public boolean match(Administrator admin){
+ return true;
+ }
+ });
+
+ ret[0] = admL.get(0).getAddRequest();
+ ret[1] = admL.get(0).getRemoveRequest();
+ return ret;
+ }
+ finally {
+ db.close();
+
+ }
+
+ }
+
+ public void storeAdmin() {
+ if (c.isDatabaseLocal() == false)
+ openSDB();
+ else
+ openDB();
+ try {
+
+ List<Administrator> admL = db.query(new Predicate<Administrator>(){
+ 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
*
openDB();
Booking bok = null;
+
try {
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())
}
}
+
+
}
private String username = "";
private String password = "";
private Owner owner;
- private Administrator admin;
+ private boolean admin = false;
- public Account(String usr, String pass, Administrator admin) {
+ public Account(String usr, String pass, boolean admin) {
this.username = usr;
this.password = pass;
this.owner = null;
this.username = usr;
this.password = pass;
this.owner = ow;
- this.admin = null;
+ this.admin = false;
}
return owner;
}
- public Administrator getAdmin() {
+ public boolean getAdmin() {
return admin;
}
- public void setAdmin(Administrator admin) {
+ public void setAdmin(boolean admin) {
this.admin = admin;
}
import java.util.LinkedList;
+import dataAccess.DB4oManager;
+
public class Administrator {
- private static LinkedList<RuralHouse> addRequest = new LinkedList<RuralHouse>();
- private static LinkedList<RuralHouse> removeRequest = new LinkedList<RuralHouse>();
+ private static LinkedList<RuralHouse> addRequest;
+ private static LinkedList<RuralHouse> removeRequest;
private Administrator(){
+ addRequest = new LinkedList<RuralHouse>();
+ removeRequest = new LinkedList<RuralHouse>();
}
+ public static Administrator giveAdmin(){
+ return new Administrator();
+ }
+
+ public static void getInstance(){
+ try {
+ DB4oManager db4o = DB4oManager.getInstance();
+ LinkedList<RuralHouse>[] temp = db4o.getAdminData();
+ addRequest = temp[0];
+ removeRequest = temp[1];
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public static void saveInstance(){
+ try {
+ DB4oManager.getInstance().storeAdmin();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
public static LinkedList<RuralHouse> getAddRequest() {
return addRequest;
}
return removeRequest;
}
+ public static void setAddRequest(LinkedList<RuralHouse> addRequest) {
+ Administrator.addRequest = addRequest;
+ }
+
+ public static void setRemoveRequest(LinkedList<RuralHouse> removeRequest) {
+ Administrator.removeRequest = removeRequest;
+ }
+
}
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
+import domain.Administrator;
+
public class AdminMenuGUI extends JFrame {
/**
public AdminMenuGUI() {
-
+ Administrator.getInstance();
this.setTitle("Owner Menu");
this.getContentPane().setLayout(null);
setBounds(100, 100, 450, 473);
import businessLogic.LoginManager;
import businessLogic.LoginManagerInterface;
+import domain.Account;
import domain.Owner;
+import javax.swing.JRadioButton;
+import javax.swing.ButtonGroup;
+
public class LoginGUI extends JFrame {
private static final long serialVersionUID= 1L;
private JPasswordField passwordField;
private LoginManagerInterface loginManager = new LoginManager();
private JLabel loginFeedback;
-
+ private final ButtonGroup buttonGroup = new ButtonGroup();
public LoginGUI() {
super();
initialize();
}
private void jButton_ActionPerformed(ActionEvent e){
- Owner owner = loginManager.checkCredentials(usernameField.getText(),new String(passwordField.getPassword()));
- if(owner==null){
- loginFeedback.setText("Incorrect username or password");
- }else{
-
-
+ Account acc = loginManager.checkCredentials(usernameField.getText(),new String(passwordField.getPassword()));
+ if (acc.getAdmin()) {
+ this.setVisible(false);
+ Frame a = new AdminMenuGUI();
+ a.setVisible(true);
+ } else {
+ if(acc.getOwner()==null){
+ loginFeedback.setText("Incorrect username or password");
+ }else{
this.setVisible(false);
- Frame a = new OwnerMenuGUI(owner);
- a.setVisible(true);
- }
-
+ Frame a = new OwnerMenuGUI(acc.getOwner());
+ a.setVisible(true);
+ }
+ }
+
}
-
} // @jve:decl-index=0:visual-constraint="222,33"
HouseManager hm = new HouseManager();
hm.removeHouse(rh, owner);
+ //TODO registernewhouse must check before if the house is created to delete it before creating it.
hm.registerNewHouse(rh.getHouseName(),
owner,
description_f.getText(),
import javax.swing.UIManager;
import configuration.ConfigXML;
+import domain.Administrator;
public class StartWindow extends JFrame {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
+
System.exit(1);
}
});
import businessLogic.AdminManager;
import businessLogic.HouseManager;
import businessLogic.HouseManagerInterface;
+import domain.Administrator;
import domain.RuralHouse;
public class listOfAdditionRequestsGUI extends JFrame {
hm.registerNewHouse(rh);
houses.remove(rh);
am.removeHouseAdditionRequests(rh);
+ Administrator.saveInstance();
}
}
});
import businessLogic.AdminManager;
import businessLogic.HouseManager;
import businessLogic.HouseManagerInterface;
+import domain.Administrator;
import domain.RuralHouse;
public class listOfRemovalRequestsGUI extends JFrame {
hm.removeHouse(rh, rh.getOwner());
houses.remove(rh);
am.removeHouseDeletionRequests(rh);
+ Administrator.saveInstance();
}
}
});