From 3532cf9a9d936942f291d479a6dc781eceeb7b1b Mon Sep 17 00:00:00 2001 From: jensp Date: Mon, 14 Jan 2013 18:42:41 +0000 Subject: [PATCH] =?UTF-8?q?SciPublications:=20Basisstruktur=20f=C3=BCr=20B?= =?UTF-8?q?ibTeX-Importer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.libreccm.org/ccm/trunk@2040 8810af33-2d31-482b-a856-94f89814c4df --- ccm-sci-publications/lib/jbibtex-1.0.2.jar | Bin 0 -> 74784 bytes ...blications.importer.bibtex.BibTeXConverter | 0 .../importer/bibtex/BibTeXConverter.java | 35 +++++++++++ .../importer/bibtex/BibTeXConverters.java | 56 ++++++++++++++++++ .../bibtex/BibTeXPublicationsImporter.java | 22 ++++++- 5 files changed, 111 insertions(+), 2 deletions(-) create mode 100644 ccm-sci-publications/lib/jbibtex-1.0.2.jar create mode 100644 ccm-sci-publications/src/META-INF/services/com.arsdigita.cms.scipublications.importer.bibtex.BibTeXConverter create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXConverter.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXConverters.java diff --git a/ccm-sci-publications/lib/jbibtex-1.0.2.jar b/ccm-sci-publications/lib/jbibtex-1.0.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..185d2cd6c61ecb407223bc3e9f919889d9a70259 GIT binary patch literal 74784 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 Nhx{;rPeV8W_&>sZvd91c literal 0 HcmV?d00001 diff --git a/ccm-sci-publications/src/META-INF/services/com.arsdigita.cms.scipublications.importer.bibtex.BibTeXConverter b/ccm-sci-publications/src/META-INF/services/com.arsdigita.cms.scipublications.importer.bibtex.BibTeXConverter new file mode 100644 index 000000000..e69de29bb diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXConverter.java new file mode 100644 index 000000000..e2cfed1f8 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXConverter.java @@ -0,0 +1,35 @@ +package com.arsdigita.cms.scipublications.importer.bibtex; + +import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.cms.contenttypes.PublicationBundle; +import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; +import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; +import org.jbibtex.BibTeXEntry; + +/** + * + * @param + * @param + * @author Jens Pelzetter + * @version $Id$ + */ +public interface BibTeXConverter { + + T createPublication(boolean pretend); + + B createBundle(T publication, boolean pretend); + + void processFields(final BibTeXEntry bibTeXEntry, + final T publication, + final ImporterUtil importerUtil, + final PublicationImportReport importReport, + final boolean pretend); + + /** + * Returns the supported BibTeX type. + * + * @return + */ + String getBibTeXType(); + +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXConverters.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXConverters.java new file mode 100644 index 000000000..1408c5780 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXConverters.java @@ -0,0 +1,56 @@ +package com.arsdigita.cms.scipublications.importer.bibtex; + +import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; +import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; +import java.util.HashMap; +import java.util.Map; +import java.util.ServiceLoader; +import org.apache.log4j.Logger; +import org.jbibtex.BibTeXEntry; + +/** + * Central access point for retrieving {@link BibTeXConverter}s for importing publication data in the BibTeX format. + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class BibTeXConverters { + + private final static Logger LOGGER = Logger.getLogger(BibTeXConverters.class); + private final Map> converters = new HashMap>(); + + @SuppressWarnings("rawtypes") + private BibTeXConverters() { + LOGGER.debug("Loading BibTeX converters..."); + final ServiceLoader converterServices = ServiceLoader.load(BibTeXConverter.class); + + for(BibTeXConverter converter : converterServices) { + LOGGER.debug(String.format("Found converter for BibTeX type '%s'.", converter.getBibTeXType())); + + converters.put(converter.getBibTeXType(), converter); + } + LOGGER.debug(String.format("Found %d BibTeX converters.", converters.size())); + } + + private static class Instance { + + private static BibTeXConverters INSTANCE = new BibTeXConverters(); + + } + + public static BibTeXConverters getInstance() { + return Instance.INSTANCE; + } + + public PublicationImportReport convert(final BibTeXEntry bibTeXEntry, + final ImporterUtil importerUtil, + final boolean pretend, + final boolean publishNewItems) { + final PublicationImportReport report = new PublicationImportReport(); + + + + return report; + } + +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXPublicationsImporter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXPublicationsImporter.java index d21cdb1e6..a868c1a6d 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXPublicationsImporter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXPublicationsImporter.java @@ -4,10 +4,16 @@ import com.arsdigita.cms.scipublications.imexporter.PublicationFormat; import com.arsdigita.cms.scipublications.importer.SciPublicationsImportException; import com.arsdigita.cms.scipublications.importer.SciPublicationsImporter; import com.arsdigita.cms.scipublications.importer.report.ImportReport; +import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; +import java.io.StringReader; import java.util.Map; import javax.activation.MimeType; import javax.activation.MimeTypeParseException; import org.apache.log4j.Logger; +import org.jbibtex.BibTeXDatabase; +import org.jbibtex.BibTeXEntry; +import org.jbibtex.BibTeXParser; +import org.jbibtex.Key; /** * @@ -27,15 +33,27 @@ public class BibTeXPublicationsImporter implements SciPublicationsImporter { return new PublicationFormat("BibTeX", null, "bib"); } } - + public ImportReport importPublications(final String publications, final Map importerParams, final boolean pretend, final boolean publishNewItems) throws SciPublicationsImportException { + final ImportReport report = new ImportReport(); + final ImporterUtil importerUtil = new ImporterUtil(publishNewItems); + final BibTeXConverters converters = BibTeXConverters.getInstance(); - throw new UnsupportedOperationException(); + final StringReader reader = new StringReader(publications); + final BibTeXParser parser = new BibTeXParser(reader); + final BibTeXDatabase database = parser.getDatabase(); + final Map entries = database.getEntries(); + + for(BibTeXEntry entry : entries.values()) { + report.addPublication(converters.convert(entry, importerUtil, pretend, publishNewItems)); + } + + return report; } }