4 package org.collectionspace.services.intake;
\r
6 import org.collectionspace.services.*;
\r
7 import java.io.ByteArrayInputStream;
\r
8 import java.io.IOException;
\r
9 import java.util.ArrayList;
\r
10 import java.util.Arrays;
\r
11 import java.util.HashMap;
\r
12 import java.util.List;
\r
13 import java.util.Map;
\r
15 import org.collectionspace.services.nuxeo.client.rest.NuxeoRESTClient;
\r
16 import org.collectionspace.services.nuxeo.CollectionSpaceServiceNuxeoImpl;
\r
17 import org.collectionspace.services.intake.Intake;
\r
18 import org.collectionspace.services.IntakeJAXBSchema;
\r
20 import org.dom4j.Document;
\r
21 import org.dom4j.DocumentException;
\r
22 import org.dom4j.io.SAXReader;
\r
23 import org.restlet.resource.Representation;
\r
29 public class IntakeServiceNuxeoImpl extends
\r
30 CollectionSpaceServiceNuxeoImpl implements IntakeService {
\r
32 final static String INTAKE_NUXEO_DOCTYPE = "Intake";
\r
33 final static String INTAKE_NUXEO_SCHEMA_NAME = "intake";
\r
34 final static String INTAKE_NUXEO_DC_TITLE = "CollectionSpace-Intake";
\r
36 // replace WORKSPACE_UID for resource workspace
\r
37 static String CS_INTAKE_WORKSPACE_UID = "c04210c4-9426-475f-b4ee-aa3d6aa4b97c";
\r
39 public Document deleteIntake(String csid)
\r
40 throws DocumentException, IOException {
\r
42 Document result = null;
\r
44 // NuxeoRESTClient nxClient = getClient();
\r
45 // List<String> pathParams = new ArrayList<String>();
\r
46 // Map<String, String> queryParams = new HashMap<String, String>();
\r
48 // pathParams.add("default");
\r
49 // pathParams.add(csid);
\r
50 // pathParams.add("deleteDocumentRestlet");
\r
51 // Representation res = nxClient.get(pathParams, queryParams);
\r
52 // SAXReader reader = new SAXReader();
\r
53 // result = reader.read(res.getStream());
\r
58 public Document getIntake(String csid) throws DocumentException,
\r
60 Document result = null;
\r
62 // List<String> pathParams = new ArrayList<String>();
\r
63 // Map<String, String> queryParams = new HashMap<String, String>();
\r
65 // pathParams.add("default");
\r
66 // pathParams.add(csid);
\r
67 // pathParams.add("export");
\r
68 // queryParams.put("format", "XML");
\r
70 // NuxeoRESTClient nxClient = getClient();
\r
71 // Representation res = nxClient.get(pathParams, queryParams);
\r
73 // SAXReader reader = new SAXReader();
\r
74 // result = reader.read(res.getStream());
\r
79 public Document getIntakeList() throws DocumentException,
\r
81 Document result = null;
\r
83 // NuxeoRESTClient nxClient = getClient();
\r
84 // List<String> pathParams = new ArrayList<String>();
\r
85 // Map<String, String> queryParams = new HashMap<String, String>();
\r
86 // pathParams = Arrays.asList("default",
\r
87 // CS_INTAKE_WORKSPACE_UID, "browse");
\r
88 // Representation res = nxClient.get(pathParams, queryParams);
\r
89 // SAXReader reader = new SAXReader();
\r
90 // result = reader.read(res.getStream());
\r
95 public Document postIntake(Intake co)
\r
96 throws DocumentException, IOException {
\r
97 Document result = null;
\r
99 // NuxeoRESTClient nxClient = getClient();
\r
101 // List<String> pathParams = new ArrayList<String>();
\r
102 // Map<String, String> queryParams = new HashMap<String, String>();
\r
103 // pathParams.add("default");
\r
104 // pathParams.add(CS_INTAKE_WORKSPACE_UID);
\r
105 // pathParams.add("createDocument");
\r
106 // queryParams.put("docType", INTAKE_NUXEO_DOCTYPE);
\r
108 // // a default title for the Dublin Core schema
\r
109 // queryParams.put("dublincore:title", INTAKE_NUXEO_DC_TITLE);
\r
111 // // Intake core values
\r
112 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
113 // + IntakeJAXBSchema.CURRENT_OWNER, co
\r
114 // .getCurrentOwner());
\r
115 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
116 // + IntakeJAXBSchema.DEPOSITOR, co.getDepositor());
\r
117 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
118 // + IntakeJAXBSchema.DEPOSITORS_REQUIREMENTS, co
\r
119 // .getDepositorsRequirements());
\r
120 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
121 // + IntakeJAXBSchema.ENTRY_DATE, co.getEntryDate());
\r
122 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
123 // + IntakeJAXBSchema.ENTRY_METHOD, co
\r
124 // .getEntryMethod());
\r
125 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
126 // + IntakeJAXBSchema.ENTRY_NOTE, co.getEntryNote());
\r
127 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
128 // + IntakeJAXBSchema.ENTRY_NUMBER, co
\r
129 // .getEntryNumber());
\r
130 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
131 // + IntakeJAXBSchema.ENTRY_REASON, co.getEntryReason());
\r
132 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
133 // + IntakeJAXBSchema.PACKING_NOTE, co.getPackingNote());
\r
134 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
135 // + IntakeJAXBSchema.RETURN_DATE, co.getReturnDate());
\r
137 // ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]);
\r
138 // Representation res = nxClient.post(pathParams, queryParams, bais);
\r
140 // SAXReader reader = new SAXReader();
\r
141 // result = reader.read(res.getStream());
\r
146 public Document putIntake(String csid, Intake theUpdate)
\r
147 throws DocumentException, IOException {
\r
148 Document result = null;
\r
150 // List<String> pathParams = new ArrayList<String>();
\r
151 // Map<String, String> queryParams = new HashMap<String, String>();
\r
152 // pathParams.add("default");
\r
153 // pathParams.add(csid);
\r
154 // pathParams.add("updateDocumentRestlet");
\r
156 // // todo: intelligent merge needed
\r
157 // if (theUpdate.getCurrentOwner() != null) {
\r
158 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
159 // + IntakeJAXBSchema.CURRENT_OWNER, theUpdate.getCurrentOwner());
\r
162 // if (theUpdate.getDepositor() != null) {
\r
163 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
164 // + IntakeJAXBSchema.DEPOSITOR, theUpdate.getDepositor());
\r
167 // if (theUpdate.getDepositorsRequirements() != null) {
\r
168 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
169 // + IntakeJAXBSchema.DEPOSITORS_REQUIREMENTS, theUpdate.getDepositorsRequirements());
\r
172 // if (theUpdate.getEntryDate() != null) {
\r
173 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
174 // + IntakeJAXBSchema.ENTRY_DATE, theUpdate.getEntryDate());
\r
177 // if (theUpdate.getEntryMethod() != null) {
\r
178 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
179 // + IntakeJAXBSchema.ENTRY_METHOD, theUpdate.getEntryMethod());
\r
182 // if (theUpdate.getEntryNote() != null) {
\r
183 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
184 // + IntakeJAXBSchema.ENTRY_NOTE, theUpdate.getEntryNote());
\r
187 // if (theUpdate.getEntryNumber() != null) {
\r
188 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
189 // + IntakeJAXBSchema.ENTRY_NUMBER, theUpdate.getEntryNumber());
\r
192 // if (theUpdate.getEntryReason() != null) {
\r
193 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
194 // + IntakeJAXBSchema.ENTRY_REASON, theUpdate.getEntryReason());
\r
197 // if (theUpdate.getPackingNote() != null) {
\r
198 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
199 // + IntakeJAXBSchema.PACKING_NOTE, theUpdate.getPackingNote());
\r
202 // if (theUpdate.getReturnDate() != null) {
\r
203 // queryParams.put(INTAKE_NUXEO_SCHEMA_NAME + ":"
\r
204 // + IntakeJAXBSchema.RETURN_DATE, theUpdate.getReturnDate());
\r
207 // NuxeoRESTClient nxClient = getClient();
\r
208 // Representation res = nxClient.get(pathParams, queryParams);
\r
209 // SAXReader reader = new SAXReader();
\r
210 // result = reader.read(res.getStream());
\r