package cz.cvut.fel.restauracefel.sklad_service; import cz.cvut.fel.restauracefel.hibernate.Depreciation; import cz.cvut.fel.restauracefel.hibernate.Expenditure; import cz.cvut.fel.restauracefel.hibernate.Income; import cz.cvut.fel.restauracefel.hibernate.Kontrola; import cz.cvut.fel.restauracefel.hibernate.Material; import cz.cvut.fel.restauracefel.hibernate.MaterialType; import cz.cvut.fel.restauracefel.hibernate.ReasonType; import cz.cvut.fel.restauracefel.hibernate.Role; import cz.cvut.fel.restauracefel.hibernate.UnitType; import cz.cvut.fel.restauracefel.hibernate.User; import cz.cvut.fel.restauracefel.hibernate.UserRole; import cz.cvut.fel.restauracefel.hibernate.Uzaverka; import cz.cvut.fel.restauracefel.library.service.ConfigParser; import java.io.FileNotFoundException; import java.net.InetAddress; import java.rmi.*; import java.rmi.registry.Registry; import java.rmi.server.*; import java.util.Date; import java.util.List; import cz.cvut.fel.restauracefel.server.service.controllers.DepreciationController; import cz.cvut.fel.restauracefel.server.service.controllers.ExpenditureController; import cz.cvut.fel.restauracefel.server.service.controllers.IncomeController; import cz.cvut.fel.restauracefel.server.service.controllers.MaterialController; import cz.cvut.fel.restauracefel.server.service.controllers.MaterialTypeController; import cz.cvut.fel.restauracefel.server.service.controllers.ReasonTypeController; import cz.cvut.fel.restauracefel.server.service.controllers.RoleController; import cz.cvut.fel.restauracefel.server.service.controllers.UnitTypeController; import cz.cvut.fel.restauracefel.server.service.controllers.UserController; import cz.cvut.fel.restauracefel.server.service.controllers.UserRoleController; import cz.cvut.fel.restauracefel.server.service.controllers.UzaverkaController; /** * * @author Jarda */ public class ServiceFacadeStorage extends UnicastRemoteObject implements IServiceFacadeStorage { //singleton protected static ServiceFacadeStorage instance = null; public ServiceFacadeStorage() throws RemoteException { super(); } public void initServiceFacadeRMI(Registry reg) throws java.net.UnknownHostException, RemoteException, FileNotFoundException { if (System.getSecurityManager() == null) { System.setSecurityManager(new RMISecurityManager()); } String name = "ServiceFacadeStorage"; ConfigParser config = new ConfigParser(); InetAddress inetAddress = InetAddress.getByName(config.getServerIP()); //Stub - tato fasada se jevi klientovi jako lokalni IServiceFacadeStorage facade = ServiceFacadeStorage.getInstance(); reg.rebind(name, facade); System.out.println("Servisni fasada pro modul SKLAD zaregistrovana pod jmenem \"ServiceFacadeStorage\""); System.out.println("Pripojeni pres adresu:" + inetAddress.toString() + "\n\n"); } //Vraci instanci tridy ServiceFacadeManager public static ServiceFacadeStorage getInstance() throws RemoteException { if (instance == null) { instance = new ServiceFacadeStorage(); } return instance; } //USER @Override public List getAllUsers() throws RemoteException { return UserController.getInstance().getAllUsers(); } @Override public boolean createUser(String name, String surname, String pid, String username, String passwd) throws RemoteException { return UserController.getInstance().createUser(name, surname, pid, username, passwd); } @Override public boolean isValidUser(String username, String passwd) throws RemoteException { return UserController.getInstance().isValidUser(username, passwd); } @Override public User getUserByPID(String pid) throws RemoteException { return UserController.getInstance().getUserByPID(pid); } @Override public User getUserByUsername(String userName) throws RemoteException { return UserController.getInstance().getUserByUsername(userName); } @Override public User getUserById(int id) throws RemoteException { return UserController.getInstance().getUserById(id); } @Override public boolean deleteUser(int userId) throws RemoteException { return UserController.getInstance().deleteUser(userId); } @Override public String[] getUserNames() throws RemoteException { return UserController.getInstance().getUserNames(); } @Override public String[] getUserUsernames() throws RemoteException { return UserController.getInstance().getUserUsernames(); } @Override public Object[][] getUsers() throws RemoteException { return UserController.getInstance().getUsers(); } @Override public boolean updateUser(Integer userId, String name, String surname, String pid, String username) throws RemoteException { return UserController.getInstance().updateUser(userId, name, surname, pid, username); } @Override public String getDefaultPasswd() throws RemoteException { return UserController.getInstance().getDefaultPasswd(); } @Override public boolean updateUserPassword(Integer userId, String newPassword) throws RemoteException { return UserController.getInstance().updateUserPassword(userId, newPassword); } @Override public boolean isValidOldPasswd(Integer userId, String passwd) throws RemoteException { return UserController.getInstance().isValidOldPasswd(userId, passwd); } //ROLE @Override public List getAllRoles() throws RemoteException { return RoleController.getInstance().getAllRoles(); } @Override public String[] getRoleNames() throws RemoteException { return RoleController.getInstance().getRoleNames(); } @Override public Role getRoleByID(int id) throws RemoteException { return RoleController.getInstance().getRoleByID(id); } @Override public Role getRoleByName(String name) throws RemoteException { return RoleController.getInstance().getRoleByName(name); } //MATERIAL @Override public boolean createMaterial(String name, int idMaterialType, int idUnitType, String barcode, double minimal,double density, double emptyPackageWeight, double packageCapacity) throws RemoteException { return MaterialController.getInstance().createMaterial(name, idMaterialType, idUnitType, barcode, minimal,density, emptyPackageWeight,packageCapacity); } @Override public List getAllMaterials() throws RemoteException { return MaterialController.getInstance().getAllMaterials(); } @Override public Material getMaterialByID(int id) throws RemoteException { return MaterialController.getInstance().getMaterialByID(id); } @Override public Material getMaterialByName(String name) throws RemoteException { return MaterialController.getInstance().getMaterialByName(name); } @Override public String[] getMaterialNames() throws RemoteException { return MaterialController.getInstance().getMaterialNames(); } @Override public Object[][] getMaterials() throws RemoteException { return MaterialController.getInstance().getMaterials(); } @Override public String[] getMaterialNamesByMaterialType(int materialTypeId) throws RemoteException { return MaterialController.getInstance().getMaterialNamesByMaterialType(materialTypeId); } @Override public boolean deleteMaterial(int materialId) throws RemoteException { return MaterialController.getInstance().deleteMaterial(materialId); } @Override public boolean updateMaterial(Integer materialId, String name, int idMaterialType, int idUnitType, String barcode, double minimal,double density, double emptyPackageWeight, double packageCapacity) throws RemoteException { return MaterialController.getInstance().updateMaterial(materialId, name, idMaterialType, idUnitType, barcode, minimal,density, emptyPackageWeight, packageCapacity); } @Override public boolean isDeletableMaterial(int materialId) throws RemoteException { return MaterialController.getInstance().isDeletableMaterial(materialId); } //MATERIALTYPE @Override public boolean createMaterialType(String name, String note) throws RemoteException { return MaterialTypeController.getInstance().createMaterialType(name, note); } @Override public boolean deleteMaterialType(int materialTypeId) throws RemoteException { return MaterialTypeController.getInstance().deleteMaterialType(materialTypeId); } @Override public boolean updateMaterialType(int materialTypeId, String name, String note) throws RemoteException { return MaterialTypeController.getInstance().updateMaterialType(materialTypeId, name, note); } @Override public List getAllMaterialTypes() throws RemoteException { return MaterialTypeController.getInstance().getAllMaterialTypes(); } @Override public MaterialType getMaterialTypeByID(int id) throws RemoteException { return MaterialTypeController.getInstance().getMaterialTypeByID(id); } @Override public MaterialType getMaterialTypeByName(String name) throws RemoteException { return MaterialTypeController.getInstance().getMaterialTypeByName(name); } @Override public String[] getMaterialTypeNames() throws RemoteException { return MaterialTypeController.getInstance().getMaterialTypeNames(); } @Override public Object[][] getMaterialTypes() throws RemoteException { return MaterialTypeController.getInstance().getMaterialTypes(); } @Override public boolean isDeletableMaterialType(int materialTypeId) throws RemoteException { return MaterialTypeController.getInstance().isDeletableMaterialType(materialTypeId); } //UNITTYPE @Override public boolean createUnitType(String name, String abbreviation, int typeId) throws RemoteException { return UnitTypeController.getInstance().createUnitType(name, abbreviation, typeId); } @Override public boolean deleteUnitType(int unitTypeId) throws RemoteException { return UnitTypeController.getInstance().deleteUnitType(unitTypeId); } @Override public boolean updateUnitType(int unitTypeId, String name, String abbreviation, int typeId) throws RemoteException { return UnitTypeController.getInstance().updateUnitType(unitTypeId, name, abbreviation, typeId); } @Override public List getAllUnitTypes() throws RemoteException { return UnitTypeController.getInstance().getAllUnitTypes(); } @Override public String[] getUnitTypeAbbrs() throws RemoteException { return UnitTypeController.getInstance().getUnitTypeAbbrs(); } @Override public String[] getUnitTypeNames() throws RemoteException { return UnitTypeController.getInstance().getUnitTypeNames(); } @Override public String[] getUnitTypeNamesByTypeId(int typeId) throws RemoteException { return UnitTypeController.getInstance().getUnitTypeNamesByTypeId(typeId); } @Override public String[] getUnitTypeAbbrsByTypeId(int typeId) throws RemoteException { return UnitTypeController.getInstance().getUnitTypeAbbrsByTypeId(typeId); } @Override public UnitType getUnitTypeByID(int id) throws RemoteException { return UnitTypeController.getInstance().getUnitTypeByID(id); } @Override public UnitType getUnitTypeByName(String name) throws RemoteException { return UnitTypeController.getInstance().getUnitTypeByName(name); } @Override public UnitType getUnitTypeByAbbr(String abbr) throws RemoteException { return UnitTypeController.getInstance().getUnitTypeByAbbr(abbr); } //INCOME @Override public boolean createIncome(Date date, int materialId, double quantity, double price, int userId, String note) throws RemoteException { return IncomeController.getInstance().createIncome(date, materialId, quantity, price, userId, note); } @Override public boolean deleteIncome(int incomeId) throws RemoteException { return IncomeController.getInstance().deleteIncome(incomeId); } @Override public boolean updateIncome(int incomeId, Date date, int materialId, double quantity, double price, int userId, String note) throws RemoteException { return IncomeController.getInstance().updateIncome(incomeId, date, materialId, quantity, price, userId, note); } @Override public Object[][] getIncomes() throws RemoteException { return IncomeController.getInstance().getIncomes(); } @Override public Income getIncomeByID(int incomeId) throws RemoteException { return IncomeController.getInstance().getIncomeByID(incomeId); } //EXPENDITURE @Override public boolean createExpenditure(Date date, int materialId, double quantity, int userId, String note) throws RemoteException { return ExpenditureController.getInstance().createExpenditure(date, materialId, quantity, userId, note); } @Override public boolean deleteExpenditure(int expenditureId) throws RemoteException { return ExpenditureController.getInstance().deleteExpenditure(expenditureId); } @Override public boolean updateExpenditure(int expenditureId, Date date, int materialId, double quantity, int userId, String note) throws RemoteException { return ExpenditureController.getInstance().updateExpenditure(expenditureId, date, materialId, quantity, userId, note); } @Override public Expenditure getExpenditureById(int expenditureId) throws RemoteException { return ExpenditureController.getInstance().getExpenditureById(expenditureId); } @Override public Object[][] getExpenditures() throws RemoteException { return ExpenditureController.getInstance().getExpenditures(); } //DEPRECIATION @Override public boolean createDepreciation(int userReporterId, int userOffenderId, int materialId, double quantity, Date date, int reasonTypeId, String note) throws RemoteException { return DepreciationController.getInstance().createDepreciation(userReporterId, userOffenderId, materialId, quantity, date, reasonTypeId, note); } @Override public boolean deleteDepreciation(int depreciationId) throws RemoteException { return DepreciationController.getInstance().deleteDepreciation(depreciationId); } @Override public boolean updateDepreciation(int depreciationId, int userReporterId, int userOffenderId, int materialId, double quantity, Date date, int reasonTypeId, String note) throws RemoteException { return DepreciationController.getInstance().updateDepreciation(depreciationId, userReporterId, userOffenderId, materialId, quantity, date, reasonTypeId, note); } @Override public Depreciation getDepreciationById(int depreciationId) throws RemoteException { return DepreciationController.getInstance().getDepreciationById(depreciationId); } @Override public Object[][] getDepreciations() throws RemoteException { return DepreciationController.getInstance().getDepreciations(); } //REASONTYPE @Override public boolean createReasonType(String name, String note) throws RemoteException { return ReasonTypeController.getInstance().createReasonType(name, note); } @Override public boolean deleteReasonType(int reasonTypeId) throws RemoteException { return ReasonTypeController.getInstance().deleteReasonType(reasonTypeId); } @Override public boolean updateReasonType(int reasonTypeId, String name, String note) throws RemoteException { return ReasonTypeController.getInstance().updateReasonType(reasonTypeId, name, note); } @Override public ReasonType getReasonTypeById(int reasonTypeId) throws RemoteException { return ReasonTypeController.getInstance().getReasonTypeById(reasonTypeId); } @Override public ReasonType getReasonTypeByName(String name) throws RemoteException { return ReasonTypeController.getInstance().getReasonTypeByName(name); } @Override public Object[][] getReasonTypes() throws RemoteException { return ReasonTypeController.getInstance().getReasonTypes(); } @Override public String[] getReasonTypeNames() throws RemoteException { return ReasonTypeController.getInstance().getReasonTypeNames(); } @Override public boolean isDeletableReasonType(int reasonTypeId) throws RemoteException { return ReasonTypeController.getInstance().isDeletableReasonType(reasonTypeId); } //USERROLE @Override public boolean createUserRole(int userId, int roleId) throws RemoteException { return UserRoleController.getInstance().createUserRole(userId, roleId); } @Override public void deleteUserRole(int userId, int roleId) throws RemoteException { UserRoleController.getInstance().deleteUserRole(userId, roleId); } @Override public UserRole getUserRoleById(int userRoleId) throws RemoteException { return UserRoleController.getInstance().getUserRoleById(userRoleId); } @Override public List getUserRoleByUserId(int userId) throws RemoteException { return UserRoleController.getInstance().getUserRoleByUserId(userId); } @Override public boolean isExistedUserRole(int userId, int roleId) throws RemoteException { UserRole ur = UserRoleController.getInstance().getUserRoleByUserAndRole(userId, roleId); if (ur == null) { return false; } return true; } @Override public boolean[] getUserRoles(int userId) throws RemoteException { return UserRoleController.getInstance().getUserRoles(userId); } @Override public boolean isUserRole(int userId, int roleId) throws RemoteException { return UserRoleController.getInstance().isUserRole(userId, roleId); } //Zrcadlo methods @Override public Object[][] getUzaverkaKontroly() throws RemoteException { return UzaverkaController.getInstance().getKontroly(); } @Override public Object[][] getUzaverkaKontroly(int idUzaverky) throws RemoteException { UzaverkaController.getInstance().setUzaverka((Uzaverka) Uzaverka.findById("Uzaverka", "id", idUzaverky)); return UzaverkaController.getInstance().getKontroly(); } @Override public Uzaverka createUzaverka(Uzaverka u) throws RemoteException { return UzaverkaController.getInstance().createUzaverka(u); } @Override public Uzaverka updateUzaverka(Uzaverka u) throws RemoteException { return UzaverkaController.getInstance().updateUzaverka(u); } @Override public void addKontrolaToUzaverka(double noveMnozstvi, double stareMnozstvi, double prodanoVahou, double rozdil, int surovinaId, int uzaverkaId, boolean valid) throws RemoteException { UzaverkaController.getInstance().addKontrola(noveMnozstvi, stareMnozstvi, prodanoVahou, rozdil, surovinaId, uzaverkaId, valid); } @Override public Object[][] getUzaverky() throws RemoteException { return UzaverkaController.getInstance().getAllUzaverky(); } @Override public List<Kontrola> getKontrolyFromUzaverka(int id) throws RemoteException { UzaverkaController.getInstance().setUzaverka((Uzaverka) Uzaverka.findById("Uzaverka", "id", id)); return UzaverkaController.getInstance().getAllKontrolyList(); } @Override public List<Object[]> getStatistikaFromUzaverky(int[] ids) throws RemoteException { return UzaverkaController.getInstance().getStatistikaFromUzaverky(ids); } @Override public Object[][] getStatistikaFromUzaverka(int uzaverkaId) throws RemoteException { return UzaverkaController.getInstance().getStatistikaFromUzaverka(uzaverkaId); } /** * Metoda vraci mnozstvi suroviny prodane pokladnou od predchozi uzaverky. * @param surovinaId * @return */ @Override public double prodanoPokladnou(int surovinaId) throws RemoteException { return UzaverkaController.getInstance().prodanoPokladnou(surovinaId); } @Override public void addKontrolaToUzaverka(Kontrola k) throws RemoteException { UzaverkaController.getInstance().addKontrola(k); } @Override public Uzaverka getUzaverkaByID(int uzaverkaId) throws RemoteException { return UzaverkaController.getInstance().getUzaverkaById(uzaverkaId); } @Override public List<Material> getCheckedMaterialsByUzaverka(Uzaverka u) throws RemoteException { return UzaverkaController.getInstance().getCheckedMaterialsByUzaverka(u); } }