EcoleTable.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package db.table;
  2. import java.util.List;
  3. import java.util.Optional;
  4. import db.Table;
  5. import db.annotation.DbTable;
  6. import entity.Ecole;
  7. @DbTable(name = "Ecole", entity = Ecole.class)
  8. public class EcoleTable extends Table<Ecole> {
  9. private static EcoleTable instance;
  10. private static VilleTable vt = VilleTable.getInstance();
  11. private static NiveauTable nt = NiveauTable.getInstance();
  12. private EcoleTable() {
  13. // Private constructor for singleton
  14. }
  15. @Override
  16. public Ecole getById(long id) {
  17. return link(super.getById(id));
  18. }
  19. @Override
  20. public List<Ecole> getByField(String fieldname, Object value) {
  21. return link(super.getByField(fieldname, value));
  22. }
  23. @Override
  24. public List<Ecole> getWhere(List<String> where, List<Object> params) {
  25. return link(super.getWhere(where, params));
  26. }
  27. @Override
  28. public List<Ecole> getAll() {
  29. return link(super.getAll());
  30. }
  31. @Override
  32. public void save(Ecole obj) {
  33. vt.save(obj.ville);
  34. nt.save(obj.niveau);
  35. obj.villeId = obj.ville.id;
  36. obj.niveauId = obj.niveau.id;
  37. super.save(obj);
  38. }
  39. private Ecole link(Ecole obj) {
  40. if(obj == null) {
  41. return null;
  42. }
  43. obj.ville = vt.getById(obj.villeId);
  44. obj.niveau = nt.getById(obj.niveauId);
  45. return obj;
  46. }
  47. private List<Ecole> link(List<Ecole> list) {
  48. if(list.isEmpty()) {
  49. return list;
  50. }
  51. list.forEach(elt -> link(elt));
  52. return list;
  53. }
  54. public static EcoleTable getInstance() {
  55. if(instance == null) {
  56. instance = new EcoleTable();
  57. }
  58. return instance;
  59. }
  60. }