Kenmegne
7 days ago 23a46b4be35277e06ec89f48730eeb694e686be8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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);
 
}