From fa7e3ca2b5325cfa64685c1c9db6871f6bc8824b Mon Sep 17 00:00:00 2001 From: jensp Date: Mon, 7 Jan 2013 17:35:15 +0000 Subject: [PATCH] =?UTF-8?q?Importer=20f=C3=BCr=20RIS=20Format=20und=20Conv?= =?UTF-8?q?erter=20f=C3=BCr=20f=C3=BCr=20die=20RIS-Typen=20INPR,=20GEN,=20?= =?UTF-8?q?ABST,=20BOOK,=20JFULL,=20EBOOK,=20JOUR=20und=20EJOUR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.libreccm.org/ccm/trunk@2029 8810af33-2d31-482b-a856-94f89814c4df --- .../imexporter/ris/RisField.java | 2 + .../importer/ris/RisDataset.java | 8 +- .../importer/ris/RisParser.java | 6 +- .../ris/converters/AbstConverter.java | 17 +++ .../ris/converters/AbstractRisConverter.java | 135 +++++++++++++++++- .../ris/converters/BookConverter.java | 28 +--- .../ris/converters/EbookConverter.java | 32 +---- .../ris/converters/EjourConverter.java | 17 ++- .../importer/ris/converters/GenConverter.java | 37 +---- .../ris/converters/InprConverter.java | 17 +++ .../ris/converters/JfullConverter.java | 17 +++ .../ris/converters/JourConverter.java | 53 +++++++ 12 files changed, 281 insertions(+), 88 deletions(-) create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/AbstConverter.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/InprConverter.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/JfullConverter.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/JourConverter.java diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/imexporter/ris/RisField.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/imexporter/ris/RisField.java index da2d8f4c2..4f70826a1 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/imexporter/ris/RisField.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/imexporter/ris/RisField.java @@ -347,6 +347,8 @@ public enum RisField { C1, C2, C3, + C4, + C5, /** * Number of volumes */ diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisDataset.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisDataset.java index a618179b9..6dcb16fb0 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisDataset.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisDataset.java @@ -16,15 +16,21 @@ public class RisDataset { private final RisType type; private final Map> values = new EnumMap>(RisField.class); + private final int firstLine; - public RisDataset(final RisType type) { + public RisDataset(final RisType type, final int firstLine) { this.type = type; + this.firstLine = firstLine; } public RisType getType() { return type; } + public int getFirstLine() { + return firstLine; + } + public Map> getValues() { return Collections.unmodifiableMap(values); } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisParser.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisParser.java index b66b249f2..4be3dbbbc 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisParser.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisParser.java @@ -34,7 +34,7 @@ public class RisParser { + "Aborting import.", i + 1)); } else { try { - entries.add(startDataset(field.getValue())); + entries.add(startDataset(field.getValue(), i + 1)); openDataset = true; } catch (IllegalArgumentException ex) { throw new SciPublicationsImportException(String.format("Invalid type at line %d.", i + 1), ex); @@ -58,9 +58,9 @@ public class RisParser { return Collections.unmodifiableList(entries); } - private RisDataset startDataset(final String type) { + private RisDataset startDataset(final String type, final int firstLine) { final RisType risType = RisType.valueOf(type); - return new RisDataset(risType); + return new RisDataset(risType, firstLine); } private RisFieldValue parseRisLine(final String line, final int index) throws SciPublicationsImportException { diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/AbstConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/AbstConverter.java new file mode 100644 index 000000000..354f2d479 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/AbstConverter.java @@ -0,0 +1,17 @@ +package com.arsdigita.cms.scipublications.importer.ris.converters; + +import com.arsdigita.cms.scipublications.imexporter.ris.RisType; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class AbstConverter extends JourConverter { + + @Override + public RisType getRisType() { + return RisType.ABST; + } + +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/AbstractRisConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/AbstractRisConverter.java index bb997e651..1beed1555 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/AbstractRisConverter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/AbstractRisConverter.java @@ -1,5 +1,6 @@ package com.arsdigita.cms.scipublications.importer.ris.converters; +import com.arsdigita.cms.contenttypes.ArticleInJournal; import com.arsdigita.cms.contenttypes.Publication; import com.arsdigita.cms.contenttypes.PublicationWithPublisher; import com.arsdigita.cms.scipublications.imexporter.ris.RisField; @@ -19,6 +20,49 @@ import java.util.List; */ public abstract class AbstractRisConverter implements RisConverter { + protected void processField(final RisDataset dataset, + final RisField field, + final Publication publication, + final String targetField, + final PublicationImportReport report, + final boolean pretend) { + final List values = dataset.getValues().get(field); + if ((values != null) && !values.isEmpty()) { + publication.set(targetField, values.get(0)); + report.addField(new FieldImportReport(targetField, values.get(0))); + } + } + + protected void processIntField(final RisDataset dataset, + final RisField field, + final Publication publication, + final String targetField, + final PublicationImportReport report, + final boolean pretend) { + final List values = dataset.getValues().get(field); + if ((values != null) && !values.isEmpty()) { + final String valueStr = values.get(0); + try { + final int value = Integer.parseInt(valueStr); + publication.set(targetField, value); + publication.set(targetField, valueStr); + } catch (NumberFormatException ex) { + report.addMessage(String.format("Failed to parse value of field '%s' into an integer for dataset " + + "starting on line %d.", + field, + dataset.getFirstLine())); + } + } + } + + protected void processTitle(final RisDataset dataset, + final Publication publication, + final PublicationImportReport report, + final boolean pretend) { + publication.setTitle(dataset.getValues().get(RisField.TI).get(0)); + publication.setTitle(dataset.getValues().get(RisField.TI).get(0)); + } + protected void processAuthors(final RisDataset dataset, final RisField risField, final ImporterUtil importerUtil, @@ -47,7 +91,13 @@ public abstract class AbstractRisConverter implements RisConverter { final List authors = dataset.getValues().get(risField); if ((authors != null) && !authors.isEmpty()) { for (String authorStr : authors) { - processAuthorStr(authorStr, isEditors, importerUtil, publication, report, pretend); + processAuthorStr(authorStr, + isEditors, + importerUtil, + publication, + report, + dataset.getFirstLine(), + pretend); } } } @@ -57,12 +107,14 @@ public abstract class AbstractRisConverter implements RisConverter { final ImporterUtil importerUtil, final Publication publication, final PublicationImportReport importReport, + final int firstLine, final boolean pretend) { final AuthorData authorData = new AuthorData(); final String[] tokens = authorStr.split(","); if (tokens.length == 0) { - importReport.addMessage(String.format("Failed to parse author string '%s'.", authorStr)); + importReport.addMessage(String.format("Failed to parse author string '%s' at dataset starting at line %d.", + authorStr, firstLine)); return; } @@ -117,7 +169,8 @@ public abstract class AbstractRisConverter implements RisConverter { publication.setNumberOfPages(value); report.addField(new FieldImportReport("number of pages", numberOfPages.get(0))); } catch (NumberFormatException ex) { - report.addMessage("Failed to parse number of pages"); + report.addMessage(String.format("Failed to parse number of pages at dataset starting at line %d", + dataset.getFirstLine())); } } @@ -134,7 +187,8 @@ public abstract class AbstractRisConverter implements RisConverter { publication.setNumberOfVolumes(value); report.addField(new FieldImportReport("number of volumes", numberOfVols.get(0))); } catch (NumberFormatException ex) { - report.addMessage("Failed to parse number of volumes."); + report.addMessage(String.format("Failed to parse number of volumes at dataset starting at line %d.", + dataset.getFirstLine())); } } } @@ -150,7 +204,8 @@ public abstract class AbstractRisConverter implements RisConverter { publication.setVolume(value); report.addField(new FieldImportReport("volume", volume.get(0))); } catch (NumberFormatException ex) { - report.addMessage("Failed to parse value of field 'volume'."); + report.addMessage(String.format("Failed to parse value of field 'volume' on dataset starting " + + "at line %d.", dataset.getFirstLine())); } } } @@ -166,9 +221,77 @@ public abstract class AbstractRisConverter implements RisConverter { report.addField(new FieldImportReport("year", yearStr)); } catch (NumberFormatException ex) { report.addMessage(String.format("Failed to convert year of publication value '%s' from RIS to" - + "integer value. Setting year of publication to 0")); + + "integer value on dataset starting at line %d. Setting year of " + + "publication to 0", dataset.getFirstLine())); publication.setYearOfPublication(0); } } + protected void processSeries(final RisDataset dataset, + final RisField field, + final Publication publication, + final ImporterUtil importerUtil, + final boolean pretend, + final PublicationImportReport report) { + final List series = dataset.getValues().get(field); + if ((series != null) && !series.isEmpty()) { + report.setSeries(importerUtil.processSeries(publication, series.get(0), pretend)); + } + } + + protected void processJournal(final RisDataset dataset, + final RisField field, + final ArticleInJournal article, + final ImporterUtil importerUtil, + final boolean pretend, + final PublicationImportReport report) { + final List journal = dataset.getValues().get(field); + if ((journal != null) && !journal.isEmpty()) { + report.setJournal(importerUtil.processJournal(article, journal.get(0), pretend)); + } + } + + protected void processPages(final RisDataset dataset, + final RisField field, + final Publication publication, + final boolean pretend, + final PublicationImportReport report) { + final List values = dataset.getValues().get(field); + final String pages = values.get(0); + + final String[] tokens = pages.split("-"); + if (tokens.length == 2) { + try { + final int pagesFrom = Integer.parseInt(tokens[0]); + final int pagesTo = Integer.parseInt(tokens[1]); + + publication.set("pagesFrom", pagesFrom); + publication.set("pagesTo", pagesTo); + + report.addField(new FieldImportReport("pagesFrom", Integer.toString(pagesFrom))); + report.addField(new FieldImportReport("pagesTo", Integer.toString(pagesTo))); + } catch (NumberFormatException ex) { + report.addMessage(String.format("Failed to parse pages value in dataset starting at line %d. " + + "On of the values given is not an integer.", + dataset.getFirstLine())); + } + } else if (tokens.length == 1) { + try { + final int pagesFrom = Integer.parseInt(tokens[0]); + + publication.set("pagesFrom", pagesFrom); + + report.addField(new FieldImportReport("pagesFrom", Integer.toString(pagesFrom))); + } catch (NumberFormatException ex) { + report.addMessage(String.format("Failed to parse pages value in dataset starting at line %d. " + + "Value is not an integer.", + dataset.getFirstLine())); + } + } else if (tokens.length > 2) { + report.addMessage(String.format("Failed to parse pages value in dataset starting at line %d. " + + "Invalid format", + dataset.getFirstLine())); + } + } + } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/BookConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/BookConverter.java index bb488ff89..f66653e2d 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/BookConverter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/BookConverter.java @@ -26,8 +26,7 @@ public class BookConverter extends AbstractRisConverter { final Monograph monograph = new Monograph(); - monograph.setTitle(dataset.getValues().get(RisField.TI).get(0)); - report.setTitle(dataset.getValues().get(RisField.TI).get(0)); + processTitle(dataset, monograph, report, pretend); processYear(dataset, pretend, monograph, report); @@ -37,34 +36,19 @@ public class BookConverter extends AbstractRisConverter { processPublisher(dataset, pretend, monograph, importerUtil, report); - final List abstractList = dataset.getValues().get(RisField.AB); - if ((abstractList != null) && (!abstractList.isEmpty())) { - monograph.setAbstract(abstractList.get(0)); - report.addField(new FieldImportReport("abstract", abstractList.get(0))); - } + processField(dataset, RisField.AB, monograph, "abstract", report, pretend); + + processField(dataset, RisField.ET, monograph, "edition", report, pretend); - final List edition = dataset.getValues().get(RisField.ET); - if ((edition != null) && !edition.isEmpty()) { - monograph.setEdition(edition.get(0)); - report.addField(new FieldImportReport("edition", edition.get(0))); - } - processNumberOfVolumes(dataset, pretend, monograph, report); - final List isbn = dataset.getValues().get(RisField.SN); - if ((isbn != null) && !isbn.isEmpty()) { - monograph.setISBN(isbn.get(0)); - report.addField(new FieldImportReport("isbn", isbn.get(0))); - } + processField(dataset, RisField.SN, monograph, "isbn", report, pretend); processNumberOfPages(dataset, pretend, monograph, report); processVolume(dataset, pretend, monograph, report); - final List series = dataset.getValues().get(RisField.T2); - if ((series != null) && !series.isEmpty()) { - report.setSeries(importerUtil.processSeries(monograph, series.get(0), pretend)); - } + processSeries(dataset, RisField.T2, monograph, importerUtil, pretend, report); return report; } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/EbookConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/EbookConverter.java index 8e44255d7..d34bda58c 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/EbookConverter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/EbookConverter.java @@ -3,11 +3,9 @@ package com.arsdigita.cms.scipublications.importer.ris.converters; import com.arsdigita.cms.contenttypes.Monograph; import com.arsdigita.cms.scipublications.imexporter.ris.RisField; import com.arsdigita.cms.scipublications.imexporter.ris.RisType; -import com.arsdigita.cms.scipublications.importer.report.FieldImportReport; import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; import com.arsdigita.cms.scipublications.importer.ris.RisDataset; import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; -import java.util.List; /** * Converter for the RIS type {@code EBOOK} to the SciPublications type {@link Monograph}. @@ -26,9 +24,8 @@ public class EbookConverter extends AbstractRisConverter { final Monograph monograph = new Monograph(); - monograph.setTitle(dataset.getValues().get(RisField.TI).get(0)); - report.setTitle(dataset.getValues().get(RisField.TI).get(0)); - + processTitle(dataset, monograph, report, pretend); + processYear(dataset, pretend, monograph, report); processAuthors(dataset, RisField.AU, importerUtil, monograph, report, pretend); @@ -37,32 +34,17 @@ public class EbookConverter extends AbstractRisConverter { processPublisher(dataset, pretend, monograph, importerUtil, report); - final List abstractList = dataset.getValues().get(RisField.AB); - if ((abstractList != null) && (!abstractList.isEmpty())) { - monograph.setAbstract(abstractList.get(0)); - report.addField(new FieldImportReport("abstract", abstractList.get(0))); - } + processField(dataset, RisField.AB, monograph, "abstract", report, pretend); + + processField(dataset, RisField.ET, monograph, "edition", report, pretend); - final List edition = dataset.getValues().get(RisField.ET); - if ((edition != null) && !edition.isEmpty()) { - monograph.setEdition(edition.get(0)); - report.addField(new FieldImportReport("edition", edition.get(0))); - } - - final List isbn = dataset.getValues().get(RisField.SN); - if ((isbn != null) && !isbn.isEmpty()) { - monograph.setISBN(isbn.get(0)); - report.addField(new FieldImportReport("isbn", isbn.get(0))); - } + processField(dataset, RisField.SN, monograph, "isbn", report, pretend); processNumberOfPages(dataset, pretend, monograph, report); processVolume(dataset, pretend, monograph, report); - final List series = dataset.getValues().get(RisField.T2); - if ((series != null) && !series.isEmpty()) { - report.setSeries(importerUtil.processSeries(monograph, series.get(0), pretend)); - } + processSeries(dataset, RisField.T2, monograph, importerUtil, pretend, report); return report; } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/EjourConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/EjourConverter.java index 8e6e59d14..2b5e41a45 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/EjourConverter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/EjourConverter.java @@ -1,6 +1,7 @@ package com.arsdigita.cms.scipublications.importer.ris.converters; import com.arsdigita.cms.contenttypes.ArticleInJournal; +import com.arsdigita.cms.scipublications.imexporter.ris.RisField; import com.arsdigita.cms.scipublications.imexporter.ris.RisType; import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; import com.arsdigita.cms.scipublications.importer.ris.RisConverter; @@ -13,7 +14,7 @@ import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; * @author Jens Pelzetter * @version $Id$ */ -public class EjourConverter implements RisConverter { +public class EjourConverter extends AbstractRisConverter implements RisConverter { public PublicationImportReport convert(final RisDataset dataset, final ImporterUtil importerUtil, @@ -24,7 +25,21 @@ public class EjourConverter implements RisConverter { final ArticleInJournal article = new ArticleInJournal(); + processTitle(dataset, article, report, pretend); + processYear(dataset, pretend, article, report); + + processAuthors(dataset, RisField.AU, importerUtil, article, report, pretend); + + processField(dataset, RisField.AB, article, "abstract", report, pretend); + + processJournal(dataset, RisField.T2, article, importerUtil, pretend, report); + + processField(dataset, RisField.M1, article, "issue", report, pretend); + + processPages(dataset, RisField.SP, article, pretend, report); + + processField(dataset, RisField.VL, article, "volume", report, pretend); return report; } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/GenConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/GenConverter.java index 308a98442..43b5865db 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/GenConverter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/GenConverter.java @@ -4,12 +4,9 @@ import com.arsdigita.cms.contenttypes.GreyLiterature; import com.arsdigita.cms.contenttypes.Monograph; import com.arsdigita.cms.scipublications.imexporter.ris.RisField; import com.arsdigita.cms.scipublications.imexporter.ris.RisType; -import com.arsdigita.cms.scipublications.importer.report.FieldImportReport; import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; -import com.arsdigita.cms.scipublications.importer.ris.RisConverter; import com.arsdigita.cms.scipublications.importer.ris.RisDataset; import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; -import java.util.List; /** * Converter for the RIS type {@code GEN} to the SciPublications {@link GreyLiterature} @@ -28,19 +25,9 @@ public class GenConverter extends AbstractRisConverter { final Monograph publication = new Monograph(); - publication.setTitle(dataset.getValues().get(RisField.TI).get(0)); - report.setTitle(dataset.getValues().get(RisField.TI).get(0)); + processTitle(dataset, publication, report, pretend); - final String yearStr = dataset.getValues().get(RisField.PY).get(0); - try { - final int year = Integer.parseInt(yearStr); - publication.setYearOfPublication(year); - report.addField(new FieldImportReport("year", yearStr)); - } catch (NumberFormatException ex) { - report.addMessage(String.format("Failed to convert year of publication value '%s' from RIS to" - + "integer value. Setting year of publication to 0")); - publication.setYearOfPublication(0); - } + processYear(dataset, pretend, publication, report); processAuthors(dataset, RisField.AU, importerUtil, publication, report, pretend); processAuthors(dataset, RisField.A2, importerUtil, publication, report, pretend); @@ -49,26 +36,16 @@ public class GenConverter extends AbstractRisConverter { processPublisher(dataset, pretend, publication, importerUtil, report); - final List abstractList = dataset.getValues().get(RisField.AB); - if ((abstractList != null) && (!abstractList.isEmpty())) { - publication.setAbstract(abstractList.get(0)); - report.addField(new FieldImportReport("abstract", abstractList.get(0))); - } + processField(dataset, RisField.AB, publication, "abstract", report, pretend); - final List edition = dataset.getValues().get(RisField.ET); - if ((edition != null) && !edition.isEmpty()) { - publication.setEdition(edition.get(0)); - report.addField(new FieldImportReport("edition", edition.get(0))); - } + processField(dataset, RisField.ET, publication, "edition", report, pretend); - final List isbn = dataset.getValues().get(RisField.SN); - if ((isbn != null) && !isbn.isEmpty()) { - publication.setISBN(isbn.get(0)); - report.addField(new FieldImportReport("isbn", isbn.get(0))); - } + processField(dataset, RisField.SN, publication, "isbn", report, pretend); processNumberOfPages(dataset, pretend, publication, report); + processNumberOfVolumes(dataset, pretend, publication, report); + processVolume(dataset, pretend, publication, report); return report; diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/InprConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/InprConverter.java new file mode 100644 index 000000000..d34acfffe --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/InprConverter.java @@ -0,0 +1,17 @@ +package com.arsdigita.cms.scipublications.importer.ris.converters; + +import com.arsdigita.cms.scipublications.imexporter.ris.RisType; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class InprConverter extends JourConverter { + + @Override + public RisType getRisType() { + return RisType.INPR; + } + +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/JfullConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/JfullConverter.java new file mode 100644 index 000000000..20e0a1400 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/JfullConverter.java @@ -0,0 +1,17 @@ +package com.arsdigita.cms.scipublications.importer.ris.converters; + +import com.arsdigita.cms.scipublications.imexporter.ris.RisType; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class JfullConverter extends JourConverter { + + @Override + public RisType getRisType() { + return RisType.JFULL; + } + +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/JourConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/JourConverter.java new file mode 100644 index 000000000..0ed052178 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/JourConverter.java @@ -0,0 +1,53 @@ +package com.arsdigita.cms.scipublications.importer.ris.converters; + +import com.arsdigita.cms.contenttypes.ArticleInJournal; +import com.arsdigita.cms.scipublications.imexporter.ris.RisField; +import com.arsdigita.cms.scipublications.imexporter.ris.RisType; +import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; +import com.arsdigita.cms.scipublications.importer.ris.RisDataset; +import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class JourConverter extends AbstractRisConverter { + + @Override + public PublicationImportReport convert(final RisDataset dataset, + final ImporterUtil importerUtil, + final boolean pretend, + final boolean publishNewItems) { + final PublicationImportReport report = new PublicationImportReport(); + report.setType(ArticleInJournal.BASE_DATA_OBJECT_TYPE); + + final ArticleInJournal article = new ArticleInJournal(); + + processTitle(dataset, article, report, pretend); + + processYear(dataset, pretend, article, report); + + processAuthors(dataset, RisField.AU, importerUtil, article, report, pretend); + + processField(dataset, RisField.AB, article, "abstract", report, pretend); + + processJournal(dataset, RisField.T2, article, importerUtil, pretend, report); + + processField(dataset, RisField.M1, article, "issue", report, pretend); + + processPages(dataset, RisField.SP, article, pretend, report); + + processField(dataset, RisField.VL, article, "volume", report, pretend); + + processIntField(dataset, RisField.M2, article, "pagesFrom", report, pretend); + + return report; + } + + @Override + public RisType getRisType() { + return RisType.JOUR; + } + +}