001package org.nuxeo.project.sample;
002
003import java.text.SimpleDateFormat;
004import java.util.Date;
005
006import org.nuxeo.ecm.core.api.DocumentModel;
007import org.nuxeo.ecm.core.event.Event;
008import org.nuxeo.ecm.core.event.EventContext;
009import org.nuxeo.ecm.core.event.EventListener;
010import org.nuxeo.ecm.core.event.impl.DocumentEventContext;
011
012public class BookEventListener implements EventListener {
013
014    @Override
015    public void handleEvent(Event event) {
016
017        EventContext ctx = event.getContext();
018
019        if (ctx instanceof DocumentEventContext) {
020
021            DocumentEventContext docCtx = (DocumentEventContext) ctx;
022            DocumentModel doc = docCtx.getSourceDocument();
023
024            if (doc != null) {
025                String type = doc.getType();
026                if ("Book".equals(type)) {
027                    process(doc);
028                }
029            }
030        }
031    }
032
033    public void process(DocumentModel doc) {
034        doc.setPropertyValue("dublincore:title", "Sample Book");
035        String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
036        doc.setPropertyValue("dublincore:description", "(Created on " + date + ")");
037    }
038
039}