4 package org.collectionspace.services.collectionobject.nuxeo;
\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
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
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
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
38 public class CollectionObjectServiceNuxeoImpl extends
\r
39 CollectionSpaceServiceNuxeoImpl implements CollectionObjectService {
\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
45 // replace WORKSPACE_UID for resource workspace
\r
46 static String CS_COLLECTIONOBJECT_WORKSPACE_UID = "9dd20955-fce7-4a87-8319-040ab9543f4f";
\r
48 public Document deleteCollectionObject(String csid)
\r
49 throws DocumentException, IOException {
\r
51 Document result = null;
\r
53 // NuxeoRESTClient nxClient = getClient();
\r
54 // List<String> pathParams = new ArrayList<String>();
\r
55 // Map<String, String> queryParams = new HashMap<String, String>();
\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
67 public Document getCollectionObject(String csid) throws DocumentException,
\r
70 // Calling via Nuxeo Java API
\r
71 //getCollectionObjectViaJavaAPI(csid);
\r
73 // Return to normal Nuxeo REST call
\r
74 Document result = null;
\r
76 // List<String> pathParams = new ArrayList<String>();
\r
77 // Map<String, String> queryParams = new HashMap<String, String>();
\r
79 // pathParams.add("default");
\r
80 // pathParams.add(csid);
\r
81 // pathParams.add("export");
\r
82 // queryParams.put("format", "XML");
\r
84 // NuxeoRESTClient nxClient = getClient();
\r
85 // Representation res = nxClient.get(pathParams, queryParams);
\r
87 // SAXReader reader = new SAXReader();
\r
88 // result = reader.read(res.getStream());
\r
94 public Document getCollectionObjectList() throws DocumentException,
\r
96 Document result = null;
\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
110 public Document postCollectionObject(CollectionObject co)
\r
111 throws DocumentException, IOException {
\r
112 Document result = null;
\r
114 // NuxeoRESTClient nxClient = getClient();
\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
123 // // a default title for the Dublin Core schema
\r
124 // queryParams.put("dublincore:title", CO_NUXEO_DC_TITLE);
\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
148 // ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]);
\r
149 // Representation res = nxClient.post(pathParams, queryParams, bais);
\r
151 // SAXReader reader = new SAXReader();
\r
152 // result = reader.read(res.getStream());
\r
157 public Document putCollectionObject(String csid, CollectionObject theUpdate)
\r
158 throws DocumentException, IOException {
\r
160 Document result = null;
\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
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
175 // if (theUpdate.getOtherNumber() != null) {
\r
176 // queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"
\r
177 // + CollectionObjectJAXBSchema.OTHER_NUMBER, theUpdate
\r
178 // .getOtherNumber());
\r
181 // if (theUpdate.getBriefDescription() != null) {
\r
182 // queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"
\r
183 // + CollectionObjectJAXBSchema.BRIEF_DESCRIPTION, theUpdate
\r
184 // .getBriefDescription());
\r
187 // if (theUpdate.getComments() != null) {
\r
188 // queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"
\r
189 // + CollectionObjectJAXBSchema.COMMENTS, theUpdate
\r
190 // .getComments());
\r
193 // if (theUpdate.getDistFeatures() != null) {
\r
194 // queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"
\r
195 // + CollectionObjectJAXBSchema.DIST_FEATURES, theUpdate
\r
196 // .getDistFeatures());
\r
199 // if (theUpdate.getObjectName() != null) {
\r
200 // queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"
\r
201 // + CollectionObjectJAXBSchema.OBJECT_NAME, theUpdate
\r
202 // .getObjectName());
\r
205 // if (theUpdate.getResponsibleDept() != null) {
\r
206 // queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"
\r
207 // + CollectionObjectJAXBSchema.RESPONSIBLE_DEPT, theUpdate
\r
208 // .getResponsibleDept());
\r
211 // if (theUpdate.getTitle() != null) {
\r
212 // queryParams.put(CO_NUXEO_SCHEMA_NAME + ":"
\r
213 // + CollectionObjectJAXBSchema.TITLE, theUpdate.getTitle());
\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