]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
562566b0981127a218ab854a7167407b214f6426
[tmp/jakarta-migration.git] /
1 package org.collectionspace.services.common.document;\r
2 \r
3 import java.lang.reflect.Field;\r
4 import java.lang.reflect.ParameterizedType;\r
5 import java.lang.reflect.Type;\r
6 import java.lang.reflect.TypeVariable;\r
7 import java.util.ArrayList;\r
8 \r
9 import org.collectionspace.services.common.context.MultipartServiceContext;\r
10 import org.collectionspace.services.common.context.ServiceContext;\r
11 import org.collectionspace.services.common.document.DocumentHandler.Action;\r
12 import org.collectionspace.services.relation.RelationsCommon;\r
13 import org.jboss.resteasy.plugins.providers.multipart.MultipartInput;\r
14 import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput;\r
15 import org.slf4j.Logger;\r
16 import org.slf4j.LoggerFactory;\r
17 \r
18 // TODO: Auto-generated Javadoc\r
19 /**\r
20  * The Class ValidatorHandlerImpl.\r
21  */\r
22 public abstract class ValidatorHandlerImpl<IT, OT> implements ValidatorHandler<IT, OT> {\r
23         \r
24     /** The logger. */\r
25     private final Logger logger = LoggerFactory.getLogger(ValidatorHandlerImpl.class);\r
26     \r
27     private ServiceContext<IT, OT> ctx;\r
28     \r
29     protected ServiceContext<IT, OT> getServiceContext() {\r
30         return ctx;\r
31     }\r
32     \r
33     protected void setServiceContext(ServiceContext<IT, OT> ctx) {\r
34         this.ctx = ctx;\r
35     }\r
36         \r
37         /* (non-Javadoc)\r
38          * @see org.collectionspace.services.common.document.ValidatorHandler#validate(org.collectionspace.services.common.document.DocumentHandler.Action, org.collectionspace.services.common.context.ServiceContext)\r
39          */\r
40         @Override\r
41     public void validate(Action action, ServiceContext<IT, OT> ctx)\r
42                 throws InvalidDocumentException {\r
43                 setServiceContext(ctx);\r
44                 switch (action) {\r
45                         case CREATE:\r
46                                 handleCreate();\r
47                                 break;\r
48                         case GET:\r
49                                 handleGet();\r
50                                 break;\r
51                         case GET_ALL:\r
52                                 handleGetAll();\r
53                                 break;\r
54                         case UPDATE:\r
55                                 handleUpdate();\r
56                                 break;\r
57                         case DELETE:\r
58                                 handleDelete();\r
59                                 break;\r
60                         default:\r
61                                 throw new UnsupportedOperationException("ValidatorHandlerImpl: Unknow action = " +\r
62                                                 action);\r
63                 }       \r
64     }\r
65         \r
66     protected Object getCommonPart() {\r
67         Object result = null;           \r
68 \r
69         try {\r
70                 MultipartServiceContext multiPartCtx = (MultipartServiceContext) getServiceContext();\r
71                 result = multiPartCtx.getInputPart(ctx.getCommonPartLabel(),\r
72                                 getCommonPartClass());\r
73         } catch (Exception e) {\r
74                 if (logger.isDebugEnabled() == true) {\r
75                         logger.debug("Could not extract common part from multipart input.", e);\r
76                 }\r
77         }\r
78         \r
79         return result;          \r
80     }   \r
81         \r
82     abstract protected Class<?> getCommonPartClass();\r
83     \r
84         /**\r
85          * Handle create.\r
86          *\r
87          * @param ctx the ctx\r
88          */\r
89         abstract protected void handleCreate() throws InvalidDocumentException;\r
90         \r
91         /**\r
92          * Handle get.\r
93          *\r
94          * @param ctx the ctx\r
95          */\r
96         abstract protected void handleGet() throws InvalidDocumentException;\r
97         \r
98         /**\r
99          * Handle get all.\r
100          *\r
101          * @param ctx the ctx\r
102          */\r
103         abstract protected void handleGetAll() throws InvalidDocumentException;\r
104         \r
105         /**\r
106          * Handle update.\r
107          *\r
108          * @param ctx the ctx\r
109          */\r
110         abstract protected void handleUpdate() throws InvalidDocumentException;\r
111 \r
112         /**\r
113          * Handle delete.\r
114          *\r
115          * @param ctx the ctx\r
116          */\r
117         abstract protected void handleDelete() throws InvalidDocumentException; \r
118 }