]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
fa9e5f22fad48237e020cb1186105c68d5b9aef1
[tmp/jakarta-migration.git] /
1 package org.collectionspace.services.nuxeo.extension.thumbnail;
2
3 import org.nuxeo.ecm.core.api.Blob;
4 import org.nuxeo.ecm.core.api.ClientException;
5 import org.nuxeo.ecm.core.api.DocumentModel;
6 import org.nuxeo.ecm.core.api.blobholder.BlobHolder;
7 import org.nuxeo.ecm.core.api.event.DocumentEventTypes;
8 import org.nuxeo.ecm.core.event.Event;
9 import org.nuxeo.ecm.core.event.EventContext;
10 import org.nuxeo.ecm.core.event.EventListener;
11 import org.nuxeo.ecm.core.event.impl.DocumentEventContext;
12
13 public class UpdateThumbListener implements EventListener {
14  
15     public void handleEvent(Event event) throws ClientException {
16         EventContext ec = event.getContext();
17         if (ec instanceof DocumentEventContext) {
18             DocumentEventContext context = (DocumentEventContext) ec;
19             DocumentModel doc = context.getSourceDocument();
20             if (doc.isDirty() || DocumentEventTypes.DOCUMENT_CREATED.equals(event.getName())) {
21                 BlobHolder blobHolder = doc.getAdapter(BlobHolder.class);
22                 if (blobHolder != null) {
23                     Blob blob = blobHolder.getBlob();
24                     if (blob != null) {
25                         try {
26                             AddThumbnailUnrestricted runner = new AddThumbnailUnrestricted(
27                                     context.getCoreSession(), doc, blobHolder);
28                             runner.runUnrestricted();
29                             return; // Exit
30                         } catch (Exception e) {
31                             throw new RuntimeException(e);
32                         }
33                     }
34                 }
35                 // No Blob anymore, remove the facet
36                 if (doc.hasFacet(ThumbnailConstants.THUMBNAIL_FACET)) {
37                     doc.removeFacet(ThumbnailConstants.THUMBNAIL_FACET);
38                     context.getCoreSession().saveDocument(doc);
39                 }
40             }
41         }
42     }
43 }