package com.megatim.fdxconsultation.service.ifaces.abstracts; import com.bekosoftware.genericdaolayer.dao.tools.RestrictionsContainer; import com.bekosoftware.genericmanagerlayer.core.ifaces.GenericManager; import com.megatim.fdxcommons.model.enumeration.TypeOperation; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.annotation.security.PermitAll; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; /** * * @author lenovo */ public interface AbstractGenericValidationIFaces { @PermitAll @POST @Consumes({MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_JSON}) @Path("validate") public default void validate(@Context HttpHeaders headers, T entity) { } @PermitAll @POST @Consumes({MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_JSON}) @Path("reject") public default void reject(@Context HttpHeaders headers, T entity) { } @PermitAll @POST @Produces({MediaType.APPLICATION_JSON}) @Path("findwithpagination/{pageNumber}/{pagesize}") public default List findWithPagination(@Context HttpHeaders headers, @PathParam("pageNumber") Integer pageNumber, @PathParam("pagesize") Integer pagesize, K searchEntity) { //Variables List datas = null; //On construit la requete RestrictionsContainer requeteur = construireRequete(searchEntity, TypeOperation.AJOUTER); //Construction de l'index int index = (pageNumber - 1) * pagesize; //Si non vide if (datas == null || datas.isEmpty()) { //Liste vide datas = new ArrayList<>(); } return datas; } @PermitAll @POST @Produces({MediaType.APPLICATION_JSON}) @Path("count") public default Long count(@Context HttpHeaders headers, K searchEntity) { //Variables Long count = 0l; //On construit la requete RestrictionsContainer requeteur = construireRequete(searchEntity, TypeOperation.AJOUTER); //On on recherche l'entité count = getManager().count(requeteur.getPredicats()); return count; } public abstract GenericManager getManager(); public abstract U getActualState(); public abstract U getNextState(); public abstract U getRejectionState(); public abstract RestrictionsContainer construireRequete(K parametre, TypeOperation typeOperation); }