]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
8b5dad99bb9e2b1b816a1dde0a37092c983c8bfa
[tmp/jakarta-migration.git] /
1 package org.collectionspace.services.common.vocabulary.nuxeo;
2
3 import org.collectionspace.services.client.ContactClient;
4 import org.collectionspace.services.client.PayloadInputPart;
5 import org.collectionspace.services.client.PoxPayloadIn;
6 import org.collectionspace.services.client.PoxPayloadOut;
7 import org.collectionspace.services.common.context.ServiceContext;
8 import org.collectionspace.services.common.document.DocumentWrapper;
9 import org.collectionspace.services.common.vocabulary.AuthorityResourceWithContacts;
10 import org.nuxeo.ecm.core.api.DocumentModel;
11
12 public abstract class AuthorityItemWithContactsDocumentModelHandler<AICommon> extends AuthorityItemDocumentModelHandler<AICommon> {
13
14     public AuthorityItemWithContactsDocumentModelHandler(String authorityCommonSchemaName,
15             String authorityItemCommonSchemaName) {
16         super(authorityCommonSchemaName, authorityItemCommonSchemaName);
17         // TODO Auto-generated constructor stub
18     }
19
20     @Override
21     public void completeCreate(DocumentWrapper<DocumentModel> wrapDoc) throws Exception {
22         super.completeCreate(wrapDoc);
23         handleContactPayload(wrapDoc);
24     }
25
26     private void handleContactPayload(DocumentWrapper<DocumentModel> wrapDoc) throws Exception {
27         ContactClient contactClient = new ContactClient();
28         ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = getServiceContext();
29         PoxPayloadIn input = ctx.getInput();
30         PayloadInputPart contactPart = input.getPart(contactClient.getCommonPartName());
31         if (contactPart != null) {
32             DocumentModel docModel = wrapDoc.getWrappedObject();
33             String authorityCsid = this.getInAuthorityCsid();
34             String itemCsid = this.getCsid(docModel);
35             createContact(authorityCsid, itemCsid, contactPart);
36         }
37     }
38
39     private void createContact(String authorityCsid, String itemCsid, PayloadInputPart contactPart) throws Exception {
40         ContactClient contactClient = new ContactClient();
41         String payloadTemplate = "<?xml version='1.0' encoding='UTF-8'?><document>%s</document>";
42         String xmlPayload = String.format(payloadTemplate, contactPart.asXML());
43         PoxPayloadIn input = new PoxPayloadIn(xmlPayload);
44                 
45         AuthorityResourceWithContacts contactResource = (AuthorityResourceWithContacts) getServiceContext().getResource();
46         
47         contactResource.createContact(getServiceContext(), authorityCsid, itemCsid, input, null);
48     }
49 }