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 package fr.paris.lutece.plugins.workflow.service.json;
35
36 import java.io.IOException;
37 import java.util.Locale;
38
39 import com.fasterxml.jackson.core.JsonParser;
40 import com.fasterxml.jackson.core.ObjectCodec;
41 import com.fasterxml.jackson.databind.DeserializationContext;
42 import com.fasterxml.jackson.databind.JsonDeserializer;
43 import com.fasterxml.jackson.databind.JsonNode;
44
45 import fr.paris.lutece.plugins.workflow.service.task.TaskFactory;
46 import fr.paris.lutece.plugins.workflowcore.business.action.Action;
47 import fr.paris.lutece.plugins.workflowcore.service.task.ITask;
48 import fr.paris.lutece.plugins.workflowcore.service.task.ITaskFactory;
49 import fr.paris.lutece.portal.service.spring.SpringContextService;
50
51 public class TaskDeserializer extends JsonDeserializer<ITask>
52 {
53
54 @Override
55 public ITask deserialize( JsonParser p, DeserializationContext ctxt ) throws IOException
56 {
57 ObjectCodec oc = p.getCodec( );
58 JsonNode node = oc.readTree( p );
59
60 ITaskFactory taskfactory = SpringContextService.getBean( TaskFactory.BEAN_SERVICE );
61
62 String taskType = node.get( "taskType" ).asText( );
63 int order = node.get( "order" ).asInt( );
64 String actionUid = node.get( "uid_action" ).asText( );
65 String uid = node.get( "uid" ).asText( );
66
67 Action action = new Action( );
68 action.setUid( actionUid );
69
70 ITask task = taskfactory.newTask( taskType, Locale.getDefault( ) );
71 task.setOrder( order );
72 task.setAction( action );
73 task.setActionUid( uid );
74
75 return task;
76 }
77
78 }