package businessLogic;
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
import java.util.Vector;
-import domain.RuralHouse;
+import common.AdminInterface;
+
+import dataAccess.DB4oManager;
+import domain.Account;
import domain.Administrator;
+import domain.Owner;
+import domain.RuralHouse;
+
+public class AdminManager extends UnicastRemoteObject implements AdminInterface {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public AdminManager() throws RemoteException {
+
+ }
+
+ public Vector<RuralHouse> getAdditionRequests() throws RemoteException {
+ return new Vector<RuralHouse>(Administrator.getInstance()
+ .getAddRequest());
+ }
+
+ public Vector<RuralHouse> getDeletionRequests() throws RemoteException {
+ return new Vector<RuralHouse>(Administrator.getInstance()
+ .getRemoveRequest());
+ }
+
+ public Vector<Account> getOwnerAdditionRequests() throws RemoteException {
+ return new Vector<Account>(Administrator.getInstance()
+ .getNewOwnerRequest());
+ }
+
+ public Vector<Owner> getAllOwners() throws RemoteException {
+ try {
+ return new Vector<Owner>(DB4oManager.getInstance().getOwners());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
-public class AdminManager {
- public AdminManager (){
-
+ public void removeHouseAdditionRequests(RuralHouse house)
+ throws RemoteException {
+ Administrator.getInstance().getAddRequest().remove(house);
}
- public Vector<RuralHouse> getAdditionRequests(){
- return new Vector<RuralHouse>(Administrator.getAddRequest());
+
+ public void removeHouseDeletionRequests(RuralHouse house)
+ throws RemoteException {
+ Administrator.getInstance().getRemoveRequest().remove(house);
+ }
+
+ public void removeOwnerAdditionRequests(int index) throws RemoteException {
+ Administrator.getInstance().getNewOwnerRequest().remove(index);
}
-
- public Vector<RuralHouse> getDeletionRequests(){
- return new Vector<RuralHouse>(Administrator.getRemoveRequest());
+
+ public boolean addAdditionRequest(RuralHouse rh) throws RemoteException {
+ if (this.getAdditionRequests().contains(rh)
+ || !suitsRegulations(rh.getFeatures().getnKitchens(), rh
+ .getFeatures().getnBaths(),rh
+ .getFeatures().getnLivings())) {
+ return false;
+ }
+ return Administrator.getInstance().getAddRequest().add(rh);
+
}
- public void removeHouseAdditionRequests(RuralHouse house){
- Administrator.getAddRequest().remove(house);
+
+ public boolean addDeletionRequest(RuralHouse rh) throws RemoteException {
+ if (this.getDeletionRequests().contains(rh))
+ return false;
+
+ return Administrator.getInstance().getRemoveRequest().add(rh);
+
}
- public void removeHouseDeletionRequests(RuralHouse house){
- Administrator.getRemoveRequest().remove(house);
+
+ public boolean addAccountRequest(String usr, String pss, Owner ow)
+ throws RemoteException {
+
+ Account acc = new Account(usr, pss, ow);
+ if (this.getOwnerAdditionRequests().contains(acc)) {
+ return false;
}
- public void addAdditionRequest(RuralHouse rh){
- Administrator.getAddRequest().add(rh);
+ return Administrator.getInstance().getNewOwnerRequest().add(acc);
+ }
+
+ @Override
+ public void saveInstance() throws RemoteException {
+ Administrator.saveInstance();
+
}
- public void addDeletionRequest(RuralHouse rh){
- Administrator.getRemoveRequest().add(rh);
+
+ private boolean suitsRegulations(int nKitchens, int nBaths, int nLivings) {
+ if (nKitchens < 1 || nLivings < 3 || nBaths < 2)
+ return false;
+ else
+ return true;
}
+
+ // public boolean removeAccount(Account acc) {
+ // if (this.getDeletionRequests().contains(acc))
+ // return false;
+ // return Administrator.getInstance().getNewOwnerRequest().add(acc);
+ // }
}