/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template */ package com.megatim.fdxconsultation.core.ifaces.abtracts; import com.bekosoftware.genericdaolayer.dao.tools.RestrictionsContainer; import com.bekosoftware.genericmanagerlayer.core.ifaces.GenericManager; import com.megatim.common.annotations.OrderType; import com.megatim.fdxcommons.model.enumeration.TypeOperation; import com.megatim.fdxconsultation.model.administration.User; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * * @author ASUS */ public interface GeneriConsultingManagerIFaces extends GenericManager { K mapToDto(T entity); S mapToDetailDto(T entity); public abstract String getEntityIdName(); public S getById(ID id); public default List convertListToDto(List datas) { List dtos = new ArrayList<>(); if (datas != null) { for (T data : datas) { dtos.add(mapToDto(data)); } } return dtos; } public default List getWithPagination(Integer pageNumber, Integer pagesize, U searchEntity, User connectedUser) { Map orders = new HashMap<>(); //On trie par id orders.put(getEntityIdName(), OrderType.DESC); //On construit la requete RestrictionsContainer requeteur = construireRequete(searchEntity, TypeOperation.AJOUTER); //Construction de l'index int index = (pageNumber - 1) * pagesize; //On on recherche l'entité List datas = filter(requeteur.getPredicats(), orders, null, index, pagesize); List dtos = convertListToDto(datas); return dtos; } public default List getAll(U searchEntity, User connectedUser) { //On construit la requete RestrictionsContainer requeteur = construireRequete(searchEntity, TypeOperation.AJOUTER); Map orders = new HashMap<>(); //On trie par id orders.put(getEntityIdName(), OrderType.DESC); //On on recherche l'entité List datas = filter(requeteur.getPredicats(), orders, null, 0, -1); List dtos = convertListToDto(datas); return dtos; } public default Long size(U searchEntity) { //On construit la requete RestrictionsContainer requeteur = construireRequete(searchEntity, TypeOperation.AJOUTER); //On on recherche l'entité return count(requeteur.getPredicats()); } public abstract RestrictionsContainer construireRequete(U searchEntity, TypeOperation typeOperation); }