001package org.nuxeo.project.sample;
002
003import java.io.IOException;
004import java.util.Date;
005import java.util.Random;
006
007import org.nuxeo.ecm.core.api.Blob;
008import org.nuxeo.ecm.core.api.CoreSession;
009import org.nuxeo.ecm.core.api.DocumentModel;
010import org.nuxeo.ecm.platform.filemanager.service.extension.AbstractFileImporter;
011import org.nuxeo.ecm.platform.filemanager.utils.FileManagerUtils;
012import org.nuxeo.ecm.platform.types.TypeManager;
013import org.nuxeo.runtime.api.Framework;
014
015public class BookFileManagerPlugin extends AbstractFileImporter {
016
017    private static final long serialVersionUID = 1L;
018
019    public DocumentModel create(CoreSession documentManager, Blob content, String path, boolean overwrite,
020            String filename, TypeManager typeService) throws IOException {
021
022        String title = FileManagerUtils.fetchTitle(FileManagerUtils.fetchFileName(filename));
023
024        BookTitleService service = Framework.getService(BookTitleService.class);
025
026        title = service.correctTitle(title);
027
028        Random random = new Random(new Date().getTime());
029        String randomName = String.valueOf(random.nextLong());
030
031        DocumentModel doc = documentManager.createDocumentModel(path, randomName, "Book");
032        doc.setPropertyValue("dublincore:title", title);
033        doc.setPropertyValue("dublincore:description", filename);
034        doc.setProperty("file", "content", content);
035        doc = documentManager.createDocument(doc);
036        documentManager.save();
037
038        return doc;
039    }
040
041}