package com.megatim.apifdxweb.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<T, U, K, ID extends Serializable> {
|
|
@PermitAll
|
@POST
|
@Consumes({MediaType.APPLICATION_JSON})
|
@Produces({MediaType.APPLICATION_JSON})
|
@Path("validate")
|
// @Secured(action = "validate")
|
public default void validate(@Context HttpHeaders headers, T entity) {
|
|
// getValidationManager().validate(entity, getActualState(), getNextState());
|
}
|
|
@PermitAll
|
@POST
|
@Consumes({MediaType.APPLICATION_JSON})
|
@Produces({MediaType.APPLICATION_JSON})
|
@Path("reject")
|
// @Secured(action = "reject")
|
public default void reject(@Context HttpHeaders headers, T entity) {
|
|
// getValidationManager().reject(entity, getActualState(), getRejectionState());
|
}
|
|
@PermitAll
|
@POST
|
@Produces({MediaType.APPLICATION_JSON})
|
@Path("findwithpagination/{pageNumber}/{pagesize}")
|
// @Secured(actions = {"add", "update", "delete", "view", "validate"})
|
public default List<T> findWithPagination(@Context HttpHeaders headers, @PathParam("pageNumber") Integer pageNumber, @PathParam("pagesize") Integer pagesize, K searchEntity) {
|
|
//Variables
|
List<T> datas = null;
|
|
//On construit la requete
|
RestrictionsContainer requeteur = construireRequete(searchEntity, TypeOperation.AJOUTER);
|
|
//Construction de l'index
|
int index = (pageNumber - 1) * pagesize;
|
|
//On on recherche l'entité
|
// datas = getManager().filter(requeteur.getPredicats(), null, null, index, pagesize);
|
|
//Si non vide
|
if (datas == null || datas.isEmpty()) {
|
|
//Liste vide
|
datas = new ArrayList<>();
|
|
}
|
|
return datas;
|
|
}
|
|
@PermitAll
|
@POST
|
@Produces({MediaType.APPLICATION_JSON})
|
@Path("count")
|
// @Secured(actions = {"add", "update", "delete", "view", "validate"})
|
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 GenericValidationIFaces<T, U> getValidationManager();
|
|
public abstract GenericManager<T, ID> getManager();
|
|
public abstract U getActualState();
|
|
public abstract U getNextState();
|
|
public abstract U getRejectionState();
|
|
public abstract RestrictionsContainer construireRequete(K parametre, TypeOperation typeOperation);
|
|
}
|