]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
e19e56d3a9010ab6f7fb912c2930a2cbb18cc615
[tmp/jakarta-migration.git] /
1 /**\r
2  * \r
3  */\r
4 package org.collectionspace.services.collectionobject.nuxeo;\r
5 \r
6 import org.collectionspace.services.collectionobject.CollectionObjectService;\r
7 import org.collectionspace.services.*;\r
8 import java.io.ByteArrayInputStream;\r
9 import java.io.IOException;\r
10 import java.util.ArrayList;\r
11 import java.util.Arrays;\r
12 import java.util.HashMap;\r
13 import java.util.List;\r
14 import java.util.Map;\r
15 \r
16 import org.collectionspace.services.nuxeo.client.rest.NuxeoRESTClient;\r
17 import org.collectionspace.services.nuxeo.CollectionSpaceServiceNuxeoImpl;\r
18 import org.collectionspace.services.collectionobject.CollectionObject;\r
19 import org.collectionspace.services.CollectionObjectJAXBSchema;\r
20 import org.collectionspace.services.nuxeo.util.NuxeoUtils;\r
21 \r
22 import org.dom4j.Document;\r
23 import org.dom4j.DocumentException;\r
24 import org.dom4j.io.SAXReader;\r
25 import org.restlet.resource.Representation;\r
26 \r
27 import org.nuxeo.ecm.core.api.IdRef;\r
28 import org.nuxeo.ecm.core.api.repository.RepositoryInstance;\r
29 import org.nuxeo.ecm.core.api.DocumentModel;\r
30 import org.nuxeo.ecm.core.api.DocumentRef;\r
31 \r
32 \r
33 \r
34 /**\r
35  * @author remillet\r
36  * \r
37  */\r
38 public class CollectionObjectServiceNuxeoImpl extends\r
39                 CollectionSpaceServiceNuxeoImpl implements CollectionObjectService {\r
40 \r
41         final static String CO_NUXEO_DOCTYPE = "CollectionObject";\r
42         final static String CO_NUXEO_SCHEMA_NAME = "collectionobject";\r
43         final static String CO_NUXEO_DC_TITLE = "CollectionSpace-CollectionObject";\r
44 \r
45         // replace WORKSPACE_UID for resource workspace\r
46         static String CS_COLLECTIONOBJECT_WORKSPACE_UID = "9dd20955-fce7-4a87-8319-040ab9543f4f";\r
47 \r
48         public Document deleteCollectionObject(String csid)\r
49                         throws DocumentException, IOException {\r
50 \r
51                 Document result = null;\r
52                 \r
53 //              NuxeoRESTClient nxClient = getClient();\r
54 //              List<String> pathParams = new ArrayList<String>();\r
55 //              Map<String, String> queryParams = new HashMap<String, String>();\r
56 //\r
57 //              pathParams.add("default");\r
58 //              pathParams.add(csid);\r
59 //              pathParams.add("deleteDocumentRestlet");\r
60 //              Representation res = nxClient.get(pathParams, queryParams);\r
61 //              SAXReader reader = new SAXReader();\r
62 //              result = reader.read(res.getStream());\r
63                 \r
64                 return result;\r
65         }\r
66 \r
67         public Document getCollectionObject(String csid) throws DocumentException,\r
68                         IOException {\r
69                 \r
70                 // Calling via Nuxeo Java API\r
71                 //getCollectionObjectViaJavaAPI(csid);\r
72                 \r
73                 // Return to normal Nuxeo REST call\r
74                 Document result = null;\r
75 //              \r
76 //              List<String> pathParams = new ArrayList<String>();\r
77 //              Map<String, String> queryParams = new HashMap<String, String>();\r
78 //\r
79 //              pathParams.add("default");\r
80 //              pathParams.add(csid);\r
81 //              pathParams.add("export");\r
82 //              queryParams.put("format", "XML");\r
83 //\r
84 //              NuxeoRESTClient nxClient = getClient();\r
85 //              Representation res = nxClient.get(pathParams, queryParams);\r
86 //\r
87 //              SAXReader reader = new SAXReader();\r
88 //              result = reader.read(res.getStream());\r
89 \r
90                 return result;\r
91         }\r
92         \r
93         \r
94         public Document getCollectionObjectList() throws DocumentException,\r
95                         IOException {\r
96                 Document result = null;\r
97 \r
98 //              NuxeoRESTClient nxClient = getClient();\r
99 //              List<String> pathParams = new ArrayList<String>();\r
100 //              Map<String, String> queryParams = new HashMap<String, String>();\r
101 //              pathParams = Arrays.asList("default",\r
102 //                              CS_COLLECTIONOBJECT_WORKSPACE_UID, "browse");\r
103 //              Representation res = nxClient.get(pathParams, queryParams);\r
104 //              SAXReader reader = new SAXReader();\r
105 //              result = reader.read(res.getStream());\r
106 \r
107                 return result;\r
108         }\r
109 \r
110         public Document postCollectionObject(CollectionObject co)\r
111                         throws DocumentException, IOException {\r
112                 Document result = null;\r
113                 \r
114 //              NuxeoRESTClient nxClient = getClient();\r
115 //\r
116 //              List<String> pathParams = new ArrayList<String>();\r
117 //              Map<String, String> queryParams = new HashMap<String, String>();\r
118 //              pathParams.add("default");\r
119 //              pathParams.add(CS_COLLECTIONOBJECT_WORKSPACE_UID);\r
120 //              pathParams.add("createDocument");\r
121 //              queryParams.put("docType", CO_NUXEO_DOCTYPE);\r
122 //\r
123 //              // a default title for the Dublin Core schema\r
124 //              queryParams.put("dublincore:title", CO_NUXEO_DC_TITLE);\r
125 //\r
126 //              // CollectionObject core values\r
127 //              queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
128 //                              + CollectionObjectJAXBSchema.OBJECT_NUMBER, co\r
129 //                              .getObjectNumber());\r
130 //              queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
131 //                              + CollectionObjectJAXBSchema.OTHER_NUMBER, co.getOtherNumber());\r
132 //              queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
133 //                              + CollectionObjectJAXBSchema.BRIEF_DESCRIPTION, co\r
134 //                              .getBriefDescription());\r
135 //              queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
136 //                              + CollectionObjectJAXBSchema.COMMENTS, co.getComments());\r
137 //              queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
138 //                              + CollectionObjectJAXBSchema.DIST_FEATURES, co\r
139 //                              .getDistFeatures());\r
140 //              queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
141 //                              + CollectionObjectJAXBSchema.OBJECT_NAME, co.getObjectName());\r
142 //              queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
143 //                              + CollectionObjectJAXBSchema.RESPONSIBLE_DEPT, co\r
144 //                              .getResponsibleDept());\r
145 //              queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
146 //                              + CollectionObjectJAXBSchema.TITLE, co.getTitle());\r
147 //\r
148 //              ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]);\r
149 //              Representation res = nxClient.post(pathParams, queryParams, bais);\r
150 //\r
151 //              SAXReader reader = new SAXReader();\r
152 //              result = reader.read(res.getStream());\r
153 \r
154                 return result;\r
155         }\r
156 \r
157         public Document putCollectionObject(String csid, CollectionObject theUpdate)\r
158                         throws DocumentException, IOException {\r
159                 \r
160                 Document result = null;\r
161                 \r
162 //              List<String> pathParams = new ArrayList<String>();\r
163 //              Map<String, String> queryParams = new HashMap<String, String>();\r
164 //              pathParams.add("default");\r
165 //              pathParams.add(csid);\r
166 //              pathParams.add("updateDocumentRestlet");\r
167 //\r
168 //              // todo: intelligent merge needed\r
169 //              if (theUpdate.getObjectNumber() != null) {\r
170 //                      queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
171 //                                      + CollectionObjectJAXBSchema.OBJECT_NUMBER, theUpdate\r
172 //                                      .getObjectNumber());\r
173 //              }\r
174 //\r
175 //              if (theUpdate.getOtherNumber() != null) {\r
176 //                      queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
177 //                                      + CollectionObjectJAXBSchema.OTHER_NUMBER, theUpdate\r
178 //                                      .getOtherNumber());\r
179 //              }\r
180 //\r
181 //              if (theUpdate.getBriefDescription() != null) {\r
182 //                      queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
183 //                                      + CollectionObjectJAXBSchema.BRIEF_DESCRIPTION, theUpdate\r
184 //                                      .getBriefDescription());\r
185 //              }\r
186 //\r
187 //              if (theUpdate.getComments() != null) {\r
188 //                      queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
189 //                                      + CollectionObjectJAXBSchema.COMMENTS, theUpdate\r
190 //                                      .getComments());\r
191 //              }\r
192 //\r
193 //              if (theUpdate.getDistFeatures() != null) {\r
194 //                      queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
195 //                                      + CollectionObjectJAXBSchema.DIST_FEATURES, theUpdate\r
196 //                                      .getDistFeatures());\r
197 //              }\r
198 //\r
199 //              if (theUpdate.getObjectName() != null) {\r
200 //                      queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
201 //                                      + CollectionObjectJAXBSchema.OBJECT_NAME, theUpdate\r
202 //                                      .getObjectName());\r
203 //              }\r
204 //\r
205 //              if (theUpdate.getResponsibleDept() != null) {\r
206 //                      queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
207 //                                      + CollectionObjectJAXBSchema.RESPONSIBLE_DEPT, theUpdate\r
208 //                                      .getResponsibleDept());\r
209 //              }\r
210 //\r
211 //              if (theUpdate.getTitle() != null) {\r
212 //                      queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"\r
213 //                                      + CollectionObjectJAXBSchema.TITLE, theUpdate.getTitle());\r
214 //              }\r
215 //\r
216 //              NuxeoRESTClient nxClient = getClient();\r
217 //              Representation res = nxClient.get(pathParams, queryParams);\r
218 //              SAXReader reader = new SAXReader();\r
219 //              result = reader.read(res.getStream());\r
220 \r
221                 return result;\r
222         }\r
223 \r
224 }\r