package businessLogic; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import java.util.Vector; 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 getAdditionRequests() throws RemoteException { return new Vector(Administrator.getInstance() .getAddRequest()); } public Vector getDeletionRequests() throws RemoteException { return new Vector(Administrator.getInstance() .getRemoveRequest()); } public Vector getOwnerAdditionRequests() throws RemoteException { return new Vector(Administrator.getInstance() .getNewOwnerRequest()); } public Vector getAllOwners() throws RemoteException { try { return new Vector(DB4oManager.getInstance().getOwners()); } catch (Exception e) { e.printStackTrace(); } return null; } public void removeHouseAdditionRequests(RuralHouse house) throws RemoteException { Administrator.getInstance().getAddRequest().remove(house); } 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 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 boolean addDeletionRequest(RuralHouse rh) throws RemoteException { if (this.getDeletionRequests().contains(rh)) return false; return Administrator.getInstance().getRemoveRequest().add(rh); } 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; } return Administrator.getInstance().getNewOwnerRequest().add(acc); } @Override public void saveInstance() throws RemoteException { Administrator.saveInstance(); } 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); // } }