/RestauraceFelServer/src/main/java/cz/cvut/fel/restauracefel/sklad_service/ServiceFacadeStorage.java

https://github.com/kosekma1/cashBob · Java · 547 lines · 426 code · 98 blank · 23 comment · 6 complexity · 0acec90bb4d526101bf160ec6cd11561 MD5 · raw file

  1. package cz.cvut.fel.restauracefel.sklad_service;
  2. import cz.cvut.fel.restauracefel.hibernate.Depreciation;
  3. import cz.cvut.fel.restauracefel.hibernate.Expenditure;
  4. import cz.cvut.fel.restauracefel.hibernate.Income;
  5. import cz.cvut.fel.restauracefel.hibernate.Kontrola;
  6. import cz.cvut.fel.restauracefel.hibernate.Material;
  7. import cz.cvut.fel.restauracefel.hibernate.MaterialType;
  8. import cz.cvut.fel.restauracefel.hibernate.ReasonType;
  9. import cz.cvut.fel.restauracefel.hibernate.Role;
  10. import cz.cvut.fel.restauracefel.hibernate.UnitType;
  11. import cz.cvut.fel.restauracefel.hibernate.User;
  12. import cz.cvut.fel.restauracefel.hibernate.UserRole;
  13. import cz.cvut.fel.restauracefel.hibernate.Uzaverka;
  14. import cz.cvut.fel.restauracefel.library.service.ConfigParser;
  15. import java.io.FileNotFoundException;
  16. import java.net.InetAddress;
  17. import java.rmi.*;
  18. import java.rmi.registry.Registry;
  19. import java.rmi.server.*;
  20. import java.util.Date;
  21. import java.util.List;
  22. import cz.cvut.fel.restauracefel.server.service.controllers.DepreciationController;
  23. import cz.cvut.fel.restauracefel.server.service.controllers.ExpenditureController;
  24. import cz.cvut.fel.restauracefel.server.service.controllers.IncomeController;
  25. import cz.cvut.fel.restauracefel.server.service.controllers.MaterialController;
  26. import cz.cvut.fel.restauracefel.server.service.controllers.MaterialTypeController;
  27. import cz.cvut.fel.restauracefel.server.service.controllers.ReasonTypeController;
  28. import cz.cvut.fel.restauracefel.server.service.controllers.RoleController;
  29. import cz.cvut.fel.restauracefel.server.service.controllers.UnitTypeController;
  30. import cz.cvut.fel.restauracefel.server.service.controllers.UserController;
  31. import cz.cvut.fel.restauracefel.server.service.controllers.UserRoleController;
  32. import cz.cvut.fel.restauracefel.server.service.controllers.UzaverkaController;
  33. /**
  34. *
  35. * @author Jarda
  36. */
  37. public class ServiceFacadeStorage extends UnicastRemoteObject implements IServiceFacadeStorage {
  38. //singleton
  39. protected static ServiceFacadeStorage instance = null;
  40. public ServiceFacadeStorage() throws RemoteException {
  41. super();
  42. }
  43. public void initServiceFacadeRMI(Registry reg) throws java.net.UnknownHostException, RemoteException, FileNotFoundException {
  44. if (System.getSecurityManager() == null) {
  45. System.setSecurityManager(new RMISecurityManager());
  46. }
  47. String name = "ServiceFacadeStorage";
  48. ConfigParser config = new ConfigParser();
  49. InetAddress inetAddress = InetAddress.getByName(config.getServerIP());
  50. //Stub - tato fasada se jevi klientovi jako lokalni
  51. IServiceFacadeStorage facade = ServiceFacadeStorage.getInstance();
  52. reg.rebind(name, facade);
  53. System.out.println("Servisni fasada pro modul SKLAD zaregistrovana pod jmenem \"ServiceFacadeStorage\"");
  54. System.out.println("Pripojeni pres adresu:" + inetAddress.toString() + "\n\n");
  55. }
  56. //Vraci instanci tridy ServiceFacadeManager
  57. public static ServiceFacadeStorage getInstance() throws RemoteException {
  58. if (instance == null) {
  59. instance = new ServiceFacadeStorage();
  60. }
  61. return instance;
  62. }
  63. //USER
  64. @Override
  65. public List getAllUsers() throws RemoteException {
  66. return UserController.getInstance().getAllUsers();
  67. }
  68. @Override
  69. public boolean createUser(String name, String surname, String pid, String username, String passwd) throws RemoteException {
  70. return UserController.getInstance().createUser(name, surname, pid, username, passwd);
  71. }
  72. @Override
  73. public boolean isValidUser(String username, String passwd) throws RemoteException {
  74. return UserController.getInstance().isValidUser(username, passwd);
  75. }
  76. @Override
  77. public User getUserByPID(String pid) throws RemoteException {
  78. return UserController.getInstance().getUserByPID(pid);
  79. }
  80. @Override
  81. public User getUserByUsername(String userName) throws RemoteException {
  82. return UserController.getInstance().getUserByUsername(userName);
  83. }
  84. @Override
  85. public User getUserById(int id) throws RemoteException {
  86. return UserController.getInstance().getUserById(id);
  87. }
  88. @Override
  89. public boolean deleteUser(int userId) throws RemoteException {
  90. return UserController.getInstance().deleteUser(userId);
  91. }
  92. @Override
  93. public String[] getUserNames() throws RemoteException {
  94. return UserController.getInstance().getUserNames();
  95. }
  96. @Override
  97. public String[] getUserUsernames() throws RemoteException {
  98. return UserController.getInstance().getUserUsernames();
  99. }
  100. @Override
  101. public Object[][] getUsers() throws RemoteException {
  102. return UserController.getInstance().getUsers();
  103. }
  104. @Override
  105. public boolean updateUser(Integer userId, String name, String surname, String pid, String username) throws RemoteException {
  106. return UserController.getInstance().updateUser(userId, name, surname, pid, username);
  107. }
  108. @Override
  109. public String getDefaultPasswd() throws RemoteException {
  110. return UserController.getInstance().getDefaultPasswd();
  111. }
  112. @Override
  113. public boolean updateUserPassword(Integer userId, String newPassword) throws RemoteException {
  114. return UserController.getInstance().updateUserPassword(userId, newPassword);
  115. }
  116. @Override
  117. public boolean isValidOldPasswd(Integer userId, String passwd) throws RemoteException {
  118. return UserController.getInstance().isValidOldPasswd(userId, passwd);
  119. }
  120. //ROLE
  121. @Override
  122. public List getAllRoles() throws RemoteException {
  123. return RoleController.getInstance().getAllRoles();
  124. }
  125. @Override
  126. public String[] getRoleNames() throws RemoteException {
  127. return RoleController.getInstance().getRoleNames();
  128. }
  129. @Override
  130. public Role getRoleByID(int id) throws RemoteException {
  131. return RoleController.getInstance().getRoleByID(id);
  132. }
  133. @Override
  134. public Role getRoleByName(String name) throws RemoteException {
  135. return RoleController.getInstance().getRoleByName(name);
  136. }
  137. //MATERIAL
  138. @Override
  139. public boolean createMaterial(String name, int idMaterialType, int idUnitType, String barcode, double minimal,double density, double emptyPackageWeight, double packageCapacity) throws RemoteException {
  140. return MaterialController.getInstance().createMaterial(name, idMaterialType, idUnitType, barcode, minimal,density, emptyPackageWeight,packageCapacity);
  141. }
  142. @Override
  143. public List getAllMaterials() throws RemoteException {
  144. return MaterialController.getInstance().getAllMaterials();
  145. }
  146. @Override
  147. public Material getMaterialByID(int id) throws RemoteException {
  148. return MaterialController.getInstance().getMaterialByID(id);
  149. }
  150. @Override
  151. public Material getMaterialByName(String name) throws RemoteException {
  152. return MaterialController.getInstance().getMaterialByName(name);
  153. }
  154. @Override
  155. public String[] getMaterialNames() throws RemoteException {
  156. return MaterialController.getInstance().getMaterialNames();
  157. }
  158. @Override
  159. public Object[][] getMaterials() throws RemoteException {
  160. return MaterialController.getInstance().getMaterials();
  161. }
  162. @Override
  163. public String[] getMaterialNamesByMaterialType(int materialTypeId) throws RemoteException {
  164. return MaterialController.getInstance().getMaterialNamesByMaterialType(materialTypeId);
  165. }
  166. @Override
  167. public boolean deleteMaterial(int materialId) throws RemoteException {
  168. return MaterialController.getInstance().deleteMaterial(materialId);
  169. }
  170. @Override
  171. public boolean updateMaterial(Integer materialId, String name, int idMaterialType, int idUnitType, String barcode, double minimal,double density, double emptyPackageWeight, double packageCapacity) throws RemoteException {
  172. return MaterialController.getInstance().updateMaterial(materialId, name, idMaterialType, idUnitType, barcode, minimal,density, emptyPackageWeight, packageCapacity);
  173. }
  174. @Override
  175. public boolean isDeletableMaterial(int materialId) throws RemoteException {
  176. return MaterialController.getInstance().isDeletableMaterial(materialId);
  177. }
  178. //MATERIALTYPE
  179. @Override
  180. public boolean createMaterialType(String name, String note) throws RemoteException {
  181. return MaterialTypeController.getInstance().createMaterialType(name, note);
  182. }
  183. @Override
  184. public boolean deleteMaterialType(int materialTypeId) throws RemoteException {
  185. return MaterialTypeController.getInstance().deleteMaterialType(materialTypeId);
  186. }
  187. @Override
  188. public boolean updateMaterialType(int materialTypeId, String name, String note) throws RemoteException {
  189. return MaterialTypeController.getInstance().updateMaterialType(materialTypeId, name, note);
  190. }
  191. @Override
  192. public List getAllMaterialTypes() throws RemoteException {
  193. return MaterialTypeController.getInstance().getAllMaterialTypes();
  194. }
  195. @Override
  196. public MaterialType getMaterialTypeByID(int id) throws RemoteException {
  197. return MaterialTypeController.getInstance().getMaterialTypeByID(id);
  198. }
  199. @Override
  200. public MaterialType getMaterialTypeByName(String name) throws RemoteException {
  201. return MaterialTypeController.getInstance().getMaterialTypeByName(name);
  202. }
  203. @Override
  204. public String[] getMaterialTypeNames() throws RemoteException {
  205. return MaterialTypeController.getInstance().getMaterialTypeNames();
  206. }
  207. @Override
  208. public Object[][] getMaterialTypes() throws RemoteException {
  209. return MaterialTypeController.getInstance().getMaterialTypes();
  210. }
  211. @Override
  212. public boolean isDeletableMaterialType(int materialTypeId) throws RemoteException {
  213. return MaterialTypeController.getInstance().isDeletableMaterialType(materialTypeId);
  214. }
  215. //UNITTYPE
  216. @Override
  217. public boolean createUnitType(String name, String abbreviation, int typeId) throws RemoteException {
  218. return UnitTypeController.getInstance().createUnitType(name, abbreviation, typeId);
  219. }
  220. @Override
  221. public boolean deleteUnitType(int unitTypeId) throws RemoteException {
  222. return UnitTypeController.getInstance().deleteUnitType(unitTypeId);
  223. }
  224. @Override
  225. public boolean updateUnitType(int unitTypeId, String name, String abbreviation, int typeId) throws RemoteException {
  226. return UnitTypeController.getInstance().updateUnitType(unitTypeId, name, abbreviation, typeId);
  227. }
  228. @Override
  229. public List getAllUnitTypes() throws RemoteException {
  230. return UnitTypeController.getInstance().getAllUnitTypes();
  231. }
  232. @Override
  233. public String[] getUnitTypeAbbrs() throws RemoteException {
  234. return UnitTypeController.getInstance().getUnitTypeAbbrs();
  235. }
  236. @Override
  237. public String[] getUnitTypeNames() throws RemoteException {
  238. return UnitTypeController.getInstance().getUnitTypeNames();
  239. }
  240. @Override
  241. public String[] getUnitTypeNamesByTypeId(int typeId) throws RemoteException {
  242. return UnitTypeController.getInstance().getUnitTypeNamesByTypeId(typeId);
  243. }
  244. @Override
  245. public String[] getUnitTypeAbbrsByTypeId(int typeId) throws RemoteException {
  246. return UnitTypeController.getInstance().getUnitTypeAbbrsByTypeId(typeId);
  247. }
  248. @Override
  249. public UnitType getUnitTypeByID(int id) throws RemoteException {
  250. return UnitTypeController.getInstance().getUnitTypeByID(id);
  251. }
  252. @Override
  253. public UnitType getUnitTypeByName(String name) throws RemoteException {
  254. return UnitTypeController.getInstance().getUnitTypeByName(name);
  255. }
  256. @Override
  257. public UnitType getUnitTypeByAbbr(String abbr) throws RemoteException {
  258. return UnitTypeController.getInstance().getUnitTypeByAbbr(abbr);
  259. }
  260. //INCOME
  261. @Override
  262. public boolean createIncome(Date date, int materialId, double quantity, double price, int userId, String note) throws RemoteException {
  263. return IncomeController.getInstance().createIncome(date, materialId, quantity, price, userId, note);
  264. }
  265. @Override
  266. public boolean deleteIncome(int incomeId) throws RemoteException {
  267. return IncomeController.getInstance().deleteIncome(incomeId);
  268. }
  269. @Override
  270. public boolean updateIncome(int incomeId, Date date, int materialId, double quantity, double price, int userId, String note) throws RemoteException {
  271. return IncomeController.getInstance().updateIncome(incomeId, date, materialId, quantity, price, userId, note);
  272. }
  273. @Override
  274. public Object[][] getIncomes() throws RemoteException {
  275. return IncomeController.getInstance().getIncomes();
  276. }
  277. @Override
  278. public Income getIncomeByID(int incomeId) throws RemoteException {
  279. return IncomeController.getInstance().getIncomeByID(incomeId);
  280. }
  281. //EXPENDITURE
  282. @Override
  283. public boolean createExpenditure(Date date, int materialId, double quantity, int userId, String note) throws RemoteException {
  284. return ExpenditureController.getInstance().createExpenditure(date, materialId, quantity, userId, note);
  285. }
  286. @Override
  287. public boolean deleteExpenditure(int expenditureId) throws RemoteException {
  288. return ExpenditureController.getInstance().deleteExpenditure(expenditureId);
  289. }
  290. @Override
  291. public boolean updateExpenditure(int expenditureId, Date date, int materialId, double quantity, int userId, String note) throws RemoteException {
  292. return ExpenditureController.getInstance().updateExpenditure(expenditureId, date, materialId, quantity, userId, note);
  293. }
  294. @Override
  295. public Expenditure getExpenditureById(int expenditureId) throws RemoteException {
  296. return ExpenditureController.getInstance().getExpenditureById(expenditureId);
  297. }
  298. @Override
  299. public Object[][] getExpenditures() throws RemoteException {
  300. return ExpenditureController.getInstance().getExpenditures();
  301. }
  302. //DEPRECIATION
  303. @Override
  304. public boolean createDepreciation(int userReporterId, int userOffenderId, int materialId, double quantity, Date date, int reasonTypeId, String note) throws RemoteException {
  305. return DepreciationController.getInstance().createDepreciation(userReporterId, userOffenderId, materialId, quantity, date, reasonTypeId, note);
  306. }
  307. @Override
  308. public boolean deleteDepreciation(int depreciationId) throws RemoteException {
  309. return DepreciationController.getInstance().deleteDepreciation(depreciationId);
  310. }
  311. @Override
  312. public boolean updateDepreciation(int depreciationId, int userReporterId, int userOffenderId, int materialId, double quantity, Date date, int reasonTypeId, String note) throws RemoteException {
  313. return DepreciationController.getInstance().updateDepreciation(depreciationId, userReporterId, userOffenderId, materialId, quantity, date, reasonTypeId, note);
  314. }
  315. @Override
  316. public Depreciation getDepreciationById(int depreciationId) throws RemoteException {
  317. return DepreciationController.getInstance().getDepreciationById(depreciationId);
  318. }
  319. @Override
  320. public Object[][] getDepreciations() throws RemoteException {
  321. return DepreciationController.getInstance().getDepreciations();
  322. }
  323. //REASONTYPE
  324. @Override
  325. public boolean createReasonType(String name, String note) throws RemoteException {
  326. return ReasonTypeController.getInstance().createReasonType(name, note);
  327. }
  328. @Override
  329. public boolean deleteReasonType(int reasonTypeId) throws RemoteException {
  330. return ReasonTypeController.getInstance().deleteReasonType(reasonTypeId);
  331. }
  332. @Override
  333. public boolean updateReasonType(int reasonTypeId, String name, String note) throws RemoteException {
  334. return ReasonTypeController.getInstance().updateReasonType(reasonTypeId, name, note);
  335. }
  336. @Override
  337. public ReasonType getReasonTypeById(int reasonTypeId) throws RemoteException {
  338. return ReasonTypeController.getInstance().getReasonTypeById(reasonTypeId);
  339. }
  340. @Override
  341. public ReasonType getReasonTypeByName(String name) throws RemoteException {
  342. return ReasonTypeController.getInstance().getReasonTypeByName(name);
  343. }
  344. @Override
  345. public Object[][] getReasonTypes() throws RemoteException {
  346. return ReasonTypeController.getInstance().getReasonTypes();
  347. }
  348. @Override
  349. public String[] getReasonTypeNames() throws RemoteException {
  350. return ReasonTypeController.getInstance().getReasonTypeNames();
  351. }
  352. @Override
  353. public boolean isDeletableReasonType(int reasonTypeId) throws RemoteException {
  354. return ReasonTypeController.getInstance().isDeletableReasonType(reasonTypeId);
  355. }
  356. //USERROLE
  357. @Override
  358. public boolean createUserRole(int userId, int roleId) throws RemoteException {
  359. return UserRoleController.getInstance().createUserRole(userId, roleId);
  360. }
  361. @Override
  362. public void deleteUserRole(int userId, int roleId) throws RemoteException {
  363. UserRoleController.getInstance().deleteUserRole(userId, roleId);
  364. }
  365. @Override
  366. public UserRole getUserRoleById(int userRoleId) throws RemoteException {
  367. return UserRoleController.getInstance().getUserRoleById(userRoleId);
  368. }
  369. @Override
  370. public List getUserRoleByUserId(int userId) throws RemoteException {
  371. return UserRoleController.getInstance().getUserRoleByUserId(userId);
  372. }
  373. @Override
  374. public boolean isExistedUserRole(int userId, int roleId) throws RemoteException {
  375. UserRole ur = UserRoleController.getInstance().getUserRoleByUserAndRole(userId, roleId);
  376. if (ur == null) {
  377. return false;
  378. }
  379. return true;
  380. }
  381. @Override
  382. public boolean[] getUserRoles(int userId) throws RemoteException {
  383. return UserRoleController.getInstance().getUserRoles(userId);
  384. }
  385. @Override
  386. public boolean isUserRole(int userId, int roleId) throws RemoteException {
  387. return UserRoleController.getInstance().isUserRole(userId, roleId);
  388. }
  389. //Zrcadlo methods
  390. @Override
  391. public Object[][] getUzaverkaKontroly() throws RemoteException {
  392. return UzaverkaController.getInstance().getKontroly();
  393. }
  394. @Override
  395. public Object[][] getUzaverkaKontroly(int idUzaverky) throws RemoteException {
  396. UzaverkaController.getInstance().setUzaverka((Uzaverka) Uzaverka.findById("Uzaverka", "id", idUzaverky));
  397. return UzaverkaController.getInstance().getKontroly();
  398. }
  399. @Override
  400. public Uzaverka createUzaverka(Uzaverka u) throws RemoteException {
  401. return UzaverkaController.getInstance().createUzaverka(u);
  402. }
  403. @Override
  404. public Uzaverka updateUzaverka(Uzaverka u) throws RemoteException {
  405. return UzaverkaController.getInstance().updateUzaverka(u);
  406. }
  407. @Override
  408. public void addKontrolaToUzaverka(double noveMnozstvi, double stareMnozstvi, double prodanoVahou, double rozdil, int surovinaId, int uzaverkaId, boolean valid) throws RemoteException {
  409. UzaverkaController.getInstance().addKontrola(noveMnozstvi, stareMnozstvi, prodanoVahou, rozdil, surovinaId, uzaverkaId, valid);
  410. }
  411. @Override
  412. public Object[][] getUzaverky() throws RemoteException {
  413. return UzaverkaController.getInstance().getAllUzaverky();
  414. }
  415. @Override
  416. public List<Kontrola> getKontrolyFromUzaverka(int id) throws RemoteException {
  417. UzaverkaController.getInstance().setUzaverka((Uzaverka) Uzaverka.findById("Uzaverka", "id", id));
  418. return UzaverkaController.getInstance().getAllKontrolyList();
  419. }
  420. @Override
  421. public List<Object[]> getStatistikaFromUzaverky(int[] ids) throws RemoteException {
  422. return UzaverkaController.getInstance().getStatistikaFromUzaverky(ids);
  423. }
  424. @Override
  425. public Object[][] getStatistikaFromUzaverka(int uzaverkaId) throws RemoteException {
  426. return UzaverkaController.getInstance().getStatistikaFromUzaverka(uzaverkaId);
  427. }
  428. /**
  429. * Metoda vraci mnozstvi suroviny prodane pokladnou od predchozi uzaverky.
  430. * @param surovinaId
  431. * @return
  432. */
  433. @Override
  434. public double prodanoPokladnou(int surovinaId) throws RemoteException {
  435. return UzaverkaController.getInstance().prodanoPokladnou(surovinaId);
  436. }
  437. @Override
  438. public void addKontrolaToUzaverka(Kontrola k) throws RemoteException {
  439. UzaverkaController.getInstance().addKontrola(k);
  440. }
  441. @Override
  442. public Uzaverka getUzaverkaByID(int uzaverkaId) throws RemoteException {
  443. return UzaverkaController.getInstance().getUzaverkaById(uzaverkaId);
  444. }
  445. @Override
  446. public List<Material> getCheckedMaterialsByUzaverka(Uzaverka u) throws RemoteException {
  447. return UzaverkaController.getInstance().getCheckedMaterialsByUzaverka(u);
  448. }
  449. }