From 4f8bcc7fa6ac7640915ac3aa5e115b6d37c08a86 Mon Sep 17 00:00:00 2001 From: epinzolas001 Date: Mon, 18 May 2015 11:49:54 +0200 Subject: [PATCH] Merge conflicts solutioned --- ruralHouses client/.DS_Store | Bin 0 -> 6148 bytes ruralHouses client/.classpath | 10 + ruralHouses client/.gitignore | 4 + ruralHouses client/.project | 17 ++ ruralHouses client/config.xml | 21 +++ ruralHouses client/java.policy | 9 + .../src/common/AccountInterface.java | 14 ++ .../src/common/AdminInterface.java | 34 ++++ .../src/common/BookingInterface.java | 28 +++ .../src/common/HouseInterface.java | 13 +- .../src/common/LoginInterface.java | 15 ++ .../src/common/OfferInterface.java | 29 +++ .../src/common/OwnerInterface.java | 5 +- .../src/configuration/.DS_Store | Bin 0 -> 6148 bytes .../src/configuration/ConfigXML.java | 175 ++++++++++++++++++ .../src/configuration/___IntNames.java | 12 ++ ruralHouses client/src/domain/Account.java | 84 +++++++++ .../src/domain/Administrator.java | 62 +++++++ ruralHouses client/src/domain/Booking.java | 86 +++++++++ ruralHouses client/src/domain/Client.java | 40 ++++ ruralHouses client/src/domain/Districs.java | 34 ++++ .../src/domain/HouseFeatures.java | 67 +++++++ ruralHouses client/src/domain/Offer.java | 143 ++++++++++++++ ruralHouses client/src/domain/Owner.java | 87 +++++++++ ruralHouses client/src/domain/RuralHouse.java | 170 +++++++++++++++++ .../src/exceptions}/.DS_Store | Bin .../src/exceptions/BadDates.java | 17 ++ .../DB4oManagerCreationException.java | 17 ++ .../src/exceptions/OfferCanNotBeBooked.java | 17 ++ .../exceptions/OverlappingOfferExists.java | 17 ++ ruralHouses client/src/gui/.DS_Store | Bin 0 -> 6148 bytes .../src/gui/AddOffersGUI.java | 16 +- .../src/gui/AdminMenuGUI.java | 5 +- .../gui/BookRuralHouseConfirmationWindow.java | 0 .../src/gui/DeleteOfferGUI.java | 15 +- .../src/gui/HouseFeaturesGUI.java | 26 ++- .../src/gui/HousesRelatedOwnerGUI.java | 0 .../src/gui/LoginGUI.java | 60 +++++- .../src/gui/ModifyHouseGUI.java | 34 +++- .../src/gui/ModifyOfferGUI.java | 15 +- .../src/gui/OffersRelatedOwnerGUI.java | 0 .../src/gui/OwnerMenuGUI.java | 0 .../src/gui/OwnerRegistrationGUI.java | 29 ++- .../src/gui/QueryAvailabilityGUI2.java | 32 +++- .../src/gui/RequestDeleteHouseGUI.java | 31 +++- .../src/gui/RequestNewHouseGUI.java | 29 ++- .../src/gui/StartWindow.java | 64 ++++--- .../src/gui/listOfAdditionRequestsGUI.java | 52 ++++-- .../src/gui/listOfBookingRequestsGUI.java | 21 ++- .../src/gui/listOfHousesGUI.java | 0 .../src/gui/listOfOffers.java | 0 .../src/gui/listOfOwnerAddittionRequests.java | 65 +++++-- .../src/gui/listOfRemovalRequestsGUI.java | 50 +++-- ruralHouses/.classpath | 2 +- ruralHouses/.gitignore | 3 +- .../src/businessLogic/AccountManager.java | 17 +- .../src/businessLogic/AdminManager.java | 52 ++++-- .../src/businessLogic/BookingManager.java | 64 ++++--- .../src/businessLogic/HouseManager.java | 15 +- .../src/businessLogic/LoginManager.java | 14 +- .../businessLogic/LoginManagerInterface.java | 12 -- .../src/businessLogic/OfferManager.java | 13 +- .../src/businessLogic/OwnerManager.java | 12 +- ruralHouses/src/common/AccountInterface.java | 13 ++ ruralHouses/src/common/AdminInterface.java | 34 ++++ ruralHouses/src/common/BookingInterface.java | 28 +++ ruralHouses/src/common/HouseInterface.java | 31 ++++ ruralHouses/src/common/LoginInterface.java | 15 ++ ruralHouses/src/common/OfferInterface.java | 29 +++ ruralHouses/src/common/OwnerInterface.java | 15 ++ ruralHouses/src/dataAccess/DB4oManager.java | 19 +- ruralHouses/src/domain/Account.java | 8 +- ruralHouses/src/domain/Administrator.java | 9 +- ruralHouses/src/domain/Booking.java | 8 +- ruralHouses/src/domain/Districs.java | 11 +- ruralHouses/src/domain/HouseFeatures.java | 8 +- ruralHouses/src/domain/Owner.java | 5 +- ruralHouses/src/launcher/RMILauncher.java | 127 +++++++++++++ 78 files changed, 2118 insertions(+), 217 deletions(-) create mode 100644 ruralHouses client/.DS_Store create mode 100644 ruralHouses client/.classpath create mode 100644 ruralHouses client/.gitignore create mode 100644 ruralHouses client/.project create mode 100644 ruralHouses client/config.xml create mode 100644 ruralHouses client/java.policy create mode 100644 ruralHouses client/src/common/AccountInterface.java create mode 100644 ruralHouses client/src/common/AdminInterface.java create mode 100644 ruralHouses client/src/common/BookingInterface.java rename ruralHouses/src/businessLogic/HouseManagerInterface.java => ruralHouses client/src/common/HouseInterface.java (61%) create mode 100644 ruralHouses client/src/common/LoginInterface.java create mode 100644 ruralHouses client/src/common/OfferInterface.java rename ruralHouses/src/businessLogic/OwnerManagerInterface.java => ruralHouses client/src/common/OwnerInterface.java (63%) create mode 100644 ruralHouses client/src/configuration/.DS_Store create mode 100644 ruralHouses client/src/configuration/ConfigXML.java create mode 100644 ruralHouses client/src/configuration/___IntNames.java create mode 100644 ruralHouses client/src/domain/Account.java create mode 100644 ruralHouses client/src/domain/Administrator.java create mode 100644 ruralHouses client/src/domain/Booking.java create mode 100644 ruralHouses client/src/domain/Client.java create mode 100644 ruralHouses client/src/domain/Districs.java create mode 100644 ruralHouses client/src/domain/HouseFeatures.java create mode 100644 ruralHouses client/src/domain/Offer.java create mode 100644 ruralHouses client/src/domain/Owner.java create mode 100644 ruralHouses client/src/domain/RuralHouse.java rename {ruralHouses/src/gui => ruralHouses client/src/exceptions}/.DS_Store (100%) create mode 100644 ruralHouses client/src/exceptions/BadDates.java create mode 100644 ruralHouses client/src/exceptions/DB4oManagerCreationException.java create mode 100644 ruralHouses client/src/exceptions/OfferCanNotBeBooked.java create mode 100644 ruralHouses client/src/exceptions/OverlappingOfferExists.java create mode 100644 ruralHouses client/src/gui/.DS_Store rename {ruralHouses => ruralHouses client}/src/gui/AddOffersGUI.java (96%) rename {ruralHouses => ruralHouses client}/src/gui/AdminMenuGUI.java (96%) rename {ruralHouses => ruralHouses client}/src/gui/BookRuralHouseConfirmationWindow.java (100%) rename {ruralHouses => ruralHouses client}/src/gui/DeleteOfferGUI.java (91%) rename {ruralHouses => ruralHouses client}/src/gui/HouseFeaturesGUI.java (93%) rename {ruralHouses => ruralHouses client}/src/gui/HousesRelatedOwnerGUI.java (100%) rename {ruralHouses => ruralHouses client}/src/gui/LoginGUI.java (67%) rename {ruralHouses => ruralHouses client}/src/gui/ModifyHouseGUI.java (89%) rename {ruralHouses => ruralHouses client}/src/gui/ModifyOfferGUI.java (96%) rename {ruralHouses => ruralHouses client}/src/gui/OffersRelatedOwnerGUI.java (100%) rename {ruralHouses => ruralHouses client}/src/gui/OwnerMenuGUI.java (100%) rename {ruralHouses => ruralHouses client}/src/gui/OwnerRegistrationGUI.java (85%) rename {ruralHouses => ruralHouses client}/src/gui/QueryAvailabilityGUI2.java (93%) rename {ruralHouses => ruralHouses client}/src/gui/RequestDeleteHouseGUI.java (76%) rename {ruralHouses => ruralHouses client}/src/gui/RequestNewHouseGUI.java (94%) rename {ruralHouses => ruralHouses client}/src/gui/StartWindow.java (74%) rename {ruralHouses => ruralHouses client}/src/gui/listOfAdditionRequestsGUI.java (77%) rename {ruralHouses => ruralHouses client}/src/gui/listOfBookingRequestsGUI.java (91%) rename {ruralHouses => ruralHouses client}/src/gui/listOfHousesGUI.java (100%) rename {ruralHouses => ruralHouses client}/src/gui/listOfOffers.java (100%) rename ruralHouses/src/gui/ownerAddittionRequests.java => ruralHouses client/src/gui/listOfOwnerAddittionRequests.java (70%) rename {ruralHouses => ruralHouses client}/src/gui/listOfRemovalRequestsGUI.java (76%) delete mode 100644 ruralHouses/src/businessLogic/LoginManagerInterface.java create mode 100644 ruralHouses/src/common/AccountInterface.java create mode 100644 ruralHouses/src/common/AdminInterface.java create mode 100644 ruralHouses/src/common/BookingInterface.java create mode 100644 ruralHouses/src/common/HouseInterface.java create mode 100644 ruralHouses/src/common/LoginInterface.java create mode 100644 ruralHouses/src/common/OfferInterface.java create mode 100644 ruralHouses/src/common/OwnerInterface.java create mode 100644 ruralHouses/src/launcher/RMILauncher.java diff --git a/ruralHouses client/.DS_Store b/ruralHouses client/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..4eec472ad94ec89a1031c7f3c507e750c2243806 GIT binary patch literal 6148 zcmeHK-HOvd6h6~dtyZN7f_fFa@}e$j>CXyYgtCf)qS%GKaQ#V|)n*AzX%dTsYW#U1 zeFGoBYw>OBcV=cWZ7qTqi^`mG<~uWU&Sd60%}j=fL_hVLM0FynLK!P(Q2au;pLI=2 zx}^pba*TumifBwOg=^lX!7yML_}duZclSKrS0BHCitq0|)IEythSAUqBM*MON!*5B zTS$TRn^CUac7HDz`_Zf)rDH#SJQzi@LEs;F?(~VY z6E{iYzB`pY58Y&h9%=7JQ3!iqd+!B)GJ00Ol4Z?K+iqChR%_m{vZlS=L1o*X&rd_@ zU#b_cZr!}I>%MuLzk4sIPXZg4lye%7;3JG09fF!y&@Gx^V+%pakY2A)@)e#%N-od? z5O+ui@J;AGqIpAniTad!be)SIAA=F0TN< z3fEa+^JfC1rP0xtD?|@Os8FB^75a)HR5;o#?dNFB6{>I&^2r!SKUwG-ijYr7yCvO8 zI0{W^7%&VhGf-C5I-mcyHsAl3gG|jZU>NwX7!Z}6!A>7b(r4@1;`pq!pwFQ!?3XK) lAt>~5EDb)2FF~cC&te1UXv`I&1!6t~Bn_r83>+&1KLF3E2UP$7 literal 0 HcmV?d00001 diff --git a/ruralHouses client/.classpath b/ruralHouses client/.classpath new file mode 100644 index 0000000..40ed315 --- /dev/null +++ b/ruralHouses client/.classpath @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/ruralHouses client/.gitignore b/ruralHouses client/.gitignore new file mode 100644 index 0000000..2a22d9f --- /dev/null +++ b/ruralHouses client/.gitignore @@ -0,0 +1,4 @@ +/bin +/lib +/db +/src/*/*.class \ No newline at end of file diff --git a/ruralHouses client/.project b/ruralHouses client/.project new file mode 100644 index 0000000..755d15b --- /dev/null +++ b/ruralHouses client/.project @@ -0,0 +1,17 @@ + + + ruralHouses_client + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/ruralHouses client/config.xml b/ruralHouses client/config.xml new file mode 100644 index 0000000..d80475a --- /dev/null +++ b/ruralHouses client/config.xml @@ -0,0 +1,21 @@ + + + + localhost + 1099 + RuralHouses + + + + localhost + db/casas.db4o + initialize + 10 + 10 + 8100 + softEng + i4softwEngin2matx + +java.policy + + \ No newline at end of file diff --git a/ruralHouses client/java.policy b/ruralHouses client/java.policy new file mode 100644 index 0000000..a38bc88 --- /dev/null +++ b/ruralHouses client/java.policy @@ -0,0 +1,9 @@ +grant { +permission java.security.AllPermission; +}; +// If there problems with permissions: +// permission java.security.AllPermission; +//permission java.net.SocketPermission "localhost:1099", "connect,resolve"; +//permission java.net.SocketPermission "*", "accept,resolve"; +//permission java.io.FilePermission "casas.db4o", "delete,read,write"; +//permission java.util.PropertyPermission "*", "read"; \ No newline at end of file diff --git a/ruralHouses client/src/common/AccountInterface.java b/ruralHouses client/src/common/AccountInterface.java new file mode 100644 index 0000000..a6f3df9 --- /dev/null +++ b/ruralHouses client/src/common/AccountInterface.java @@ -0,0 +1,14 @@ +package common; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +import domain.Account; + +public interface AccountInterface extends Remote{ + + + public boolean addAccount(Account ac) throws RemoteException; + + public boolean removeAccount(Account ac) throws RemoteException; +} diff --git a/ruralHouses client/src/common/AdminInterface.java b/ruralHouses client/src/common/AdminInterface.java new file mode 100644 index 0000000..eb5e888 --- /dev/null +++ b/ruralHouses client/src/common/AdminInterface.java @@ -0,0 +1,34 @@ +package common; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.util.Vector; + +import domain.Account; +import domain.RuralHouse; + +public interface AdminInterface extends Remote { + + + public Vector getAdditionRequests() throws RemoteException; + + public Vector getDeletionRequests() throws RemoteException ; + + public Vector getOwnerAdditionRequests() throws RemoteException ; + + public void removeHouseAdditionRequests(RuralHouse house) throws RemoteException ; + + public void removeHouseDeletionRequests(RuralHouse house) throws RemoteException ; + + public void removeOwnerAdditionRequests(Account acc) throws RemoteException ; + + public boolean addAdditionRequest(RuralHouse rh) throws RemoteException ; + + public boolean addDeletionRequest(RuralHouse rh) throws RemoteException ; + + public boolean addAccount(Account acc) throws RemoteException ; + + public void saveInstance() throws RemoteException; + + +} diff --git a/ruralHouses client/src/common/BookingInterface.java b/ruralHouses client/src/common/BookingInterface.java new file mode 100644 index 0000000..8262f30 --- /dev/null +++ b/ruralHouses client/src/common/BookingInterface.java @@ -0,0 +1,28 @@ +package common; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.util.Date; +import java.util.Vector; + +import domain.Booking; +import domain.Client; +import domain.RuralHouse; +import exceptions.OfferCanNotBeBooked; + +public interface BookingInterface extends Remote { + + + public int getNumber() throws RemoteException; + + + public void removeDenyBooking(Booking b) throws RemoteException; + + + public void acceptBooking(Booking b) throws RemoteException; + + public Vector createBooking(RuralHouse ruralHouse, Date firstDate, + Date lastDate, Client client) + throws OfferCanNotBeBooked,RemoteException ; + +} \ No newline at end of file diff --git a/ruralHouses/src/businessLogic/HouseManagerInterface.java b/ruralHouses client/src/common/HouseInterface.java similarity index 61% rename from ruralHouses/src/businessLogic/HouseManagerInterface.java rename to ruralHouses client/src/common/HouseInterface.java index 14708c0..9731172 100644 --- a/ruralHouses/src/businessLogic/HouseManagerInterface.java +++ b/ruralHouses client/src/common/HouseInterface.java @@ -1,21 +1,22 @@ -package businessLogic; +package common; +import java.rmi.Remote; import java.rmi.RemoteException; import java.util.Vector; import domain.Owner; import domain.RuralHouse; -public interface HouseManagerInterface { +public interface HouseInterface extends Remote { // For future implementation // public void modifyHouse(int houseName, Owner owner, // String description, String town, int nRooms, int nKitchens, // int nBaths, int nLivings, int nParkings); - public void removeHouse(RuralHouse rh, Owner owner); + public void removeHouse(RuralHouse rh, Owner owner)throws RemoteException; - public Vector getHouses(String name,String town,int nBed , int nKit, int nBath, int nPark, int nLiv) ; + public Vector getHouses(String name,String town,int nBed , int nKit, int nBath, int nPark, int nLiv) throws RemoteException; /** * This method retrieves the existing rural houses @@ -23,8 +24,8 @@ public interface HouseManagerInterface { * @return a Set of rural houses */ public Vector getAllRuralHouses()throws RemoteException, - Exception; + Exception, RemoteException; - public boolean registerNewHouse(RuralHouse rh); + public boolean registerNewHouse(RuralHouse rh)throws RemoteException; } diff --git a/ruralHouses client/src/common/LoginInterface.java b/ruralHouses client/src/common/LoginInterface.java new file mode 100644 index 0000000..bb5e3e0 --- /dev/null +++ b/ruralHouses client/src/common/LoginInterface.java @@ -0,0 +1,15 @@ +package common; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +import domain.Account; + +public interface LoginInterface extends Remote { + + public Account checkCredentials(String usr, String pwd)throws RemoteException; + + + + +} diff --git a/ruralHouses client/src/common/OfferInterface.java b/ruralHouses client/src/common/OfferInterface.java new file mode 100644 index 0000000..6e3b9b3 --- /dev/null +++ b/ruralHouses client/src/common/OfferInterface.java @@ -0,0 +1,29 @@ +package common; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.sql.Date; + +import domain.Offer; +import domain.RuralHouse; +import exceptions.BadDates; +import exceptions.OverlappingOfferExists; + +public interface OfferInterface 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 the created offer, or null, or an exception + */ + public Offer createOffer(RuralHouse ruralHouse, Date firstDay, + Date lastDay, float price) throws OverlappingOfferExists, BadDates, + RemoteException, Exception; + + public void deleteOffer(RuralHouse rh, Offer o) throws RemoteException, + Exception; + +} diff --git a/ruralHouses/src/businessLogic/OwnerManagerInterface.java b/ruralHouses client/src/common/OwnerInterface.java similarity index 63% rename from ruralHouses/src/businessLogic/OwnerManagerInterface.java rename to ruralHouses client/src/common/OwnerInterface.java index 1fe92a9..c96e013 100644 --- a/ruralHouses/src/businessLogic/OwnerManagerInterface.java +++ b/ruralHouses client/src/common/OwnerInterface.java @@ -1,11 +1,12 @@ -package businessLogic; +package common; +import java.rmi.Remote; import java.rmi.RemoteException; import java.util.Vector; import domain.Owner; -public interface OwnerManagerInterface { +public interface OwnerInterface extends Remote { public Vector getOwners() throws RemoteException, diff --git a/ruralHouses client/src/configuration/.DS_Store b/ruralHouses client/src/configuration/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..02896dcabffb9a466cdccda7a63fb3eb6c93d80f GIT binary patch literal 6148 zcmeHKyG{c!5S$GuBGRO!bV-H8ADlucXrV{sArR=`iYO?hKadaLZ(!EDARG=sg%H}6 z*0Z*Ee0L+A?FAsy&FUDK02t8~MS~vG;ohl%Cl85I*0{wDj&O%L9(xx0i$nVEW1OJF z1FrG${pV+Gw_LQ{f*C5$6aDa|7$aaG%ZjzdJ=&Th=ihSHSnY70f56$+oWbP|huyGH zAQT7%LV-}=3k7&)tBuBn(S`z{Kq&C8fbI{8uGlzc!?Ja-DJ1|=uhGRA>t$Iv$+2{)lB=l>~x zncgD5rbI6k2nGI`0y3Ok%%=P(KU+V2o}RUdennT)ysQC@adin`NB5C~GHLTkW9BuE W*-%%}@j@rYMW6^0O(^gS3cLbO4MdFq literal 0 HcmV?d00001 diff --git a/ruralHouses client/src/configuration/ConfigXML.java b/ruralHouses client/src/configuration/ConfigXML.java new file mode 100644 index 0000000..ca4a156 --- /dev/null +++ b/ruralHouses client/src/configuration/ConfigXML.java @@ -0,0 +1,175 @@ +package configuration; + +import java.io.File; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +public class ConfigXML { + private String businessLogicNode; + + private String portRMI; + + private String serviceRMI; + + private String javaPolicyPath; + + private static String db4oFilename; + + //Two possible values: "open" or "initialize" + private String dataBaseOpenMode; + + //Two possible values: true (no instance of RemoteServer needs to be launched) or false (RemoteServer needs to be run first) + private boolean businessLogicLocal; + + //Two possible values: true (if the database is in same node as business logic ) or false (in other case) + private boolean databaseLocal; + + private String databaseNode; + + private int activationDepth; + + private int updateDepth; + + private int databasePort; + + private String user; + + private String password; + + public int getDatabasePort() { + return databasePort; + } + + public String getUser() { + return user; + } + + public String getPassword() { + return password; + } + + public int getActivationDepth() { + return activationDepth; + } + + public int getUpdateDepth() { + return updateDepth; + } + + public boolean isDatabaseLocal() { + return databaseLocal; + } + + public boolean isBusinessLogicLocal() { + return businessLogicLocal; + } + private static ConfigXML theInstance = new ConfigXML(); + + private ConfigXML(){ + + try { + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + Document doc = dBuilder.parse(new File("config.xml")); + doc.getDocumentElement().normalize(); + + NodeList list = doc.getElementsByTagName("config"); + Element config = (Element) list.item(0); // list.item(0) is a Node that is an Element + + + //Two possible values: true (no instance of RemoteServer needs to be launched) or false (RemoteServer needs to be run first) + String value= ((Element)config.getElementsByTagName("businessLogic").item(0)).getAttribute("local"); + businessLogicLocal=value.equals("true"); + + businessLogicNode = getTagValue("businessLogicNode", config); + + portRMI = getTagValue("portRMI", config); + + serviceRMI = getTagValue("serviceRMI", config); + + javaPolicyPath= getTagValue("javaPolicyPath", config); + + db4oFilename = getTagValue("db4oFilename", config); + + //Two possible values: true (no instance of RemoteServer needs to be launched) or false (RemoteServer needs to be run first) + value= ((Element)config.getElementsByTagName("database").item(0)).getAttribute("local"); + databaseLocal=value.equals("true"); + + + //Two possible values: "open" or "initialize" + dataBaseOpenMode= getTagValue("dataBaseOpenMode", config); + + + databaseNode = getTagValue("databaseNode", config); + + activationDepth=Integer.parseInt(getTagValue("activationDepth", config)); + + updateDepth=Integer.parseInt(getTagValue("updateDepth", config)); + + + databasePort=Integer.parseInt(getTagValue("databasePort", config)); + + user=getTagValue("user", config); + + password=getTagValue("password", config); + + System.out.print("Read from config.xml: "); + System.out.print("\t businessLogicLocal="+businessLogicLocal); + System.out.print("\t databaseLocal="+databaseLocal); + System.out.println("\t dataBaseOpenMode="+dataBaseOpenMode); + + } catch (Exception e) { + System.out.println("Error in ConfigXML.java: problems with config.xml"); + e.printStackTrace(); + } + + + + + } + + private static String getTagValue(String sTag, Element eElement) + { + NodeList nlList= eElement.getElementsByTagName(sTag).item(0).getChildNodes(); + Node nValue = (Node) nlList.item(0); + + return nValue.getNodeValue(); + + } + + public static ConfigXML getInstance() { + return theInstance; + } + + public String getBusinessLogicNode() { + return businessLogicNode; + } + + public String getPortRMI() { + return portRMI; + } + + public String getServiceRMI() { + return serviceRMI; + } + public String getDb4oFilename(){ + return db4oFilename; + } + public String getJavaPolicyPath(){ + return javaPolicyPath; + } + public String getDataBaseOpenMode(){ + return dataBaseOpenMode; + } + + public String getDatabaseNode() { + return databaseNode; + } + +} diff --git a/ruralHouses client/src/configuration/___IntNames.java b/ruralHouses client/src/configuration/___IntNames.java new file mode 100644 index 0000000..e2da70d --- /dev/null +++ b/ruralHouses client/src/configuration/___IntNames.java @@ -0,0 +1,12 @@ +package configuration; + +public class ___IntNames { + private static String serverPath = "rmi://158.227.140.215:9999//"; + public static String AdminManager = serverPath+"AdM"; + public static String BookingManager = serverPath+"BoM"; + public static String HouseManager = serverPath+"HoM"; + public static String LoginManager = serverPath+"LoM"; + public static String OfferManager = serverPath+"OfM"; + public static String OwnerManager = serverPath+"OwM"; + +} diff --git a/ruralHouses client/src/domain/Account.java b/ruralHouses client/src/domain/Account.java new file mode 100644 index 0000000..851e547 --- /dev/null +++ b/ruralHouses client/src/domain/Account.java @@ -0,0 +1,84 @@ +package domain; + +import java.io.Serializable; +import java.util.Arrays; + + + +public class Account implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + + + private byte[] username; + private byte[] password; + private byte[] salt; + + + private Owner owner; + private boolean admin = false; + + + public Account(String usr){ + + + } + public Account(String usr, String pass, boolean isAdmin) { + + + } + + public Account(String usr, String pass, Owner ow) { + + + } + + public byte[] getUsername() { + return username; + } + + public byte[] getPassword() { + return password; + } + + public Owner getOwner() { + return owner; + } + + public boolean getAdmin() { + return admin; + } + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public byte[] getSalt() { + return salt; + } + + public void setSalt(byte[] salt) { + this.salt = salt; + } + + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Account other = (Account) obj; + if (!Arrays.equals(password, other.password)) + return false; + if (!Arrays.equals(username, other.username)) + return false; + return true; + } + +} diff --git a/ruralHouses client/src/domain/Administrator.java b/ruralHouses client/src/domain/Administrator.java new file mode 100644 index 0000000..d6e9d79 --- /dev/null +++ b/ruralHouses client/src/domain/Administrator.java @@ -0,0 +1,62 @@ +package domain; + +import java.io.Serializable; +import java.util.LinkedList; + +import configuration.ConfigXML; + +public class Administrator implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + + private static Administrator admin = null; + private static LinkedList addRequest; + private static LinkedList removeRequest; + private static LinkedList newOwnerRequest; + static ConfigXML c; + + private Administrator() { + addRequest = new LinkedList(); + removeRequest = new LinkedList(); + newOwnerRequest = new LinkedList(); + } + + public static Administrator getInstance() { + return null; + + + } + + public static void saveInstance() { + + } + + public LinkedList getAddRequest() { + return addRequest; + } + + public LinkedList getRemoveRequest() { + return removeRequest; + } + + public void setAddRequest(LinkedList addRequest) { + Administrator.addRequest = addRequest; + } + + public void setRemoveRequest(LinkedList removeRequest) { + Administrator.removeRequest = removeRequest; + + } + + public LinkedList getNewOwnerRequest() { + return newOwnerRequest; + } + + public void setNewOwnerRequest(LinkedList newOwnerRequest) { + Administrator.newOwnerRequest = newOwnerRequest; + } + +} diff --git a/ruralHouses client/src/domain/Booking.java b/ruralHouses client/src/domain/Booking.java new file mode 100644 index 0000000..0f72a6c --- /dev/null +++ b/ruralHouses client/src/domain/Booking.java @@ -0,0 +1,86 @@ +package domain; + +import java.io.Serializable; +import java.util.Date; + +public class Booking implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + private int bookingNumber; + private boolean isPaid; + private Date bookingDate; + private Client client; + private Offer offer; + + + public Booking() { + } + + public Booking(int bN , Offer offer,Client client) { + + this.bookingNumber = bN; + this.offer = offer; + this.client=client; + //Booking date is assigned to actual date + this.bookingDate= new java.util.Date(System.currentTimeMillis()); + this.isPaid=false; + } + + public void imprimete(){ + System.out.println(bookingNumber); + System.out.println(isPaid); + System.out.println(bookingDate); + System.out.println(client.toString()); + System.out.println(offer); + } + + public int getBookNumber() { + return this.bookingNumber; + } + + public void setOffer(Offer offer) { + this.offer = offer; + } + + public Offer getOffer() { + return this.offer; + } + + public float getPrice() { + return this.offer.getPrice(); + } + + public void setBookDate(Date bookDate) { + this.bookingDate = bookDate; + } + + public Date getBookDate() { + return this.bookingDate; + } + + public void paid() { + this.isPaid = true; + } + + public void notPaid() { + this.isPaid=false; + } + + public boolean isPaid() { + return isPaid; + } + + + + public Client getClient() { + return client; + } + + public void setClient(Client client) { + this.client = client; + } + +} \ No newline at end of file diff --git a/ruralHouses client/src/domain/Client.java b/ruralHouses client/src/domain/Client.java new file mode 100644 index 0000000..4dd9eb2 --- /dev/null +++ b/ruralHouses client/src/domain/Client.java @@ -0,0 +1,40 @@ +package domain; + +public class Client { + + private String name; + private String mailAccount; + private String telephone; + + public Client(String name, String mailAccount, String telephone) { + super(); + this.name = name; + this.mailAccount = mailAccount; + this.telephone = telephone; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getMailAccount() { + return mailAccount; + } + + public void setMailAccount(String mailAccount) { + this.mailAccount = mailAccount; + } + + public String getTelephone() { + return telephone; + } + + public void setTelephone(String telephone) { + this.telephone = telephone; + } + +} diff --git a/ruralHouses client/src/domain/Districs.java b/ruralHouses client/src/domain/Districs.java new file mode 100644 index 0000000..db62454 --- /dev/null +++ b/ruralHouses client/src/domain/Districs.java @@ -0,0 +1,34 @@ +package domain; + +import java.io.Serializable; + +public enum Districs implements Serializable { + + /** + * + */ + BEA("Beatriz"), GUA("Guazate"), VEG("Vegas"), FAR("Farallón"), CED("Cedro"), MOT( + "Monte LLano"), RIN("Rincón"), PUE("Pueblo"), QUA("Quebrada Arriba"), QEB( + "Quebrada Abajo"), TOI("Toita"), MAB("Matón Abajo"), MAA( + "Matón Arriba"), PIE("Piedras"), PAV("Pasto Viejo"), PEA( + "PedroAvila"), SUM("Sumido"), LAP("Lapa"), CER("Cercadillo"), JAJ( + "JájomeAlto"), CUL("CulebrasAbajo"); + + private static final long serialVersionUID = 1L; + + + private final String longName; + + Districs(String longName) { + this.longName = longName; + } + + public static String[] longNames() { + String[] result = new String[Districs.values().length]; + for (Districs d : Districs.values()) { + result[d.ordinal()] = d.longName; + } + return result; + + } +} diff --git a/ruralHouses client/src/domain/HouseFeatures.java b/ruralHouses client/src/domain/HouseFeatures.java new file mode 100644 index 0000000..e79a446 --- /dev/null +++ b/ruralHouses client/src/domain/HouseFeatures.java @@ -0,0 +1,67 @@ +package domain; + +import java.io.Serializable; + +public class HouseFeatures implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + private int nRooms; + private int nKitchens; + private int nBaths; + private int nLivings; + private int nParkings; + + public HouseFeatures(int nRooms, int nKitchens, int nBaths, int nLivings, + int nParkings) { + super(); + this.setnRooms(nRooms); + this.setnKitchens(nKitchens); + this.setnBaths(nBaths); + this.setnLivings(nLivings); + this.setnParkings(nParkings); + } + + public int getnRooms() { + return nRooms; + } + + public void setnRooms(int nRooms) { + this.nRooms = nRooms; + } + + public int getnKitchens() { + return nKitchens; + } + + public void setnKitchens(int nKitchens) { + this.nKitchens = nKitchens; + } + + public int getnBaths() { + return nBaths; + } + + public void setnBaths(int nBaths) { + this.nBaths = nBaths; + } + + public int getnLivings() { + return nLivings; + } + + public void setnLivings(int nLivings) { + this.nLivings = nLivings; + } + + public int getnParkings() { + return nParkings; + } + + public void setnParkings(int nParkings) { + this.nParkings = nParkings; + } + +} diff --git a/ruralHouses client/src/domain/Offer.java b/ruralHouses client/src/domain/Offer.java new file mode 100644 index 0000000..3442a6a --- /dev/null +++ b/ruralHouses client/src/domain/Offer.java @@ -0,0 +1,143 @@ +package domain; + +import java.io.Serializable; +import java.util.Date; +import java.util.Vector; + + +@SuppressWarnings("serial") +public class Offer implements Serializable { + + + private int offerNumber; + private Date firstDay; // Dates are stored as java.util.Date objects instead of java.sql.Date objects + private Date lastDay; // because, they are not well stored in db4o as java.util.Date objects + private float price; // This is coherent because objects of java.sql.Date are objects of java.util.Date ç + private boolean isBooked; + private Vector bookings = new Vector(); // That is: java.sql.Date is a subclass (or extends) java.util.Date + private RuralHouse ruralHouse; + + + public Offer(int offerNumber,RuralHouse ruralHouse, Date firstDay, Date lastDay, float price){ + this.firstDay=firstDay; + this.lastDay=lastDay; + this.price=price; + this.ruralHouse=ruralHouse; + this.offerNumber=offerNumber; + } + /** + * Get the house number of the offer + * + * @return the house number + */ + public RuralHouse getRuralHouse() { + return this.ruralHouse; + } + + /** + * Set the house number to a offer + * + * @param house number + */ + public void setRuralHouse(RuralHouse ruralHouse) { + this.ruralHouse = ruralHouse; + } + + + /** + * Get the offer number + * + * @return offer number + */ + public int getOfferNumber() { + return this.offerNumber; + } + + + + /** + * Get the first day of the offer + * + * @return the first day + */ + public Date getFirstDay() { + return this.firstDay; + } + + /** + * Set the first day of the offer + * + * @param firstDay + * The first day + */ + public void setFirstDay(Date firstDay) { + this.firstDay = firstDay; + } + + /** + * Get the last day of the offer + * + * @return the last day + */ + public Date getLastDay() { + return this.lastDay; + } + + /** + * Set the last day of the offer + * + * @param lastDay + * The last day + */ + public void setLastDay(Date lastDay) { + this.lastDay = lastDay; + } + + /** + * Get the price + * + * @return price + */ + public float getPrice() { + return this.price; + } + + /** + * Set the price + * + * @param price + */ + public void setPrice(float price) { + this.price = price; + } + + + /** + * This method creates a book with a corresponding parameters + * + * @param First day, last day, house number and telephone + * @return a book + */ + public Vector createBooking(int numBooking,Client client) { + Booking b = new Booking(numBooking,this,client); + this.bookings.add(b); + return this.bookings; + + } + + public String toString(){ + return firstDay.toString()+", "+lastDay.toString()+", "+price; + } + public Vector getBookings() { + return bookings; + } + public void setBookings(Vector bookings) { + this.bookings = bookings; + } + public boolean isBooked() { + return isBooked; + } + public void setBooked(boolean isBooked) { + this.isBooked = isBooked; + } +} \ No newline at end of file diff --git a/ruralHouses client/src/domain/Owner.java b/ruralHouses client/src/domain/Owner.java new file mode 100644 index 0000000..550aceb --- /dev/null +++ b/ruralHouses client/src/domain/Owner.java @@ -0,0 +1,87 @@ +package domain; + +import java.io.Serializable; +import java.util.Vector; + +public class Owner implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + private String bankAccount = ""; + private String name = ""; + private String mailAccount = ""; + private Vector ruralHouses; + +// public Owner(String name) { +// this.name = name; +// ruralHouses = new Vector(); +// } + + public Owner(String name, String bankAccount,String mail) { + this.bankAccount = bankAccount; + this.name = name; + this.mailAccount = mail; + ruralHouses = new Vector(); + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public String getBankAccount() { + return this.bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public Vector getRuralHouses(){ + return this.ruralHouses; + } + + + + public RuralHouse addRuralHouse(String houseName, String description, + String town, int nRooms, int nKitchens, int nBaths, int nLivings, + int nParkings) { + HouseFeatures feature = new HouseFeatures(nRooms, nKitchens, nBaths, nLivings, nParkings); + RuralHouse rh = new RuralHouse(houseName, this, description, town,feature); + ruralHouses.add(rh); + return rh; + } + + public RuralHouse addRuralHouse(RuralHouse rh) { + ruralHouses.add(rh); + return rh; + } + + public String toString() { + return name; + } + + public String getMailAccount() { + return mailAccount; + } + + public void setMailAccount(String mailAccount) { + this.mailAccount = mailAccount; + } + + public Vector getAllOffers (){ + Vector offers = new Vector(); + for(RuralHouse rh: this.ruralHouses){ + for(Offer of : rh.getAllOffers()){ + offers.add(of); + } + } + return offers; + } + +} \ No newline at end of file diff --git a/ruralHouses client/src/domain/RuralHouse.java b/ruralHouses client/src/domain/RuralHouse.java new file mode 100644 index 0000000..4245458 --- /dev/null +++ b/ruralHouses client/src/domain/RuralHouse.java @@ -0,0 +1,170 @@ +package domain; + +import java.io.Serializable; +import java.util.Date; +import java.util.Iterator; +import java.util.Vector; + +public class RuralHouse implements Serializable { + + private static final long serialVersionUID = 1L; + + private String houseName; + private String description; + private Owner owner; + private String district; + private HouseFeatures features; + public Vector offers; + public boolean isAccepted; + + public RuralHouse() { + super(); + } + + public RuralHouse(String houseName, Owner owner, String description, + String ds, HouseFeatures features) { + this.houseName = houseName; + this.description = description; + this.owner = owner; + this.district = ds; + this.features = features; + offers = new Vector(); + } + + public String getHouseName() { + return houseName; + } + + public void setHouseName(String houseName) { + this.houseName = houseName; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Owner getOwner() { + return owner; + } + + public void setOwner(Owner owner) { + this.owner = owner; + } + + public String getDistrict() { + return district; + } + + public void setDistrict(String ds) { + this.district = ds; + } + + public HouseFeatures getFeatures() { + return features; + } + + public void setFeatures(HouseFeatures features) { + this.features = features; + } + + public String toString() { + return this.houseName + ": " + this.district; + } + + public Offer createOffer(int offerNumber, Date firstDay, Date lastDay, + float price) { + Offer off = new Offer(offerNumber, this, firstDay, lastDay, price); + offers.add(off); + return off; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RuralHouse other = (RuralHouse) obj; + if (houseName == null) { + if (other.houseName != null) + return false; + } else if (!houseName.equals(other.houseName)) + return false; + return true; + } + + /** + * This method obtains available offers for a concrete house in a certain + * period + * + * @param houseName + * , the house number where the offers must be obtained + * @param firstDay + * , first day in a period range + * @param lastDay + * , last day in a period range + * @return a vector of offers(Offer class) available in this period + */ + public Vector getOffers(Date firstDay, Date lastDay) { + Vector availableOffers = new Vector(); + Iterator e = offers.iterator(); + Offer offer; + while (e.hasNext()) { + offer = e.next(); + if ((offer.getFirstDay().compareTo(firstDay) >= 0) + && (offer.getLastDay().compareTo(lastDay) <= 0) + && (!offer.isBooked())) + availableOffers.add(offer); + } + return availableOffers; + } + + public Vector getAllOffers() { + + return this.offers; + } + + /** + * This method obtains the offer that match exactly with a given dates that + * has not been booked + * + * @param firstDay + * , first day in a period range + * @param lastDay + * , last day in a period range + * @return the offer(Offer class) available for a this period + */ + public Offer findOffer(Date firstDay, Date lastDay) { + Iterator e = offers.iterator(); + Offer offer = null; + while (e.hasNext()) { + offer = e.next(); + if ((offer.getFirstDay().compareTo(firstDay) == 0) + && (offer.getLastDay().compareTo(lastDay) == 0) + && (!offer.isBooked())) + return offer; + } + return null; + } + + public Offer overlapsWith(Date firstDay, Date lastDay) { + + Iterator e = offers.iterator(); + Offer offer = null; + while (e.hasNext()) { + offer = e.next(); + if ((offer.getFirstDay().compareTo(lastDay) < 0) + && (offer.getLastDay().compareTo(firstDay) > 0)) + return offer; + } + return null; + + } + +} diff --git a/ruralHouses/src/gui/.DS_Store b/ruralHouses client/src/exceptions/.DS_Store similarity index 100% rename from ruralHouses/src/gui/.DS_Store rename to ruralHouses client/src/exceptions/.DS_Store diff --git a/ruralHouses client/src/exceptions/BadDates.java b/ruralHouses client/src/exceptions/BadDates.java new file mode 100644 index 0000000..9cf6915 --- /dev/null +++ b/ruralHouses client/src/exceptions/BadDates.java @@ -0,0 +1,17 @@ +package exceptions; +public class BadDates extends Exception { + private static final long serialVersionUID = 1L; + + public BadDates() + { + super(); + } + /**This exception is triggered if first date is greater than last date in offers + *@param String + *@return None + */ + public BadDates(String s) + { + super(s); + } +} \ No newline at end of file diff --git a/ruralHouses client/src/exceptions/DB4oManagerCreationException.java b/ruralHouses client/src/exceptions/DB4oManagerCreationException.java new file mode 100644 index 0000000..4b49471 --- /dev/null +++ b/ruralHouses client/src/exceptions/DB4oManagerCreationException.java @@ -0,0 +1,17 @@ +package exceptions; +public class DB4oManagerCreationException extends Exception { + private static final long serialVersionUID = 1L; + + public DB4oManagerCreationException() + { + super(); + } + /**This exception is triggered if there is a problem when constructor of DB4oManager is executed + *@param String + *@return None + */ + public DB4oManagerCreationException(String s) + { + super(s); + } +} \ No newline at end of file diff --git a/ruralHouses client/src/exceptions/OfferCanNotBeBooked.java b/ruralHouses client/src/exceptions/OfferCanNotBeBooked.java new file mode 100644 index 0000000..b4539d0 --- /dev/null +++ b/ruralHouses client/src/exceptions/OfferCanNotBeBooked.java @@ -0,0 +1,17 @@ +package exceptions; +public class OfferCanNotBeBooked extends Exception { + private static final long serialVersionUID = 1L; + + public OfferCanNotBeBooked() { + super(); + } + + /**This exception is triggered if an offer cannot be booked + *@param String + *@return None + */ + public OfferCanNotBeBooked(String s) + { + super(s); + } +} \ No newline at end of file diff --git a/ruralHouses client/src/exceptions/OverlappingOfferExists.java b/ruralHouses client/src/exceptions/OverlappingOfferExists.java new file mode 100644 index 0000000..c776a3b --- /dev/null +++ b/ruralHouses client/src/exceptions/OverlappingOfferExists.java @@ -0,0 +1,17 @@ +package exceptions; +public class OverlappingOfferExists extends Exception { + private static final long serialVersionUID = 1L; + + public OverlappingOfferExists() + { + super(); + } + /**This exception is triggered if there exists an overlapping offer + *@param String + *@return None + */ + public OverlappingOfferExists(String s) + { + super(s); + } +} \ No newline at end of file diff --git a/ruralHouses client/src/gui/.DS_Store b/ruralHouses client/src/gui/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 row = new Vector(); row.add(of.getOfferNumber()); row.add(of.getFirstDay()); @@ -275,14 +278,23 @@ public class HouseFeaturesGUI extends JFrame { } private void jButton_ActionPerformed(ActionEvent arg0) { - BookingManager bookingM = new BookingManager(); + BookingInterface bookingM = null; + try { + bookingM = (BookingInterface) Naming + .lookup(___IntNames.BookingManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } + + //RegExp to see if telephone number is correct??TODO if (telIn.getText().matches("[976]\\d{2}[.\\- ]?\\d{3}[.\\- ]?\\d{3}") && mailField - .getText() - .matches( - "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$") - && !nameField.getText().isEmpty()) { + .getText() + .matches( + "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$") + && !nameField.getText().isEmpty()) { labelPhone.setText(""); Vector book = null; try { diff --git a/ruralHouses/src/gui/HousesRelatedOwnerGUI.java b/ruralHouses client/src/gui/HousesRelatedOwnerGUI.java similarity index 100% rename from ruralHouses/src/gui/HousesRelatedOwnerGUI.java rename to ruralHouses client/src/gui/HousesRelatedOwnerGUI.java diff --git a/ruralHouses/src/gui/LoginGUI.java b/ruralHouses client/src/gui/LoginGUI.java similarity index 67% rename from ruralHouses/src/gui/LoginGUI.java rename to ruralHouses client/src/gui/LoginGUI.java index ab22f39..cf075b2 100644 --- a/ruralHouses/src/gui/LoginGUI.java +++ b/ruralHouses client/src/gui/LoginGUI.java @@ -2,8 +2,15 @@ package gui; import java.awt.Color; import java.awt.Frame; +import java.awt.KeyEventDispatcher; +import java.awt.KeyboardFocusManager; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.rmi.Naming; +import java.rmi.RemoteException; import javax.swing.JButton; import javax.swing.JFrame; @@ -13,8 +20,9 @@ import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.SwingConstants; -import businessLogic.LoginManager; -import businessLogic.LoginManagerInterface; +import common.LoginInterface; + +import configuration.___IntNames; import domain.Account; public class LoginGUI extends JFrame { @@ -23,21 +31,52 @@ public class LoginGUI extends JFrame { private JPanel jContentPane = null; private JTextField usernameField; private JPasswordField passwordField; - private LoginManagerInterface loginManager = new LoginManager(); + private LoginInterface loginManager = null; private JLabel loginFeedback; private JButton btnRegister; + protected boolean isFocused = false; public LoginGUI() { super(); initialize(); } private void initialize() { + try { + loginManager = (LoginInterface) Naming + .lookup(___IntNames.LoginManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } this.setSize(449, 293); this.setContentPane(getJContentPane()); this.setTitle("Login"); + addWindowListener(new WindowAdapter() { + + @Override + public void windowGainedFocus(WindowEvent e) { + isFocused = true; + } + + @Override + public void windowLostFocus(WindowEvent e) { + isFocused = false; + } + }); + + KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() { + + @Override + public boolean dispatchKeyEvent(KeyEvent e) { + if (isFocused && e.getKeyCode() == KeyEvent.VK_ENTER ) + jButton_ActionPerformed(); + + return false; + }}); } + private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); @@ -64,7 +103,7 @@ public class LoginGUI extends JFrame { loginButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { - jButton_ActionPerformed(arg0); + jButton_ActionPerformed(); } }); loginButton.setBounds(95, 179, 117, 25); @@ -97,9 +136,18 @@ public class LoginGUI extends JFrame { } - private void jButton_ActionPerformed(ActionEvent e){ + + + + private void jButton_ActionPerformed(){ - Account acc = loginManager.checkCredentials(usernameField.getText(),new String(passwordField.getPassword())); + Account acc = null; + try { + acc = loginManager.checkCredentials(usernameField.getText(),new String(passwordField.getPassword())); + } catch (RemoteException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } if (acc == null) loginFeedback.setText("Incorrect username or password"); else if( acc.getAdmin()) { this.setVisible(false); diff --git a/ruralHouses/src/gui/ModifyHouseGUI.java b/ruralHouses client/src/gui/ModifyHouseGUI.java similarity index 89% rename from ruralHouses/src/gui/ModifyHouseGUI.java rename to ruralHouses client/src/gui/ModifyHouseGUI.java index 06b679e..3377c69 100644 --- a/ruralHouses/src/gui/ModifyHouseGUI.java +++ b/ruralHouses client/src/gui/ModifyHouseGUI.java @@ -4,6 +4,8 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import java.rmi.Naming; +import java.rmi.RemoteException; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; @@ -15,7 +17,9 @@ import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.border.EmptyBorder; -import businessLogic.HouseManager; +import common.HouseInterface; + +import configuration.___IntNames; import domain.Districs; import domain.HouseFeatures; import domain.Owner; @@ -132,14 +136,26 @@ public class ModifyHouseGUI extends JFrame { baths_f.getText()), new Integer( lRooms_f.getText()), new Integer( parkings_f.getText()))); - HouseManager hm = new HouseManager(); - - if (hm.registerNewHouse(newRh)) { - owner.getRuralHouses().add(newRh); - houseBox.removeItem(rh); - feedback.setText("House properly modified"); - } else - feedback.setText("Imposible to modify the house"); + HouseInterface hm= null; + try { + hm = (HouseInterface) Naming + .lookup(___IntNames.HouseManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } + + try { + if (hm.registerNewHouse(newRh)) { + owner.getRuralHouses().add(newRh); + houseBox.removeItem(rh); + feedback.setText("House properly modified"); + } else + feedback.setText("Imposible to modify the house"); + } catch (RemoteException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } }); diff --git a/ruralHouses/src/gui/ModifyOfferGUI.java b/ruralHouses client/src/gui/ModifyOfferGUI.java similarity index 96% rename from ruralHouses/src/gui/ModifyOfferGUI.java rename to ruralHouses client/src/gui/ModifyOfferGUI.java index 6f69df6..4dbdacc 100644 --- a/ruralHouses/src/gui/ModifyOfferGUI.java +++ b/ruralHouses client/src/gui/ModifyOfferGUI.java @@ -11,6 +11,7 @@ import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.rmi.Naming; import java.sql.Date; import java.text.DateFormat; import java.util.Calendar; @@ -23,10 +24,10 @@ import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; -import businessLogic.OfferManager; - import com.toedter.calendar.JCalendar; +import common.OfferInterface; +import configuration.___IntNames; import domain.Offer; import domain.RuralHouse; import exceptions.BadDates; @@ -265,7 +266,15 @@ public class ModifyOfferGUI extends JFrame { // Obtain the business logic from a StartWindow class (local or // remote) - OfferManager offerM = new OfferManager(); + OfferInterface offerM = null; + try { + offerM = (OfferInterface) Naming + .lookup(___IntNames.OfferManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } + offerM.deleteOffer(ruralHouse, (Offer) comboBox_o.getSelectedItem()); offerM.createOffer(ruralHouse, firstDay, lastDay, price); diff --git a/ruralHouses/src/gui/OffersRelatedOwnerGUI.java b/ruralHouses client/src/gui/OffersRelatedOwnerGUI.java similarity index 100% rename from ruralHouses/src/gui/OffersRelatedOwnerGUI.java rename to ruralHouses client/src/gui/OffersRelatedOwnerGUI.java diff --git a/ruralHouses/src/gui/OwnerMenuGUI.java b/ruralHouses client/src/gui/OwnerMenuGUI.java similarity index 100% rename from ruralHouses/src/gui/OwnerMenuGUI.java rename to ruralHouses client/src/gui/OwnerMenuGUI.java diff --git a/ruralHouses/src/gui/OwnerRegistrationGUI.java b/ruralHouses client/src/gui/OwnerRegistrationGUI.java similarity index 85% rename from ruralHouses/src/gui/OwnerRegistrationGUI.java rename to ruralHouses client/src/gui/OwnerRegistrationGUI.java index c088e39..fad1933 100644 --- a/ruralHouses/src/gui/OwnerRegistrationGUI.java +++ b/ruralHouses client/src/gui/OwnerRegistrationGUI.java @@ -3,6 +3,8 @@ package gui; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.rmi.Naming; +import java.rmi.RemoteException; import javax.swing.JButton; import javax.swing.JFrame; @@ -11,7 +13,9 @@ import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; -import businessLogic.AdminManager; +import common.AdminInterface; + +import configuration.___IntNames; import domain.Account; import domain.Owner; @@ -20,7 +24,7 @@ public class OwnerRegistrationGUI extends JFrame { private JPanel panel; private JTextField nameField; private JTextField userNameField; - private AdminManager am = new AdminManager(); + private AdminInterface am = null; private JTextField passField; private JTextField bank1Field; private JTextField bank2Field; @@ -34,6 +38,14 @@ public class OwnerRegistrationGUI extends JFrame { * Create the frame. */ public OwnerRegistrationGUI() { + + try { + am = (AdminInterface) Naming + .lookup(___IntNames.AdminManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } setTitle("Owner registration"); setBounds(100, 100, 500, 400); panel = new JPanel(); @@ -131,10 +143,15 @@ public class OwnerRegistrationGUI extends JFrame { Account acc = new Account(this.userNameField.getText(), this.passField.getText(), own); - if (this.am.addAccount(acc)) { - this.feedback.setText("Request sended"); - } else { - this.feedback.setText("Can't send the request"); + try { + if (this.am.addAccount(acc)) { + this.feedback.setText("Request sended"); + } else { + this.feedback.setText("Can't send the request"); + } + } catch (RemoteException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); } } diff --git a/ruralHouses/src/gui/QueryAvailabilityGUI2.java b/ruralHouses client/src/gui/QueryAvailabilityGUI2.java similarity index 93% rename from ruralHouses/src/gui/QueryAvailabilityGUI2.java rename to ruralHouses client/src/gui/QueryAvailabilityGUI2.java index 18555fc..9cd01c8 100644 --- a/ruralHouses/src/gui/QueryAvailabilityGUI2.java +++ b/ruralHouses client/src/gui/QueryAvailabilityGUI2.java @@ -12,6 +12,8 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.rmi.Naming; +import java.rmi.RemoteException; import java.sql.Date; import java.text.DateFormat; import java.util.Calendar; @@ -32,10 +34,10 @@ import javax.swing.JRadioButton; import javax.swing.JTextField; import javax.swing.SwingConstants; -import businessLogic.HouseManager; - import com.toedter.calendar.JCalendar; +import common.HouseInterface; +import configuration.___IntNames; import domain.Districs; import domain.RuralHouse; @@ -75,12 +77,20 @@ public class QueryAvailabilityGUI2 extends JFrame { private final JTextField nBaths = new JTextField(); private final JLabel lblParkings = new JLabel("Parking slots:"); private final JTextField nParkings = new JTextField(); - private HouseManager houseMan = new HouseManager(); + private HouseInterface houseMan = null; private final JLabel lblNumberOfLivings = new JLabel("Number of Livings:"); private final JTextField nLivings = new JTextField(); private final JLabel feedback = new JLabel(""); public QueryAvailabilityGUI2() { + + try { + houseMan = (HouseInterface) Naming + .lookup(___IntNames.HouseManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } nLivings.setText("0"); nLivings.setColumns(10); nParkings.setText("0"); @@ -286,11 +296,17 @@ public class QueryAvailabilityGUI2 extends JFrame { private void jButton1_actionPerformed(ActionEvent e) { if (this.district.isSelected()) { - Vector houses = houseMan.getHouses(null, jComboBox1 - .getSelectedItem().toString(), Integer.parseInt(nBedrooms - .getText()), Integer.parseInt(nKitchens.getText()), Integer - .parseInt(nBaths.getText()), Integer.parseInt(nParkings - .getText()), Integer.parseInt(nLivings.getText())); + Vector houses = null; + try { + houses = houseMan.getHouses(null, jComboBox1 + .getSelectedItem().toString(), Integer.parseInt(nBedrooms + .getText()), Integer.parseInt(nKitchens.getText()), Integer + .parseInt(nBaths.getText()), Integer.parseInt(nParkings + .getText()), Integer.parseInt(nLivings.getText())); + } catch (NumberFormatException | RemoteException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } listOfHousesGUI list = new listOfHousesGUI(houses); list.setVisible(true); } else if (this.ruralHouseName.isSelected()) { diff --git a/ruralHouses/src/gui/RequestDeleteHouseGUI.java b/ruralHouses client/src/gui/RequestDeleteHouseGUI.java similarity index 76% rename from ruralHouses/src/gui/RequestDeleteHouseGUI.java rename to ruralHouses client/src/gui/RequestDeleteHouseGUI.java index 3285a89..a888e32 100644 --- a/ruralHouses/src/gui/RequestDeleteHouseGUI.java +++ b/ruralHouses client/src/gui/RequestDeleteHouseGUI.java @@ -4,6 +4,8 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import java.rmi.Naming; +import java.rmi.RemoteException; import javax.swing.JButton; import javax.swing.JComboBox; @@ -13,7 +15,9 @@ import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.border.EmptyBorder; -import businessLogic.AdminManager; +import common.AdminInterface; + +import configuration.___IntNames; import domain.Owner; import domain.RuralHouse; @@ -27,14 +31,20 @@ public class RequestDeleteHouseGUI extends JFrame { private Owner owner; private JComboBox comboBox; private JButton btnDelete; - private AdminManager am; + private AdminInterface am = null; JLabel feedback = new JLabel(""); /** * Create the frame. */ public RequestDeleteHouseGUI(Owner o) { - am = new AdminManager(); + try { + am = (AdminInterface) Naming + .lookup(___IntNames.AdminManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } this.owner = o; setBounds(100, 100, 450, 300); contentPane = new JPanel(); @@ -85,11 +95,16 @@ public class RequestDeleteHouseGUI extends JFrame { private void actionListenerButton(ActionEvent e){ RuralHouse toDel = (RuralHouse)comboBox.getSelectedItem(); - if(am.addDeletionRequest(toDel)){ - feedback.setText("Delete request sended"); - - }else{ - feedback.setText("Request cannot be sended(Already sended)"); + try { + if(am.addDeletionRequest(toDel)){ + feedback.setText("Delete request sended"); + + }else{ + feedback.setText("Request cannot be sended(Already sended)"); + } + } catch (RemoteException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); } } } diff --git a/ruralHouses/src/gui/RequestNewHouseGUI.java b/ruralHouses client/src/gui/RequestNewHouseGUI.java similarity index 94% rename from ruralHouses/src/gui/RequestNewHouseGUI.java rename to ruralHouses client/src/gui/RequestNewHouseGUI.java index 76b2465..185e47d 100644 --- a/ruralHouses/src/gui/RequestNewHouseGUI.java +++ b/ruralHouses client/src/gui/RequestNewHouseGUI.java @@ -3,6 +3,8 @@ package gui; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.rmi.Naming; +import java.rmi.RemoteException; import javax.swing.DefaultComboBoxModel; import javax.swing.GroupLayout; @@ -17,7 +19,9 @@ import javax.swing.LayoutStyle.ComponentPlacement; import javax.swing.SwingConstants; import javax.swing.border.EmptyBorder; -import businessLogic.AdminManager; +import common.AdminInterface; + +import configuration.___IntNames; import domain.Districs; import domain.HouseFeatures; import domain.Owner; @@ -48,7 +52,7 @@ public class RequestNewHouseGUI extends JFrame { private JLabel lblBaths; private JTextField baths_f; private JButton btnRegister; - private AdminManager am; + private AdminInterface am = null; private JComboBox comboBox; @@ -58,7 +62,13 @@ public class RequestNewHouseGUI extends JFrame { public RequestNewHouseGUI(Owner o) { comboBox = new JComboBox(new DefaultComboBoxModel( Districs.longNames())); - am = new AdminManager(); + try { + am = (AdminInterface) Naming + .lookup(___IntNames.AdminManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } this.setTitle("New House"); setBackground(Color.WHITE); this.getContentPane().setLayout(null); @@ -134,10 +144,15 @@ public class RequestNewHouseGUI extends JFrame { e.printStackTrace(); } - if(am.addAdditionRequest(rh)){ - feedback.setText("Request sended"); - }else{ - feedback.setText("Request cannot be sended(Already added)"); + try { + if(am.addAdditionRequest(rh)){ + feedback.setText("Request sended"); + }else{ + feedback.setText("Request cannot be sended(Already added)"); + } + } catch (RemoteException e) { + // TODO Auto-generated catch block + e.printStackTrace(); } } }); diff --git a/ruralHouses/src/gui/StartWindow.java b/ruralHouses client/src/gui/StartWindow.java similarity index 74% rename from ruralHouses/src/gui/StartWindow.java rename to ruralHouses client/src/gui/StartWindow.java index 385d09b..5325d56 100644 --- a/ruralHouses/src/gui/StartWindow.java +++ b/ruralHouses client/src/gui/StartWindow.java @@ -5,6 +5,9 @@ package gui; */ import java.awt.Color; import java.awt.Font; +import java.awt.KeyEventDispatcher; +import java.awt.KeyboardFocusManager; +import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.rmi.RMISecurityManager; @@ -18,10 +21,9 @@ import javax.swing.UIManager; import configuration.ConfigXML; - @SuppressWarnings("deprecation") public class StartWindow extends JFrame { - + private static final long serialVersionUID = 1L; private JPanel jContentPane = null; @@ -29,39 +31,42 @@ public class StartWindow extends JFrame { private JButton boton3 = null; private static configuration.ConfigXML c; - //public static ApplicationFacadeInterface facadeInterface; + // public static ApplicationFacadeInterface facadeInterface; private JLabel lblNewLabel; - + public static void main(String[] args) { StartWindow a = new StartWindow(); - a.setVisible(true); + System.setProperty("java.security.policy", "java.policy"); + + a.setVisible(true); + try { - c=ConfigXML.getInstance(); + c = ConfigXML.getInstance(); System.setProperty("java.security.policy", c.getJavaPolicyPath()); - + System.setSecurityManager(new RMISecurityManager()); UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - c=configuration.ConfigXML.getInstance(); + c = configuration.ConfigXML.getInstance(); - }catch (com.db4o.ext.DatabaseFileLockedException e) { - a.lblNewLabel.setText("Database locked: Do not run BusinessLogicServer or BusinessLogicServer!!"); - a.lblNewLabel.setForeground(Color.RED); - System.out.println("Error in StartWindow: "+e.toString()); + } catch (com.db4o.ext.DatabaseFileLockedException e) { + a.lblNewLabel + .setText("Database locked: Do not run BusinessLogicServer or BusinessLogicServer!!"); + a.lblNewLabel.setForeground(Color.RED); + System.out.println("Error in StartWindow: " + e.toString()); } catch (Exception e) { - a.lblNewLabel.setText("Error: "+e.toString()); - a.lblNewLabel.setForeground(Color.RED); - System.out.println("Error in StartWindow: "+e.toString()); + a.lblNewLabel.setText("Error: " + e.toString()); + a.lblNewLabel.setForeground(Color.RED); + System.out.println("Error in StartWindow: " + e.toString()); } - - } + /** * This is the default constructor */ @@ -75,12 +80,26 @@ public class StartWindow extends JFrame { System.exit(1); } + }); + + KeyboardFocusManager.getCurrentKeyboardFocusManager() + .addKeyEventDispatcher(new KeyEventDispatcher() { + + @Override + public boolean dispatchKeyEvent(KeyEvent e) { + switch (e.getKeyCode()) { + + case KeyEvent.VK_ESCAPE: + System.exit(1); + + } + return false; + } + }); initialize(); - //this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + // this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } - - /** * This method initializes this @@ -130,7 +149,7 @@ public class StartWindow extends JFrame { } return boton2; } - + /** * This method initializes boton3 * @@ -144,7 +163,7 @@ public class StartWindow extends JFrame { boton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { // C?digo cedido por la universidad - //JFrame a = new QueryAvailabilityWindow(); + // JFrame a = new QueryAvailabilityWindow(); JFrame a = new QueryAvailabilityGUI2(); a.setVisible(true); @@ -153,7 +172,6 @@ public class StartWindow extends JFrame { } return boton3; } - private JLabel getLblNewLabel() { if (lblNewLabel == null) { diff --git a/ruralHouses/src/gui/listOfAdditionRequestsGUI.java b/ruralHouses client/src/gui/listOfAdditionRequestsGUI.java similarity index 77% rename from ruralHouses/src/gui/listOfAdditionRequestsGUI.java rename to ruralHouses client/src/gui/listOfAdditionRequestsGUI.java index cd501b5..d112532 100644 --- a/ruralHouses/src/gui/listOfAdditionRequestsGUI.java +++ b/ruralHouses client/src/gui/listOfAdditionRequestsGUI.java @@ -4,6 +4,8 @@ import java.awt.Font; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.rmi.Naming; +import java.rmi.RemoteException; import java.util.Enumeration; import java.util.Vector; @@ -16,10 +18,10 @@ import javax.swing.JTable; import javax.swing.border.EmptyBorder; import javax.swing.table.DefaultTableModel; -import businessLogic.AdminManager; -import businessLogic.HouseManager; -import businessLogic.HouseManagerInterface; -import domain.Administrator; +import common.AdminInterface; +import common.HouseInterface; + +import configuration.___IntNames; import domain.RuralHouse; public class listOfAdditionRequestsGUI extends JFrame { @@ -31,12 +33,21 @@ public class listOfAdditionRequestsGUI extends JFrame { private JPanel contentPane; private JTable table; private DefaultTableModel tableModel; - private AdminManager am = new AdminManager(); + private AdminInterface am = null; private Vector houses; /** * Create the frame. */ public listOfAdditionRequestsGUI() { + + try { + am = (AdminInterface) Naming + .lookup(___IntNames.AdminManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } + setTitle("Adding requests"); try { this.houses= am.getAdditionRequests(); @@ -86,12 +97,26 @@ public class listOfAdditionRequestsGUI extends JFrame { btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (table.getRowCount()!=0 && table.getSelectedRow() != -1) { - HouseManagerInterface hm = new HouseManager(); + HouseInterface hm= null; + try { + hm = (HouseInterface) Naming + .lookup(___IntNames.HouseManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } + RuralHouse rh = houses.get(table.getSelectedRow()); //TODO when the house is not added show a warning to the user. Method below returns a boolean stating that. - hm.registerNewHouse(rh); - am.removeHouseAdditionRequests(rh); - Administrator.saveInstance(); + try { + hm.registerNewHouse(rh); + am.removeHouseAdditionRequests(rh); + am.saveInstance(); + } catch (RemoteException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + ((DefaultTableModel)table.getModel()).removeRow(houses.indexOf(rh)); houses.remove(rh); } @@ -105,8 +130,13 @@ public class listOfAdditionRequestsGUI extends JFrame { public void actionPerformed(ActionEvent arg0) { if (table.getRowCount()!=0 && table.getSelectedRow() != -1) { RuralHouse rh = houses.get(table.getSelectedRow()); - am.removeHouseAdditionRequests(rh); - Administrator.saveInstance(); + try { + am.removeHouseAdditionRequests(rh); + am.saveInstance(); + } catch (RemoteException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } ((DefaultTableModel)table.getModel()).removeRow(houses.indexOf(rh)); houses.remove(rh); } diff --git a/ruralHouses/src/gui/listOfBookingRequestsGUI.java b/ruralHouses client/src/gui/listOfBookingRequestsGUI.java similarity index 91% rename from ruralHouses/src/gui/listOfBookingRequestsGUI.java rename to ruralHouses client/src/gui/listOfBookingRequestsGUI.java index 831cc3c..1df8f2a 100644 --- a/ruralHouses/src/gui/listOfBookingRequestsGUI.java +++ b/ruralHouses client/src/gui/listOfBookingRequestsGUI.java @@ -4,6 +4,7 @@ import java.awt.Font; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.rmi.RemoteException; import java.util.Enumeration; import java.util.Vector; @@ -16,7 +17,8 @@ import javax.swing.JTable; import javax.swing.border.EmptyBorder; import javax.swing.table.DefaultTableModel; -import businessLogic.BookingManager; +import common.BookingInterface; + import domain.Booking; import domain.Offer; @@ -29,7 +31,7 @@ public class listOfBookingRequestsGUI extends JFrame { private JPanel contentPane; private JTable table; private Offer off; - private BookingManager bookM = new BookingManager(); + private BookingInterface bookM =null; private DefaultTableModel tableModel; private Vector bookings = new Vector(); @@ -39,6 +41,7 @@ public class listOfBookingRequestsGUI extends JFrame { public listOfBookingRequestsGUI(Offer of) { setTitle("Adding requests"); this.off = of; + try { init(); @@ -90,8 +93,13 @@ public class listOfBookingRequestsGUI extends JFrame { if (table.getRowCount() != 0 && table.getSelectedRow() != -1) { if (table.getRowCount() != 0 && table.getSelectedRow() != -1) { Booking book = bookings.get(table.getSelectedRow()); - bookM.acceptBooking(book); + try { + bookM.acceptBooking(book); + } catch (RemoteException e1) { + e1.printStackTrace(); + } } + } } }); @@ -103,7 +111,12 @@ public class listOfBookingRequestsGUI extends JFrame { public void actionPerformed(ActionEvent arg0) { if (table.getRowCount() != 0 && table.getSelectedRow() != -1) { Booking book = bookings.get(table.getSelectedRow()); - bookM.removeDenyBooking(book); + try { + bookM.removeDenyBooking(book); + } catch (RemoteException e) { + e.printStackTrace(); + } + } } }); diff --git a/ruralHouses/src/gui/listOfHousesGUI.java b/ruralHouses client/src/gui/listOfHousesGUI.java similarity index 100% rename from ruralHouses/src/gui/listOfHousesGUI.java rename to ruralHouses client/src/gui/listOfHousesGUI.java diff --git a/ruralHouses/src/gui/listOfOffers.java b/ruralHouses client/src/gui/listOfOffers.java similarity index 100% rename from ruralHouses/src/gui/listOfOffers.java rename to ruralHouses client/src/gui/listOfOffers.java diff --git a/ruralHouses/src/gui/ownerAddittionRequests.java b/ruralHouses client/src/gui/listOfOwnerAddittionRequests.java similarity index 70% rename from ruralHouses/src/gui/ownerAddittionRequests.java rename to ruralHouses client/src/gui/listOfOwnerAddittionRequests.java index f72d1cc..9e1b6a3 100644 --- a/ruralHouses/src/gui/ownerAddittionRequests.java +++ b/ruralHouses client/src/gui/listOfOwnerAddittionRequests.java @@ -4,6 +4,8 @@ import java.awt.Font; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.rmi.Naming; +import java.rmi.RemoteException; import java.util.Enumeration; import java.util.Vector; @@ -16,12 +18,13 @@ import javax.swing.JTable; import javax.swing.border.EmptyBorder; import javax.swing.table.DefaultTableModel; -import businessLogic.AccountManager; -import businessLogic.AdminManager; +import common.AccountInterface; +import common.AdminInterface; + +import configuration.___IntNames; import domain.Account; -import domain.Administrator; -public class ownerAddittionRequests extends JFrame { +public class listOfOwnerAddittionRequests extends JFrame { /** * @@ -30,15 +33,22 @@ public class ownerAddittionRequests extends JFrame { private JPanel contentPane; private JTable table; private DefaultTableModel tableModel; - private AdminManager am = new AdminManager(); + private AdminInterface am = null; private Vector accounts; /** * Create the frame. */ - public ownerAddittionRequests() { + public listOfOwnerAddittionRequests() { + try { + am = (AdminInterface) Naming + .lookup(___IntNames.AdminManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } setTitle("Adding requests"); try { - this.accounts= am.getOwnerAdditionReuests(); + this.accounts= am.getOwnerAdditionRequests(); init(); } catch (Exception e) { e.printStackTrace(); @@ -46,6 +56,14 @@ public class ownerAddittionRequests extends JFrame { } private void init() throws Exception { + + try { + am = (AdminInterface) Naming + .lookup(___IntNames.AdminManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } setBounds(100, 100, 600, 450); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); @@ -84,12 +102,25 @@ public class ownerAddittionRequests extends JFrame { btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (table.getRowCount()!=0 && table.getSelectedRow() != -1) { - AccountManager ama = new AccountManager(); + AccountInterface acm = null; + + try { + acm = (AccountInterface) Naming + .lookup(___IntNames.AdminManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } Account accou = accounts.get(table.getSelectedRow()); - //TODO when the house is not added show a warning to the user. Method below returns a boolean stating that. - ama.addAccount(accou); - am.removeOwnerAdditionRequests(accou);; - Administrator.saveInstance(); + try { + acm.addAccount(accou); + am.removeOwnerAdditionRequests(accou); + am.saveInstance(); + } catch (RemoteException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + ((DefaultTableModel)table.getModel()).removeRow(accounts.indexOf(accou)); accounts.remove(accou); } @@ -103,8 +134,14 @@ public class ownerAddittionRequests extends JFrame { public void actionPerformed(ActionEvent arg0) { if (table.getRowCount()!=0 && table.getSelectedRow() != -1) { Account acc = accounts.get(table.getSelectedRow()); - am.removeOwnerAdditionRequests(acc); - Administrator.saveInstance(); + try { + am.removeOwnerAdditionRequests(acc); + am.saveInstance(); + } catch (RemoteException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + ((DefaultTableModel)table.getModel()).removeRow(accounts.indexOf(acc)); accounts.remove(acc); } diff --git a/ruralHouses/src/gui/listOfRemovalRequestsGUI.java b/ruralHouses client/src/gui/listOfRemovalRequestsGUI.java similarity index 76% rename from ruralHouses/src/gui/listOfRemovalRequestsGUI.java rename to ruralHouses client/src/gui/listOfRemovalRequestsGUI.java index 43db732..62daded 100644 --- a/ruralHouses/src/gui/listOfRemovalRequestsGUI.java +++ b/ruralHouses client/src/gui/listOfRemovalRequestsGUI.java @@ -4,6 +4,8 @@ import java.awt.Font; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.rmi.Naming; +import java.rmi.RemoteException; import java.util.Enumeration; import java.util.Vector; @@ -16,10 +18,10 @@ import javax.swing.JTable; import javax.swing.border.EmptyBorder; import javax.swing.table.DefaultTableModel; -import businessLogic.AdminManager; -import businessLogic.HouseManager; -import businessLogic.HouseManagerInterface; -import domain.Administrator; +import common.AdminInterface; +import common.HouseInterface; + +import configuration.___IntNames; import domain.RuralHouse; public class listOfRemovalRequestsGUI extends JFrame { @@ -31,13 +33,20 @@ public class listOfRemovalRequestsGUI extends JFrame { private JPanel contentPane; private JTable table; private DefaultTableModel tableModel; - private AdminManager am = new AdminManager(); + private AdminInterface am = null; private Vector houses; /** * Create the frame. */ public listOfRemovalRequestsGUI() { + try { + am = (AdminInterface) Naming + .lookup(___IntNames.AdminManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } setTitle("Deleting requests"); try { this.houses = am.getDeletionRequests(); @@ -85,13 +94,26 @@ public class listOfRemovalRequestsGUI extends JFrame { btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (table.getRowCount() != 0 && table.getSelectedRow() != -1) { - HouseManagerInterface hm = new HouseManager(); + HouseInterface hm= null; + try { + hm = (HouseInterface) Naming + .lookup(___IntNames.HouseManager); + } catch (Exception e1) { + System.out.println("Error accessing remote authentication: " + + e1.toString()); + } RuralHouse rh = houses.get(table.getSelectedRow()); ((DefaultTableModel)table.getModel()).removeRow(houses.indexOf(rh)); - hm.removeHouse(rh, rh.getOwner()); + try { + hm.removeHouse(rh, rh.getOwner()); + am.removeHouseDeletionRequests(rh); + am.saveInstance(); + } catch (RemoteException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } houses.remove(rh); - am.removeHouseDeletionRequests(rh); - Administrator.saveInstance(); + } @@ -107,8 +129,14 @@ public class listOfRemovalRequestsGUI extends JFrame { RuralHouse rh = houses.get(table.getSelectedRow()); ((DefaultTableModel)table.getModel()).removeRow(houses.indexOf(rh)); houses.remove(rh); - am.removeHouseDeletionRequests(rh); - Administrator.saveInstance(); + try { + am.removeHouseDeletionRequests(rh); + am.saveInstance(); + } catch (RemoteException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } diff --git a/ruralHouses/.classpath b/ruralHouses/.classpath index 833b790..4a939f6 100644 --- a/ruralHouses/.classpath +++ b/ruralHouses/.classpath @@ -4,6 +4,6 @@ - + diff --git a/ruralHouses/.gitignore b/ruralHouses/.gitignore index 2a22d9f..b83f20a 100644 --- a/ruralHouses/.gitignore +++ b/ruralHouses/.gitignore @@ -1,4 +1,5 @@ /bin /lib +!lib/mail/ /db -/src/*/*.class \ No newline at end of file +/src/*/*.class diff --git a/ruralHouses/src/businessLogic/AccountManager.java b/ruralHouses/src/businessLogic/AccountManager.java index 7b5efe9..3f0bc5b 100644 --- a/ruralHouses/src/businessLogic/AccountManager.java +++ b/ruralHouses/src/businessLogic/AccountManager.java @@ -1,16 +1,24 @@ package businessLogic; +import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; + import javax.mail.MessagingException; +import common.AccountInterface; import dataAccess.DB4oManager; import domain.Account; -public class AccountManager { +public class AccountManager extends UnicastRemoteObject implements AccountInterface { + /** + * + */ + private static final long serialVersionUID = 1L; private DB4oManager dbMngr; - public AccountManager() { + public AccountManager() throws RemoteException { try { dbMngr = DB4oManager.getInstance(); } catch (Exception e) { @@ -19,12 +27,11 @@ public class AccountManager { } } - public boolean addAccount(Account ac){ + public boolean addAccount(Account ac) throws RemoteException { if(this.dbMngr.addAccount(ac)){ try { MailManager.getInstance().Send(ac.getOwner().getMailAccount(), "Entered into the system", "Congratulations"); } catch (MessagingException e) { - // TODO Auto-generated catch block e.printStackTrace(); } return true; @@ -33,7 +40,7 @@ public class AccountManager { } - public boolean removeAccount(Account ac){ + public boolean removeAccount(Account ac)throws RemoteException { if(this.dbMngr.removeAccount(ac)) return true; return false; diff --git a/ruralHouses/src/businessLogic/AdminManager.java b/ruralHouses/src/businessLogic/AdminManager.java index a51ec98..f2790a9 100644 --- a/ruralHouses/src/businessLogic/AdminManager.java +++ b/ruralHouses/src/businessLogic/AdminManager.java @@ -1,61 +1,89 @@ package businessLogic; +import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; import java.util.Vector; +import common.AdminInterface; + import domain.Account; import domain.Administrator; import domain.RuralHouse; -public class AdminManager { - public AdminManager() { +public class AdminManager extends UnicastRemoteObject implements AdminInterface { + /** + * + */ + private static final long serialVersionUID = 1L; + + + + + public AdminManager() throws RemoteException { } - public Vector getAdditionRequests() { + public Vector getAdditionRequests() throws RemoteException { return new Vector(Administrator.getInstance() .getAddRequest()); } - public Vector getDeletionRequests() { + public Vector getDeletionRequests() throws RemoteException { return new Vector(Administrator.getInstance() .getRemoveRequest()); } - public Vector getOwnerAdditionReuests() { + public Vector getOwnerAdditionRequests() throws RemoteException { return new Vector(Administrator.getInstance() .getNewOwnerRequest()); } - public void removeHouseAdditionRequests(RuralHouse house) { + public void removeHouseAdditionRequests(RuralHouse house) throws RemoteException { Administrator.getInstance().getAddRequest().remove(house); } - public void removeHouseDeletionRequests(RuralHouse house) { + public void removeHouseDeletionRequests(RuralHouse house) throws RemoteException { Administrator.getInstance().getRemoveRequest().remove(house); } - public void removeOwnerAdditionRequests(Account acc) { + + public void removeOwnerAdditionRequests(Account acc) throws RemoteException { Administrator.getInstance().getNewOwnerRequest().remove(acc); } - public boolean addAdditionRequest(RuralHouse rh) { + + public boolean addAdditionRequest(RuralHouse rh) throws RemoteException { if (this.getAdditionRequests().contains(rh)) { return false; } return Administrator.getInstance().getAddRequest().add(rh); + } - public boolean addDeletionRequest(RuralHouse rh) { + public boolean addDeletionRequest(RuralHouse rh) throws RemoteException { if (this.getDeletionRequests().contains(rh)) return false; + return Administrator.getInstance().getRemoveRequest().add(rh); + } - public boolean addAccount(Account acc) { - if (this.getOwnerAdditionReuests().contains(acc)) { + + + + public boolean addAccount(Account acc) throws RemoteException { + if (this.getOwnerAdditionRequests().contains(acc)) { return false; } return Administrator.getInstance().getNewOwnerRequest().add(acc); } + @Override + public void saveInstance() throws RemoteException { + Administrator.saveInstance(); + + } + + + // public boolean removeAccount(Account acc) { // if (this.getDeletionRequests().contains(acc)) // return false; diff --git a/ruralHouses/src/businessLogic/BookingManager.java b/ruralHouses/src/businessLogic/BookingManager.java index 017b1aa..601eb3a 100644 --- a/ruralHouses/src/businessLogic/BookingManager.java +++ b/ruralHouses/src/businessLogic/BookingManager.java @@ -1,12 +1,13 @@ package businessLogic; +import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; import java.util.Date; import java.util.Vector; -import javax.mail.MessagingException; - import com.db4o.ObjectContainer; import com.db4o.ObjectSet; +import common.BookingInterface; import dataAccess.DB4oManager; import domain.Booking; @@ -14,14 +15,21 @@ import domain.Client; import domain.RuralHouse; import exceptions.OfferCanNotBeBooked; -public final class BookingManager { + +public final class BookingManager extends UnicastRemoteObject implements BookingInterface { + + /** + * + */ + private static final long serialVersionUID = 1L; private int bookingNumber = 0; dataAccess.DB4oManager dbMngr; private static BookingManager theBookingManager; - public BookingManager() { + public BookingManager() throws RemoteException { + super(); try { this.dbMngr = DB4oManager.getInstance(); } catch (Exception e) { @@ -34,52 +42,54 @@ public final class BookingManager { * * @return the book number */ - public static int getNumber() { - ObjectContainer db = DB4oManager.getContainer(); - BookingManager b = getInstance(); - b.bookingNumber++; - db.store(b); - db.commit(); - return b.bookingNumber; - } + public int getNumber() throws RemoteException{ + ObjectContainer db=DB4oManager.getContainer(); + BookingManager b=getInstance(); + b.bookingNumber++; + db.store(b); + db.commit(); + return b.bookingNumber; + } + /** * This method returns the instance of the BookingManager class * * @return the booking manager + * @throws RemoteException */ - public static BookingManager getInstance() { - ObjectContainer db = DB4oManager.getContainer(); - BookingManager b = new BookingManager(); - ObjectSet result = db.queryByExample(b); - if (!result.hasNext()) { - theBookingManager = new BookingManager(); - db.store(theBookingManager); - db.commit(); - } else - theBookingManager = (BookingManager) result.next(); + + public BookingManager getInstance() throws RemoteException { + ObjectContainer db=DB4oManager.getContainer(); + BookingManager b = new BookingManager(); + ObjectSet result = db.queryByExample(b); + if (!result.hasNext()){ + theBookingManager = new BookingManager(); + db.store(theBookingManager); + db.commit(); + } else theBookingManager=(BookingManager)result.next(); return theBookingManager; } - public void removeDenyBooking(Booking b){ + public void removeDenyBooking(Booking b) throws RemoteException{ b.getOffer().getBookings().remove(b); this.dbMngr.removeBooking(b); } - public void acceptBooking(Booking b){ + public void acceptBooking(Booking b) throws RemoteException{ b.getOffer().setBooked(true); for(Booking boo : b.getOffer().getBookings()){ if(!boo.equals(b)) b.getOffer().getBookings().remove(b); } this.dbMngr.acceptBooking(b.getOffer()); - try { + /*try { MailManager.getInstance().Send(b.getClient().getMailAccount(), "Your booking has been accepted","Here should be the bill"); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); - } + }*/ } /** @@ -91,7 +101,7 @@ public final class BookingManager { */ public Vector createBooking(RuralHouse ruralHouse, Date firstDate, Date lastDate, Client client) - throws OfferCanNotBeBooked { + throws OfferCanNotBeBooked,RemoteException { return dbMngr.createBooking(ruralHouse, firstDate, lastDate, client); diff --git a/ruralHouses/src/businessLogic/HouseManager.java b/ruralHouses/src/businessLogic/HouseManager.java index e3e5317..cd3f11e 100644 --- a/ruralHouses/src/businessLogic/HouseManager.java +++ b/ruralHouses/src/businessLogic/HouseManager.java @@ -1,17 +1,24 @@ package businessLogic; import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; import java.util.Vector; +import common.HouseInterface; + import dataAccess.DB4oManager; import domain.Owner; import domain.RuralHouse; -public class HouseManager implements HouseManagerInterface { - - private DB4oManager dbMngr; - public HouseManager() { +public class HouseManager extends UnicastRemoteObject implements HouseInterface { + /** + * + */ + private static final long serialVersionUID = 1L; + DB4oManager dbMngr; + public HouseManager() throws RemoteException { + super(); try { dbMngr = DB4oManager.getInstance(); } catch (Exception e) { diff --git a/ruralHouses/src/businessLogic/LoginManager.java b/ruralHouses/src/businessLogic/LoginManager.java index 950f683..1f766a3 100644 --- a/ruralHouses/src/businessLogic/LoginManager.java +++ b/ruralHouses/src/businessLogic/LoginManager.java @@ -1,18 +1,26 @@ package businessLogic; +import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; import java.util.Vector; +import common.LoginInterface; + import dataAccess.DB4oManager; import domain.Account; -public class LoginManager implements LoginManagerInterface { +public class LoginManager extends UnicastRemoteObject implements LoginInterface { + /** + * + */ + private static final long serialVersionUID = 1L; DB4oManager dbMngr; - public LoginManager() { - + public LoginManager() throws RemoteException { + super(); try { dbMngr = DB4oManager.getInstance(); } catch (Exception e) { diff --git a/ruralHouses/src/businessLogic/LoginManagerInterface.java b/ruralHouses/src/businessLogic/LoginManagerInterface.java deleted file mode 100644 index f2a1f8d..0000000 --- a/ruralHouses/src/businessLogic/LoginManagerInterface.java +++ /dev/null @@ -1,12 +0,0 @@ -package businessLogic; - -import domain.Account; - -public interface LoginManagerInterface { - - public Account checkCredentials(String usr, String pwd); - - - - -} diff --git a/ruralHouses/src/businessLogic/OfferManager.java b/ruralHouses/src/businessLogic/OfferManager.java index 8c6fb3e..e3b1739 100644 --- a/ruralHouses/src/businessLogic/OfferManager.java +++ b/ruralHouses/src/businessLogic/OfferManager.java @@ -1,20 +1,29 @@ package businessLogic; import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; import java.sql.Date; +import common.OfferInterface; + import dataAccess.DB4oManager; import domain.Offer; import domain.RuralHouse; import exceptions.BadDates; import exceptions.OverlappingOfferExists; -public final class OfferManager { +public final class OfferManager extends UnicastRemoteObject implements OfferInterface{ + + /** + * + */ + private static final long serialVersionUID = 1L; private int offerNumber = 0; dataAccess.DB4oManager dbMngr; - public OfferManager() { + public OfferManager() throws RemoteException { + super(); try { this.dbMngr = DB4oManager.getInstance(); } catch (Exception e) { diff --git a/ruralHouses/src/businessLogic/OwnerManager.java b/ruralHouses/src/businessLogic/OwnerManager.java index 7f3cef0..9042bd2 100644 --- a/ruralHouses/src/businessLogic/OwnerManager.java +++ b/ruralHouses/src/businessLogic/OwnerManager.java @@ -1,15 +1,23 @@ package businessLogic; import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; import java.util.Vector; +import common.OwnerInterface; + import dataAccess.DB4oManager; import domain.Owner; -public class OwnerManager implements OwnerManagerInterface { +public class OwnerManager extends UnicastRemoteObject implements OwnerInterface { + /** + * + */ + private static final long serialVersionUID = 1L; DB4oManager dbMngr; - public OwnerManager() { + public OwnerManager() throws RemoteException { + super(); try { dbMngr = DB4oManager.getInstance(); } catch (Exception e) { diff --git a/ruralHouses/src/common/AccountInterface.java b/ruralHouses/src/common/AccountInterface.java new file mode 100644 index 0000000..07f8ced --- /dev/null +++ b/ruralHouses/src/common/AccountInterface.java @@ -0,0 +1,13 @@ +package common; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import domain.Account; + +public interface AccountInterface extends Remote{ + + + public boolean addAccount(Account ac) throws RemoteException; + + public boolean removeAccount(Account ac) throws RemoteException; +} diff --git a/ruralHouses/src/common/AdminInterface.java b/ruralHouses/src/common/AdminInterface.java new file mode 100644 index 0000000..eb5e888 --- /dev/null +++ b/ruralHouses/src/common/AdminInterface.java @@ -0,0 +1,34 @@ +package common; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.util.Vector; + +import domain.Account; +import domain.RuralHouse; + +public interface AdminInterface extends Remote { + + + public Vector getAdditionRequests() throws RemoteException; + + public Vector getDeletionRequests() throws RemoteException ; + + public Vector getOwnerAdditionRequests() throws RemoteException ; + + public void removeHouseAdditionRequests(RuralHouse house) throws RemoteException ; + + public void removeHouseDeletionRequests(RuralHouse house) throws RemoteException ; + + public void removeOwnerAdditionRequests(Account acc) throws RemoteException ; + + public boolean addAdditionRequest(RuralHouse rh) throws RemoteException ; + + public boolean addDeletionRequest(RuralHouse rh) throws RemoteException ; + + public boolean addAccount(Account acc) throws RemoteException ; + + public void saveInstance() throws RemoteException; + + +} diff --git a/ruralHouses/src/common/BookingInterface.java b/ruralHouses/src/common/BookingInterface.java new file mode 100644 index 0000000..8262f30 --- /dev/null +++ b/ruralHouses/src/common/BookingInterface.java @@ -0,0 +1,28 @@ +package common; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.util.Date; +import java.util.Vector; + +import domain.Booking; +import domain.Client; +import domain.RuralHouse; +import exceptions.OfferCanNotBeBooked; + +public interface BookingInterface extends Remote { + + + public int getNumber() throws RemoteException; + + + public void removeDenyBooking(Booking b) throws RemoteException; + + + public void acceptBooking(Booking b) throws RemoteException; + + public Vector createBooking(RuralHouse ruralHouse, Date firstDate, + Date lastDate, Client client) + throws OfferCanNotBeBooked,RemoteException ; + +} \ No newline at end of file diff --git a/ruralHouses/src/common/HouseInterface.java b/ruralHouses/src/common/HouseInterface.java new file mode 100644 index 0000000..9731172 --- /dev/null +++ b/ruralHouses/src/common/HouseInterface.java @@ -0,0 +1,31 @@ +package common; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.util.Vector; + +import domain.Owner; +import domain.RuralHouse; + +public interface HouseInterface extends Remote { + + // For future implementation + // public void modifyHouse(int houseName, Owner owner, + // String description, String town, int nRooms, int nKitchens, + // int nBaths, int nLivings, int nParkings); + + public void removeHouse(RuralHouse rh, Owner owner)throws RemoteException; + + public Vector getHouses(String name,String town,int nBed , int nKit, int nBath, int nPark, int nLiv) throws RemoteException; + + /** + * This method retrieves the existing rural houses + * + * @return a Set of rural houses + */ + public Vector getAllRuralHouses()throws RemoteException, + Exception, RemoteException; + + public boolean registerNewHouse(RuralHouse rh)throws RemoteException; + +} diff --git a/ruralHouses/src/common/LoginInterface.java b/ruralHouses/src/common/LoginInterface.java new file mode 100644 index 0000000..bb5e3e0 --- /dev/null +++ b/ruralHouses/src/common/LoginInterface.java @@ -0,0 +1,15 @@ +package common; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +import domain.Account; + +public interface LoginInterface extends Remote { + + public Account checkCredentials(String usr, String pwd)throws RemoteException; + + + + +} diff --git a/ruralHouses/src/common/OfferInterface.java b/ruralHouses/src/common/OfferInterface.java new file mode 100644 index 0000000..6e3b9b3 --- /dev/null +++ b/ruralHouses/src/common/OfferInterface.java @@ -0,0 +1,29 @@ +package common; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.sql.Date; + +import domain.Offer; +import domain.RuralHouse; +import exceptions.BadDates; +import exceptions.OverlappingOfferExists; + +public interface OfferInterface 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 the created offer, or null, or an exception + */ + public Offer createOffer(RuralHouse ruralHouse, Date firstDay, + Date lastDay, float price) throws OverlappingOfferExists, BadDates, + RemoteException, Exception; + + public void deleteOffer(RuralHouse rh, Offer o) throws RemoteException, + Exception; + +} diff --git a/ruralHouses/src/common/OwnerInterface.java b/ruralHouses/src/common/OwnerInterface.java new file mode 100644 index 0000000..c96e013 --- /dev/null +++ b/ruralHouses/src/common/OwnerInterface.java @@ -0,0 +1,15 @@ +package common; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.util.Vector; + +import domain.Owner; + +public interface OwnerInterface extends Remote { + + + public Vector getOwners() throws RemoteException, + Exception; + +} diff --git a/ruralHouses/src/dataAccess/DB4oManager.java b/ruralHouses/src/dataAccess/DB4oManager.java index a541e95..b0513ae 100644 --- a/ruralHouses/src/dataAccess/DB4oManager.java +++ b/ruralHouses/src/dataAccess/DB4oManager.java @@ -135,8 +135,10 @@ public class DB4oManager { Account alfredoAcc = new Account("userAlfredo", "passAlfredo", alfredo); + Account admin = new Account("admin", "admin", true); db.store(Administrator.getInstance()); + db.store(jonAcc); db.store(alfredoAcc); db.store(admin); @@ -219,7 +221,9 @@ public class DB4oManager { } } - public Administrator getAdminData() { + + + public Administrator getAdminData(){ if (c.isDatabaseLocal() == false) openSDB(); else @@ -227,10 +231,8 @@ public class DB4oManager { try { - List admL = db.query(new Predicate() { - /** - * - */ + + List admL = db.query(new Predicate(){ private static final long serialVersionUID = 1L; public boolean match(Administrator admin) { @@ -238,8 +240,11 @@ public class DB4oManager { } }); + + return admL.get(0); - } finally { + } + finally { db.close(); } @@ -247,6 +252,7 @@ public class DB4oManager { } public void storeAdmin() { + if (c.isDatabaseLocal() == false) openSDB(); else @@ -270,6 +276,7 @@ public class DB4oManager { Administrator.getInstance().getRemoveRequest()); admL.get(0).setNewOwnerRequest( Administrator.getInstance().getNewOwnerRequest()); + db.commit(); } catch (Exception e) { diff --git a/ruralHouses/src/domain/Account.java b/ruralHouses/src/domain/Account.java index ba7a630..90f3a23 100644 --- a/ruralHouses/src/domain/Account.java +++ b/ruralHouses/src/domain/Account.java @@ -1,17 +1,23 @@ package domain; +import java.io.Serializable; import java.util.Arrays; import businessLogic.SecurityManager; -public class Account { +public class Account implements Serializable { + /** + * + */ + private static final long serialVersionUID = 1L; private byte[] username; private byte[] password; private byte[] salt; + private Owner owner; private boolean admin = false; diff --git a/ruralHouses/src/domain/Administrator.java b/ruralHouses/src/domain/Administrator.java index bead633..8244f09 100644 --- a/ruralHouses/src/domain/Administrator.java +++ b/ruralHouses/src/domain/Administrator.java @@ -1,11 +1,17 @@ package domain; +import java.io.Serializable; import java.util.LinkedList; import configuration.ConfigXML; import dataAccess.DB4oManager; -public class Administrator { +public class Administrator implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; private static Administrator admin = null; private static LinkedList addRequest; @@ -63,6 +69,7 @@ public class Administrator { public void setRemoveRequest(LinkedList removeRequest) { Administrator.removeRequest = removeRequest; + } public LinkedList getNewOwnerRequest() { diff --git a/ruralHouses/src/domain/Booking.java b/ruralHouses/src/domain/Booking.java index 51546c3..0f72a6c 100644 --- a/ruralHouses/src/domain/Booking.java +++ b/ruralHouses/src/domain/Booking.java @@ -3,8 +3,12 @@ package domain; import java.io.Serializable; import java.util.Date; -@SuppressWarnings("serial") -public class Booking implements Serializable { +public class Booking implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; private int bookingNumber; private boolean isPaid; private Date bookingDate; diff --git a/ruralHouses/src/domain/Districs.java b/ruralHouses/src/domain/Districs.java index fa2fee5..db62454 100644 --- a/ruralHouses/src/domain/Districs.java +++ b/ruralHouses/src/domain/Districs.java @@ -1,13 +1,22 @@ package domain; -public enum Districs { +import java.io.Serializable; + +public enum Districs implements Serializable { + + /** + * + */ BEA("Beatriz"), GUA("Guazate"), VEG("Vegas"), FAR("Farallón"), CED("Cedro"), MOT( "Monte LLano"), RIN("Rincón"), PUE("Pueblo"), QUA("Quebrada Arriba"), QEB( "Quebrada Abajo"), TOI("Toita"), MAB("Matón Abajo"), MAA( "Matón Arriba"), PIE("Piedras"), PAV("Pasto Viejo"), PEA( "PedroAvila"), SUM("Sumido"), LAP("Lapa"), CER("Cercadillo"), JAJ( "JájomeAlto"), CUL("CulebrasAbajo"); + + private static final long serialVersionUID = 1L; + private final String longName; Districs(String longName) { diff --git a/ruralHouses/src/domain/HouseFeatures.java b/ruralHouses/src/domain/HouseFeatures.java index 2327608..e79a446 100644 --- a/ruralHouses/src/domain/HouseFeatures.java +++ b/ruralHouses/src/domain/HouseFeatures.java @@ -1,7 +1,13 @@ package domain; -public class HouseFeatures { +import java.io.Serializable; +public class HouseFeatures implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; private int nRooms; private int nKitchens; private int nBaths; diff --git a/ruralHouses/src/domain/Owner.java b/ruralHouses/src/domain/Owner.java index a218f03..550aceb 100644 --- a/ruralHouses/src/domain/Owner.java +++ b/ruralHouses/src/domain/Owner.java @@ -3,9 +3,12 @@ package domain; import java.io.Serializable; import java.util.Vector; -@SuppressWarnings("serial") public class Owner implements Serializable { + /** + * + */ + private static final long serialVersionUID = 1L; private String bankAccount = ""; private String name = ""; private String mailAccount = ""; diff --git a/ruralHouses/src/launcher/RMILauncher.java b/ruralHouses/src/launcher/RMILauncher.java new file mode 100644 index 0000000..f5a4cf8 --- /dev/null +++ b/ruralHouses/src/launcher/RMILauncher.java @@ -0,0 +1,127 @@ +package launcher; + +import java.rmi.Naming; +import java.rmi.RMISecurityManager; +import java.rmi.Remote; + +import businessLogic.AdminManager; +import businessLogic.BookingManager; +import businessLogic.HouseManager; +import businessLogic.LoginManager; +import businessLogic.OfferManager; +import businessLogic.OwnerManager; + +public class RMILauncher { + + public static void main(String[] args) { + RMILauncher.startRegistry(); + RMILauncher.initRemoteObject(); + } + + private static void startRegistry() { + System.setProperty("java.security.policy", "java.policy"); + System.setSecurityManager(new RMISecurityManager()); + try { + java.rmi.registry.LocateRegistry.createRegistry(9999); + } catch (Exception e) { + System.out.println(e.toString() + + "\nRMI registry was already created"); + } + + } + + private static void initRemoteObject() { + boolean adm = runAdmin(); + boolean bok = runBooking(); + boolean hou = runHouse(); + boolean off = runOffer(); + boolean own = runOwner(); + boolean log = runLogin(); + + System.out.println(" Admin: "+adm+ + "\t Booking: "+bok+ + "\t House: "+hou+ + "\t Login: "+log+ + "\t Offer: "+off+ + "\t Owner: "+own); + } + + private static boolean runAdmin() { + try { + Remote remoteObject = new AdminManager(); + String authService = "rmi://localhost:9999//AdM"; + Naming.rebind(authService, remoteObject); + return true; + } catch (Exception e) { + System.out.println(e.toString()); + return false; + } + } + + + private static boolean runBooking() { + try { + Remote remoteBooking = new BookingManager(); + String authService = "rmi://localhost:9999//BoM"; + Naming.rebind(authService, remoteBooking); + return true; + } catch (Exception e) { + System.out.println(e.toString()); + return false; + } + } + + + private static boolean runHouse() { + try { + Remote remoteHouse = new HouseManager(); + String authService = "rmi://localhost:9999//HoM"; + Naming.rebind(authService, remoteHouse); + return true; + } catch (Exception e) { + System.out.println(e.toString()); + return false; + } + } + + + private static boolean runLogin() { + try { + Remote remoteLogin = new LoginManager(); + String authService = "rmi://localhost:9999//LoM"; + Naming.rebind(authService, remoteLogin); + return true; + } catch (Exception e) { + System.out.println(e.toString()); + return false; + } + } + + + private static boolean runOffer() { + try { + Remote remoteOffer = new OfferManager(); + String authService = "rmi://localhost:9999//OfM"; + Naming.rebind(authService, remoteOffer); + return true; + } catch (Exception e) { + System.out.println(e.toString()); + return false; + } + } + + + private static boolean runOwner() { + try { + Remote remoteOwner = new OwnerManager(); + String authService = "rmi://localhost:9999//OwM"; + Naming.rebind(authService, remoteOwner); + return true; + } catch (Exception e) { + System.out.println(e.toString()); + return false; + } + } + + +} -- 2.20.1