1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package db.table;
- import java.util.List;
- import java.util.Optional;
- import db.Table;
- import db.annotation.DbTable;
- import entity.Ecole;
- @DbTable(name = "Ecole", entity = Ecole.class)
- public class EcoleTable extends Table<Ecole> {
-
- private static EcoleTable instance;
- private static VilleTable vt = VilleTable.getInstance();
- private static NiveauTable nt = NiveauTable.getInstance();
-
- private EcoleTable() {
- // Private constructor for singleton
- }
- @Override
- public Ecole getById(long id) {
- return link(super.getById(id));
- }
- @Override
- public List<Ecole> getByField(String fieldname, Object value) {
- return link(super.getByField(fieldname, value));
- }
- @Override
- public List<Ecole> getWhere(List<String> where, List<Object> params) {
- return link(super.getWhere(where, params));
- }
- @Override
- public List<Ecole> getAll() {
- return link(super.getAll());
- }
- @Override
- public void save(Ecole obj) {
- vt.save(obj.ville);
- nt.save(obj.niveau);
- obj.villeId = obj.ville.id;
- obj.niveauId = obj.niveau.id;
- super.save(obj);
- }
- private Ecole link(Ecole obj) {
- if(obj == null) {
- return null;
- }
- obj.ville = vt.getById(obj.villeId);
- obj.niveau = nt.getById(obj.niveauId);
- return obj;
- }
-
- private List<Ecole> link(List<Ecole> list) {
- if(list.isEmpty()) {
- return list;
- }
- list.forEach(elt -> link(elt));
- return list;
- }
-
- public static EcoleTable getInstance() {
- if(instance == null) {
- instance = new EcoleTable();
- }
- return instance;
- }
- }
|