|
@@ -0,0 +1,83 @@
|
|
|
|
+package db.table;
|
|
|
|
+
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Optional;
|
|
|
|
+
|
|
|
|
+import db.Table;
|
|
|
|
+import db.annotation.DbTable;
|
|
|
|
+import entity.Usager;
|
|
|
|
+
|
|
|
|
+@DbTable(name = "Usager", entity = Usager.class)
|
|
|
|
+public class UsagerTable extends Table<Usager> {
|
|
|
|
+
|
|
|
|
+ private static UsagerTable instance;
|
|
|
|
+ private static VilleTable vt = VilleTable.getInstance();
|
|
|
|
+ private static EcoleTable et = EcoleTable.getInstance();
|
|
|
|
+
|
|
|
|
+ private UsagerTable() {
|
|
|
|
+ // Private constructor for singleton
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Optional<Usager> findById(long id) {
|
|
|
|
+ Optional<Usager> opt = super.findById(id);
|
|
|
|
+ if (opt.isEmpty()) {
|
|
|
|
+ return opt;
|
|
|
|
+ }
|
|
|
|
+ return Optional.of(link(opt.get()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Usager getById(long id) {
|
|
|
|
+ return link(super.getById(id));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<Usager> getByField(String fieldname, Object value) {
|
|
|
|
+ return link(super.getByField(fieldname, value));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<Usager> getWhere(List<String> where, List<Object> params) {
|
|
|
|
+ return link(super.getWhere(where, params));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<Usager> getAll() {
|
|
|
|
+ return link(super.getAll());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void save(Usager obj) {
|
|
|
|
+ vt.save(obj.ville);
|
|
|
|
+ et.save(obj.ecole);
|
|
|
|
+ obj.villeId = obj.ville.id;
|
|
|
|
+ obj.ecoleId = obj.ecole.id;
|
|
|
|
+ super.save(obj);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private Usager link(Usager obj) {
|
|
|
|
+ if(obj == null) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ obj.ville = vt.getById(obj.villeId);
|
|
|
|
+ obj.ecole = et.getById(obj.ecoleId);
|
|
|
|
+ return obj;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private List<Usager> link(List<Usager> list) {
|
|
|
|
+ if(list.isEmpty()) {
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+ list.forEach(elt -> link(elt));
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static UsagerTable getInstance() {
|
|
|
|
+ if(instance == null) {
|
|
|
|
+ instance = new UsagerTable();
|
|
|
|
+ }
|
|
|
|
+ return instance;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|