1 package com.pentila.emawsconnector.dao;
3 import java.io.UnsupportedEncodingException;
7 import com.pentila.emawsconnector.utils.EmaWSConnector;
8 import com.pentila.evalcomp.domain.Entity;
9 import com.pentila.evalcomp.domain.definition.EvaluationDefinition;
10 import com.pentila.evalcomp.domain.examen.Examen;
11 import com.pentila.evalcomp.domain.examen.ExamenDef;
12 import com.pentila.evalcomp.domain.plan.Plan;
13 import com.pentila.evalcomp.service.ws.WsErrors;
15 public class EvaluationDefinitionDAO {
18 * Créer une nouvelle campagne d'évaluation. Après cet appel,
19 * la campagne ne sera pas instantié. Il faut lui ajouter un plan,
20 * un scénario d'évaluation, des candidats, des examens, etc. Et
22 * @param dateStart Date de début de la campagne. Avant cette date, les candidats ne recevrons pas de tâche à effectuer
23 * @param dateEnd Date de fin de la campagne
24 * @param creator Créateur de la campagne
25 * @param name Nom de la campagne
26 * @param description description de la campagne
27 * @return retourne l'identifiant de la campagne crée, ou un code d'erreur.
29 public Long addEvaluationDefinition(Date dateStart, Date dateEnd,
30 String creator,String name, String description){
36 name = java.net.URLEncoder.encode(name, "UTF-8");
37 description = java.net.URLEncoder.encode(description, "UTF-8");
38 creator = java.net.URLEncoder.encode(creator, "UTF-8");
39 dateStartTime = java.net.URLEncoder.encode(String.valueOf(dateStart.getTime()/1000), "UTF-8");
40 dateEndTime = java.net.URLEncoder.encode(String.valueOf(dateEnd.getTime()/1000), "UTF-8");
41 }catch (UnsupportedEncodingException e) {
42 //e.printStackTrace();
47 result = EmaWSConnector.read("evaluationDefinition/addEvaluationDefinition?" +
49 "&description="+description+
51 "&dateStart="+dateStartTime+
52 "&dateEnd="+dateEndTime+
53 "&login=" + EmaWSConnector.getLogin(), result.getClass());
59 * Obtenir une campagne existante
60 * @param edid identifiant de la campagne
61 * @return retourne la campagne correspondante, null en cas d'erreur
63 public EvaluationDefinition getEvaluationDefinition(Long edid) {
64 EvaluationDefinition result = new EvaluationDefinition();
65 result = EmaWSConnector.read("evaluationDefinition/getEvaluationDefinition?" +
67 "&login=" + EmaWSConnector.getLogin(), result.getClass());
73 * Mettre à jour le plan de formation dans lequel s'inscrit la campagne.
74 * @param ed la campagne d'évaluation concernée
75 * @param plan le nouveau plan de formation
76 * @return retourne le code d'erreur correspondant au résultat
78 public Integer replacePlan(EvaluationDefinition ed, Plan plan) {
79 Integer result = WsErrors.ERROR_UNDEFINED;
80 result = EmaWSConnector.read("evaluationDefinition/replacePlan?" +
82 "&plan="+plan.getId()+
83 "&login=" + EmaWSConnector.getLogin(), result.getClass());
88 * Mettre à jour le scénario d'évaluation dans une campagne
89 * @param ed identifiant de la campagne concernée
90 * @param uuid identifiant du nouveau scénario
91 * @return retourne le code d'erreur correspondant au résultat
93 public Integer replaceScenarioEvaluation(EvaluationDefinition ed, String uuid) {
94 Integer result = WsErrors.ERROR_UNDEFINED;
95 result = EmaWSConnector.read("evaluationDefinition/replaceScenarioEvaluation?" +
98 "&login=" + EmaWSConnector.getLogin(), result.getClass());
103 * Mettre à jour la valeur d'une propriété d'un scénario dans une campagne
104 * @param property identifiant de la propriété à modifier
105 * @param value la nouvelle valeur
106 * @return retourne le code d'erreur correspondant au résultat
108 public Integer updateScenarioProperty(Long property, String value) {
109 Integer result = WsErrors.ERROR_UNDEFINED;
110 result = EmaWSConnector.read("scenario/updateProperty?" +
111 "property="+property+
113 "&login=" + EmaWSConnector.getLogin(), result.getClass());
118 * Ajouter un examen dans une compagne d'évaluation.
119 * @param ed la campagne d'évaluation concernée
120 * @param examen l'examen à ajouter
121 * @return retourne le code d'erreur correspondant au résultat
123 public Integer addExamen(EvaluationDefinition ed, Examen examen) {
124 Integer result = WsErrors.ERROR_UNDEFINED;
125 result = EmaWSConnector.read("evaluationDefinition/updateExamen?" +
127 "&examen="+examen.getId()+
129 "&login=" + EmaWSConnector.getLogin(), result.getClass());
134 * enlève un examen dans une compagne d'évaluation.
135 * @param ed la campagne d'évaluation concernée
136 * @param e l'examen à enlever
137 * @return retourne le code d'erreur correspondant au résultat
139 public Integer removeExamen(EvaluationDefinition ed, ExamenDef e) {
140 Integer result = WsErrors.ERROR_UNDEFINED;
141 result = EmaWSConnector.read("evaluationDefinition/updateExamen?" +
143 "&examen="+e.getId()+
145 "&login=" + EmaWSConnector.getLogin(), result.getClass());
150 * Mettre à jour des attributs de la campagne. Notez que si
151 * la campagne a déjà été instantié, cette modification n'aura pas
152 * d'effet pour les utilisateurs : leurs tâches sont déjà instanciés
153 * avec les paramètres au moment de l'instantiation. Pour que ces
154 * nouvelles valeurs soit prises en compte dans les tâches d'un
155 * candidat, il faut réinialiser l'instance du candidat.
156 * @param ed l'evaluationDefinition à sauvegarder
157 * @return retourne le code d'erreur correspondant au résultat
159 public Integer editEvaluationDefinition(EvaluationDefinition ed) {
160 Integer result = WsErrors.ERROR_UNDEFINED;
164 url = "evaluationDefinition/editEvaluationDefinition?" +
165 "id="+java.net.URLEncoder.encode(ed.getId().toString(), "UTF-8")+
166 "&name="+java.net.URLEncoder.encode(ed.getName(), "UTF-8")+
167 "&dateStart="+java.net.URLEncoder.encode(String.valueOf(ed.getDateStart().getTime()), "UTF-8")+
168 "&dateEnd="+java.net.URLEncoder.encode(String.valueOf(ed.getDateEnd().getTime()), "UTF-8")+
169 "&login=" + EmaWSConnector.getLogin();
170 } catch (UnsupportedEncodingException e) {
174 result = EmaWSConnector.read(url, result.getClass());
179 * Ajouter des personnes/groupes dans une campagne d'évaluation
180 * @param ed l'evaluationDefinition concernée
181 * @param entities entités à ajouter
182 * @param role rôle des entités. Par exemple, "Candidats".
183 * @return retourne le code d'erreur correspondant au résultat
185 public Integer addEntities(EvaluationDefinition ed, Set<Entity> entities, String role) {
186 Integer result = WsErrors.ERROR_UNDEFINED;
188 String entitiesString = "";
189 for(Entity e : entities){
190 entitiesString += e.getUid() + ",";
192 entitiesString = entitiesString.substring(0, entitiesString.length()-1);
194 result = EmaWSConnector.read("evaluationDefinition/updateEntities?" +
196 "&entities="+entitiesString+
199 "&login=" + EmaWSConnector.getLogin(), result.getClass());
204 * supprime des personnes/groupes dans une campagne d'évaluation
205 * @param ed l'evaluationDefinition concernée
206 * @param entities entités à supprimer
207 * @param role rôle des entités. Par exemple, "Candidats".
208 * @return retourne le code d'erreur correspondant au résultat
210 public Integer removeEntities(EvaluationDefinition ed, Set<Entity> entities, String role) {
211 Integer result = WsErrors.ERROR_UNDEFINED;
213 String entitiesString = "";
214 for(Entity e : entities){
215 entitiesString += e.getUid() + ",";
217 entitiesString = entitiesString.substring(0, entitiesString.length()-1);
219 result = EmaWSConnector.read("evaluationDefinition/updateEntities?" +
221 "&entities="+entitiesString+
224 "&login=" + EmaWSConnector.getLogin(), result.getClass());
229 * Instantiation de la campagne. Va générer les tâches pour les users.
230 * Correspond au "lancement" de la campagne
231 * @param ed l'evaluationDefinition à instantier
232 * @return retourne le code d'erreur correspondant au résultat
234 public Integer instantiateED(EvaluationDefinition ed) {
235 Integer result = WsErrors.ERROR_UNDEFINED;
236 result = EmaWSConnector.read("evaluationDefinition/instantiateED?" +
238 "&login=" + EmaWSConnector.getLogin(), result.getClass());
243 * Suppression de la campagne. Entraine la suppression des résultats associés
244 * @param ed la campagne d'evaluation à supprimer
245 * @return retourne le code d'erreur correspondant au résultat
247 public Integer deleteEvaluationDefinition(EvaluationDefinition ed) {
248 return EmaWSConnector.read("evaluationDefinition/deleteEvaluationDefinition?" +
250 "&login=" + EmaWSConnector.getLogin(), Integer.class);