RIS Importer Beta-Version
git-svn-id: https://svn.libreccm.org/ccm/trunk@2034 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
056c0dbbf6
commit
47f50ad2c9
|
|
@ -12,6 +12,7 @@
|
|||
<ccm:directories>
|
||||
<ccm:directory name="pdl"/>
|
||||
<ccm:directory name="sql"/>
|
||||
<ccm:directory name="lib"/>
|
||||
<ccm:directory name="src"/>
|
||||
</ccm:directories>
|
||||
<ccm:contacts>
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<registry>
|
||||
<config class="com.arsdigita.cms.contenttypes.PublicationsConfig" storage="ccm-sci-publications/publications.properties"/>
|
||||
<config class="com.arsdigita.cms.contenttypes.PublicationsConfig" storage="ccm-sci-publications/publications.properties"/>
|
||||
<config class="com.arsdigita.cms.scipublications.importer.ris.RisImporterConfig" storage="ccm-sci-publications/ris_importer.properties"/>
|
||||
</registry>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
package com.arsdigita.cms.scipublications.importer.bibtex;
|
||||
|
||||
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 javax.activation.MimeType;
|
||||
import javax.activation.MimeTypeParseException;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class BibTeXPublicationsImporter implements SciPublicationsImporter {
|
||||
|
||||
private static final Logger LOGGER = Logger.getLogger(BibTeXPublicationsImporter.class);
|
||||
|
||||
public PublicationFormat getSupportedFormat() {
|
||||
try {
|
||||
return new PublicationFormat("BibTeX", new MimeType("application/x-bibtex"), "bib");
|
||||
} catch (MimeTypeParseException ex) {
|
||||
LOGGER.warn("Failed to create MimeType for PublicationFormat."
|
||||
+ "Using null mimetype instead. Cause: ", ex);
|
||||
return new PublicationFormat("RIS", null, "RIS");
|
||||
}
|
||||
}
|
||||
|
||||
public ImportReport importPublications(final String publications,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems)
|
||||
throws SciPublicationsImportException {
|
||||
|
||||
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -3,7 +3,6 @@ package com.arsdigita.cms.scipublications.importer.ris;
|
|||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* Interface for importing RisConverter.
|
||||
|
|
|
|||
|
|
@ -19,17 +19,24 @@ import org.apache.log4j.Logger;
|
|||
public class RisImporter implements SciPublicationsImporter {
|
||||
|
||||
private static final Logger LOGGER = Logger.getLogger(RisImporter.class);
|
||||
private static final RisImporterConfig CONFIG = new RisImporterConfig();
|
||||
private final RisConverters converters = RisConverters.getInstance();
|
||||
|
||||
static {
|
||||
CONFIG.load();
|
||||
}
|
||||
|
||||
public static RisImporterConfig getConfig() {
|
||||
return CONFIG;
|
||||
}
|
||||
|
||||
public PublicationFormat getSupportedFormat() {
|
||||
try {
|
||||
return new PublicationFormat("RIS", new MimeType("application/x-research-info-systems"), "ris");
|
||||
} catch (MimeTypeParseException ex) {
|
||||
LOGGER.warn("Failed to create MimeType for PublicationFormat."
|
||||
+ "Using null mimetype instead. Cause: ", ex);
|
||||
return new PublicationFormat("RIS",
|
||||
null,
|
||||
"RIS");
|
||||
return new PublicationFormat("RIS", null, "RIS");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -51,7 +58,7 @@ public class RisImporter implements SciPublicationsImporter {
|
|||
for (RisDataset dataset : datasets) {
|
||||
processPublication(dataset, report, importerUtil, pretend, publishNewItems);
|
||||
}
|
||||
} catch(Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace(System.out);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris;
|
||||
|
||||
import com.arsdigita.categorization.Category;
|
||||
import com.arsdigita.runtime.AbstractConfig;
|
||||
import com.arsdigita.util.parameter.IntegerParameter;
|
||||
import com.arsdigita.util.parameter.Parameter;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class RisImporterConfig extends AbstractConfig {
|
||||
|
||||
private Parameter defaultCategoryId;
|
||||
|
||||
public RisImporterConfig() {
|
||||
super();
|
||||
defaultCategoryId = new IntegerParameter("com.arsdigita.cms.scipublications.importer.ris.default_category_id",
|
||||
Parameter.REQUIRED,
|
||||
0);
|
||||
|
||||
register(defaultCategoryId);
|
||||
|
||||
loadInfo();
|
||||
}
|
||||
|
||||
public Integer getDefaultCategoryId() {
|
||||
return (Integer) get(defaultCategoryId);
|
||||
}
|
||||
|
||||
public Category getDefaultCategory() {
|
||||
final Integer categoryId = getDefaultCategoryId();
|
||||
|
||||
if (categoryId == 0) {
|
||||
return null;
|
||||
} else {
|
||||
return new Category(new BigDecimal(categoryId));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
com.arsdigita.cms.scipublications.importer.ris.default_category_id.title = Default category for imported publications
|
||||
com.arsdigita.cms.scipublications.importer.ris.default_category_id.purpose = All publications which are created during the import will be assigned to this category. The category set using the id of the category.
|
||||
com.arsdigita.cms.scipublications.importer.ris.default_category_id.example = 12345
|
||||
com.arsdigita.cms.scipublications.importer.ris.default_category_id.format = [Integer]
|
||||
|
|
@ -1,520 +1,92 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.categorization.Category;
|
||||
import com.arsdigita.cms.Folder;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInCollectedVolume;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInJournal;
|
||||
import com.arsdigita.cms.contenttypes.InProceedings;
|
||||
import com.arsdigita.cms.contenttypes.InternetArticle;
|
||||
import com.arsdigita.cms.contenttypes.Publication;
|
||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
||||
import com.arsdigita.cms.contenttypes.PublicationWithPublisher;
|
||||
import com.arsdigita.cms.contenttypes.UnPublished;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.importer.report.AuthorImportReport;
|
||||
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.AuthorData;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisImporter;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param <T>
|
||||
* @param <B>
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public abstract class AbstractRisConverter implements RisConverter {
|
||||
public abstract class AbstractRisConverter<T extends Publication, B extends PublicationBundle> implements RisConverter {
|
||||
|
||||
// protected void setFolder(final Publication publication, final PublicationBundle bundle) {
|
||||
// final Folder folder = new Folder(getFolderId());
|
||||
// bundle.setParent(folder);
|
||||
// bundle.setContentSection(folder.getContentSection());
|
||||
// publication.setContentSection(folder.getContentSection());
|
||||
// }
|
||||
protected abstract T createPublication(boolean pretend);
|
||||
|
||||
protected abstract B createBundle(T publication, boolean pretend);
|
||||
|
||||
protected abstract void processFields(final RisDataset dataset,
|
||||
final T publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend);
|
||||
|
||||
public final PublicationImportReport convert(final RisDataset dataset,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport importReport = new PublicationImportReport();
|
||||
|
||||
final T publication = createPublication(pretend);
|
||||
importReport.setTitle(publication.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
processFields(dataset, publication, importerUtil, importReport, pretend);
|
||||
|
||||
if (!pretend) {
|
||||
publication.save();
|
||||
|
||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
|
||||
publication.save();
|
||||
|
||||
final B bundle = createBundle(publication, pretend);
|
||||
|
||||
assignFolder(publication, bundle);
|
||||
assignCategories(bundle);
|
||||
|
||||
bundle.save();
|
||||
publication.save();
|
||||
}
|
||||
|
||||
if (publishNewItems) {
|
||||
importerUtil.publishItem(publication);
|
||||
}
|
||||
|
||||
importReport.setSuccessful(true);
|
||||
|
||||
return importReport;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overwrite this method to put a publication of specific type into a special folder.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
protected Integer getFolderId() {
|
||||
return Publication.getConfig().getDefaultPublicationsFolder();
|
||||
}
|
||||
|
||||
protected void assignFolder(final Publication publication, final PublicationBundle bundle) {
|
||||
final Folder folder = new Folder(new BigDecimal(getFolderId()));
|
||||
bundle.setParent(folder);
|
||||
bundle.setContentSection(folder.getContentSection());
|
||||
publication.setContentSection(folder.getContentSection());
|
||||
}
|
||||
|
||||
protected void assignCategories(final PublicationBundle bundle) {
|
||||
//ToDo
|
||||
}
|
||||
|
||||
protected void processField(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final Publication publication,
|
||||
final String targetField,
|
||||
final PublicationImportReport report,
|
||||
final boolean pretend) {
|
||||
final List<String> 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<String> 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 processDateField(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final Publication publication,
|
||||
final String targetField,
|
||||
final PublicationImportReport report,
|
||||
final boolean pretend) {
|
||||
final List<String> values = dataset.getValues().get(field);
|
||||
if ((values != null) && !values.isEmpty()) {
|
||||
final String valueStr = values.get(0);
|
||||
final String[] tokens = valueStr.split("/");
|
||||
final Calendar calendar = Calendar.getInstance();
|
||||
int year = 0;
|
||||
int month = 1;
|
||||
int day = 1;
|
||||
try {
|
||||
if (tokens.length >= 1) {
|
||||
year = Integer.parseInt(tokens[0]);
|
||||
}
|
||||
|
||||
if (tokens.length >= 2) {
|
||||
month = Integer.parseInt(tokens[1]);
|
||||
}
|
||||
|
||||
if (tokens.length >= 3) {
|
||||
day = Integer.parseInt(tokens[2]);
|
||||
}
|
||||
|
||||
calendar.clear();
|
||||
calendar.set(year, month - 1, day); // month - 1 because month values of the Calendar are starting with 0
|
||||
|
||||
publication.set(targetField, calendar.getTime());
|
||||
|
||||
} catch (NumberFormatException ex) {
|
||||
report.addMessage(String.format("Failed to parse value of field '%s' into an date for dataset "
|
||||
+ "starting on line %d.",
|
||||
field,
|
||||
dataset.getFirstLine()));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected void processTitle(final RisDataset dataset,
|
||||
final Publication publication,
|
||||
final PublicationImportReport report,
|
||||
final boolean pretend) {
|
||||
final String title;
|
||||
if ((dataset.getValues().get(RisField.TI) != null) && !dataset.getValues().get(RisField.TI).isEmpty()) {
|
||||
title = dataset.getValues().get(RisField.TI).get(0);
|
||||
} else if ((dataset.getValues().get(RisField.BT) != null) && !dataset.getValues().get(RisField.BT).isEmpty()) {
|
||||
title = dataset.getValues().get(RisField.BT).get(0);
|
||||
} else {
|
||||
title = "Unknown";
|
||||
}
|
||||
|
||||
|
||||
publication.setTitle(title);
|
||||
report.setTitle(title);
|
||||
}
|
||||
|
||||
protected void processAuthors(final RisDataset dataset,
|
||||
final RisField risField,
|
||||
final ImporterUtil importerUtil,
|
||||
final Publication publication,
|
||||
final PublicationImportReport report,
|
||||
final boolean pretend) {
|
||||
processAuthors(dataset, risField, importerUtil, publication, false, report, pretend);
|
||||
}
|
||||
|
||||
protected void processEditors(final RisDataset dataset,
|
||||
final RisField risField,
|
||||
final ImporterUtil importerUtil,
|
||||
final Publication publication,
|
||||
final PublicationImportReport report,
|
||||
final boolean pretend) {
|
||||
processAuthors(dataset, risField, importerUtil, publication, true, report, pretend);
|
||||
}
|
||||
|
||||
private void processAuthors(final RisDataset dataset,
|
||||
final RisField risField,
|
||||
final ImporterUtil importerUtil,
|
||||
final Publication publication,
|
||||
final boolean isEditors,
|
||||
final PublicationImportReport report,
|
||||
final boolean pretend) {
|
||||
final List<String> authors = dataset.getValues().get(risField);
|
||||
if ((authors != null) && !authors.isEmpty()) {
|
||||
for (String authorStr : authors) {
|
||||
processAuthorStr(authorStr,
|
||||
isEditors,
|
||||
importerUtil,
|
||||
publication,
|
||||
report,
|
||||
dataset.getFirstLine(),
|
||||
pretend);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void processAuthorStr(final String authorStr,
|
||||
final boolean editor,
|
||||
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' at dataset starting at line %d.",
|
||||
authorStr, firstLine));
|
||||
return;
|
||||
}
|
||||
|
||||
if (tokens.length >= 1) {
|
||||
authorData.setSurname(tokens[0]);
|
||||
}
|
||||
|
||||
if (tokens.length >= 2) {
|
||||
authorData.setGivenName(tokens[1]);
|
||||
}
|
||||
|
||||
authorData.setEditor(editor);
|
||||
|
||||
final AuthorImportReport authorReport = importerUtil.processAuthor(publication, authorData, pretend);
|
||||
importReport.addAuthor(authorReport);
|
||||
}
|
||||
|
||||
protected void processPublisher(final RisDataset dataset,
|
||||
final boolean pretend,
|
||||
final PublicationWithPublisher publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final PublicationImportReport report) {
|
||||
processPublisher(dataset, RisField.PB, RisField.CY, pretend, publication, importerUtil, report);
|
||||
}
|
||||
|
||||
protected void processPublisher(final RisDataset dataset,
|
||||
final RisField publisherField,
|
||||
final RisField placeField,
|
||||
final boolean pretend,
|
||||
final PublicationWithPublisher publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> publisherList = dataset.getValues().get(publisherField);
|
||||
final List<String> placeList = dataset.getValues().get(placeField);
|
||||
final String publisherName;
|
||||
if ((publisherList == null) || publisherList.isEmpty()) {
|
||||
publisherName = null;
|
||||
} else {
|
||||
publisherName = publisherList.get(0);
|
||||
}
|
||||
|
||||
final String place;
|
||||
if ((placeList == null) || placeList.isEmpty()) {
|
||||
place = null;
|
||||
} else {
|
||||
place = placeList.get(0);
|
||||
}
|
||||
|
||||
if (publisherName != null) {
|
||||
report.setPublisher(importerUtil.processPublisher(publication, place, publisherName, pretend));
|
||||
}
|
||||
}
|
||||
|
||||
protected void processOrganization(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final boolean pretend,
|
||||
final UnPublished publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> orgaList = dataset.getValues().get(field);
|
||||
|
||||
final String orgaName;
|
||||
if ((orgaList == null) || orgaList.isEmpty()) {
|
||||
orgaName = null;
|
||||
} else {
|
||||
orgaName = orgaList.get(0);
|
||||
}
|
||||
|
||||
if (orgaName != null) {
|
||||
report.addOrgaUnit(importerUtil.processOrganization(publication, orgaName, pretend));
|
||||
}
|
||||
}
|
||||
|
||||
protected void processOrganization(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final boolean pretend,
|
||||
final InternetArticle publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> orgaList = dataset.getValues().get(field);
|
||||
|
||||
final String orgaName;
|
||||
if ((orgaList == null) || orgaList.isEmpty()) {
|
||||
orgaName = null;
|
||||
} else {
|
||||
orgaName = orgaList.get(0);
|
||||
}
|
||||
|
||||
if (orgaName != null) {
|
||||
report.addOrgaUnit(importerUtil.processOrganization(publication, orgaName, pretend));
|
||||
}
|
||||
}
|
||||
|
||||
protected void processNumberOfPages(final RisDataset dataset,
|
||||
final boolean pretend,
|
||||
final PublicationWithPublisher publication,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> numberOfPages = dataset.getValues().get(RisField.SP);
|
||||
if ((numberOfPages != null) && !numberOfPages.isEmpty()) {
|
||||
try {
|
||||
final int value = Integer.parseInt(numberOfPages.get(0));
|
||||
publication.setNumberOfPages(value);
|
||||
report.addField(new FieldImportReport("number of pages", numberOfPages.get(0)));
|
||||
} catch (NumberFormatException ex) {
|
||||
report.addMessage(String.format("Failed to parse number of pages at dataset starting at line %d",
|
||||
dataset.getFirstLine()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void processNumberOfVolumes(final RisDataset dataset,
|
||||
final boolean pretend,
|
||||
final PublicationWithPublisher publication,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> numberOfVols = dataset.getValues().get(RisField.NV);
|
||||
if ((numberOfVols != null) && !numberOfVols.isEmpty()) {
|
||||
try {
|
||||
final int value = Integer.parseInt(numberOfVols.get(0));
|
||||
publication.setNumberOfVolumes(value);
|
||||
report.addField(new FieldImportReport("number of volumes", numberOfVols.get(0)));
|
||||
} catch (NumberFormatException ex) {
|
||||
report.addMessage(String.format("Failed to parse number of volumes at dataset starting at line %d.",
|
||||
dataset.getFirstLine()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void processVolume(final RisDataset dataset,
|
||||
final boolean pretend,
|
||||
final PublicationWithPublisher publication,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> volume = dataset.getValues().get(RisField.VL);
|
||||
if ((volume != null) && !volume.isEmpty()) {
|
||||
try {
|
||||
final int value = Integer.parseInt(volume.get(0));
|
||||
publication.setVolume(value);
|
||||
report.addField(new FieldImportReport("volume", volume.get(0)));
|
||||
} catch (NumberFormatException ex) {
|
||||
report.addMessage(String.format("Failed to parse value of field 'volume' on dataset starting "
|
||||
+ "at line %d.", dataset.getFirstLine()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void processYear(final RisDataset dataset,
|
||||
final boolean pretend,
|
||||
final Publication publication,
|
||||
final PublicationImportReport report) {
|
||||
processYear(dataset, RisField.PY, pretend, publication, report);
|
||||
}
|
||||
|
||||
protected void processYear(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final boolean pretend,
|
||||
final Publication publication,
|
||||
final PublicationImportReport report) {
|
||||
final String yearStr = dataset.getValues().get(field).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 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<String> 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<String> journal = dataset.getValues().get(field);
|
||||
if ((journal != null) && !journal.isEmpty()) {
|
||||
report.setJournal(importerUtil.processJournal(article, journal.get(0), pretend));
|
||||
}
|
||||
}
|
||||
|
||||
private AuthorData createAuthorData(final String[] tokens) {
|
||||
final AuthorData authorData = new AuthorData();
|
||||
|
||||
if (tokens.length == 0) {
|
||||
throw new IllegalArgumentException("No author data tokens!");
|
||||
}
|
||||
|
||||
if (tokens.length >= 1) {
|
||||
authorData.setSurname(tokens[0]);
|
||||
}
|
||||
|
||||
if (tokens.length >= 2) {
|
||||
authorData.setGivenName(tokens[1]);
|
||||
}
|
||||
|
||||
return authorData;
|
||||
}
|
||||
|
||||
protected void processCollectedVolume(final RisDataset dataset,
|
||||
final RisField cvTitleField,
|
||||
final RisField cvYearField,
|
||||
final RisField cvEditorsField,
|
||||
final RisField cvPlaceField,
|
||||
final RisField cvPublisherField,
|
||||
final RisField cvEditionField,
|
||||
final ArticleInCollectedVolume article,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> colVolTitle = dataset.getValues().get(cvTitleField);
|
||||
final List<String> colVolYear = dataset.getValues().get(cvYearField);
|
||||
final List<String> colVolPlace = dataset.getValues().get(cvPlaceField);
|
||||
final List<String> colVolPublisher = dataset.getValues().get(cvPublisherField);
|
||||
final List<String> colVolEdition = dataset.getValues().get(cvEditionField);
|
||||
|
||||
final List<String> colVolEditors = dataset.getValues().get(cvEditorsField);
|
||||
final List<AuthorData> colVolEditorData = new ArrayList<AuthorData>();
|
||||
|
||||
for (String colVolEditor : colVolEditors) {
|
||||
final String[] tokens = colVolEditor.split(",");
|
||||
|
||||
colVolEditorData.add(createAuthorData(tokens));
|
||||
}
|
||||
|
||||
if ((colVolTitle != null) && !colVolTitle.isEmpty()) {
|
||||
report.setCollectedVolume(importerUtil.processCollectedVolume(article,
|
||||
colVolTitle.get(0),
|
||||
colVolYear.get(0),
|
||||
colVolEditorData,
|
||||
colVolPublisher.get(0),
|
||||
colVolPlace.get(0),
|
||||
colVolEdition.get(0),
|
||||
pretend));
|
||||
}
|
||||
}
|
||||
|
||||
protected void processProceedings(final RisDataset dataset,
|
||||
final RisField procTitleField,
|
||||
final RisField procYearField,
|
||||
final RisField procConfNameField,
|
||||
final RisField procEditorsField,
|
||||
final RisField procPublisherField,
|
||||
final RisField procPlaceField,
|
||||
final InProceedings inProceedings,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> procTitle = dataset.getValues().get(procTitleField);
|
||||
final List<String> procYear = dataset.getValues().get(procYearField);
|
||||
final List<String> procConfName = dataset.getValues().get(procConfNameField);
|
||||
final List<String> procPublisher = dataset.getValues().get(procPublisherField);
|
||||
final List<String> procPlace = dataset.getValues().get(procPlaceField);
|
||||
|
||||
final List<String> procEditors = dataset.getValues().get(procEditorsField);
|
||||
final List<AuthorData> procEditorData = new ArrayList<AuthorData>();
|
||||
|
||||
for (String procEditor : procEditors) {
|
||||
final String[] tokens = procEditor.split(", ");
|
||||
|
||||
procEditorData.add(createAuthorData(tokens));
|
||||
}
|
||||
|
||||
if ((procTitle != null) && !procTitle.isEmpty()) {
|
||||
report.setProceedings(importerUtil.processProceedings(inProceedings,
|
||||
procTitle.get(0),
|
||||
procYear.get(0),
|
||||
procConfName.get(0),
|
||||
procEditorData,
|
||||
procPublisher.get(0),
|
||||
procPlace.get(0),
|
||||
pretend));
|
||||
}
|
||||
}
|
||||
|
||||
protected void processPages(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final Publication publication,
|
||||
final boolean pretend,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> 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()));
|
||||
final Category defaultCat = RisImporter.getConfig().getDefaultCategory();
|
||||
if (defaultCat != null) {
|
||||
defaultCat.addChild(bundle);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,52 +6,67 @@ 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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class BlogConverter extends AbstractRisConverter {
|
||||
public class BlogConverter extends AbstractRisConverter<InternetArticle, InternetArticleBundle> {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
@Override
|
||||
protected InternetArticle createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new InternetArticle();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InternetArticleBundle createBundle(final InternetArticle publication,
|
||||
final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new InternetArticleBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final InternetArticle publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(InternetArticle.BASE_DATA_OBJECT_TYPE);
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
|
||||
final InternetArticle article = new InternetArticle();
|
||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final InternetArticleBundle bundle = new InternetArticleBundle(article);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processTitle(dataset, article, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processYear(dataset, pretend, article, report);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
authorUtil.processEditors(dataset, RisField.A2, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, article, report, pretend);
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
fieldUtil.processField(dataset, RisField.CY, publication, "place", importReport);
|
||||
fieldUtil.processField(dataset, RisField.ET, publication, "edition", importReport);
|
||||
|
||||
processEditors(dataset, RisField.A2, importerUtil, article, report, pretend);
|
||||
orgaUtil.processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, importReport);
|
||||
orgaUtil.processOrganization(dataset, RisField.T3, pretend, publication, importerUtil, importReport);
|
||||
|
||||
processField(dataset, RisField.AB, article, "abstract", report, pretend);
|
||||
processField(dataset, RisField.CY, article, "place", report, pretend);
|
||||
processField(dataset, RisField.ET, article, "edition", report, pretend);
|
||||
|
||||
processOrganization(dataset, RisField.PB, pretend, article, importerUtil, report);
|
||||
processOrganization(dataset, RisField.T3, pretend, article, importerUtil, report);
|
||||
|
||||
processField(dataset, RisField.UR, article, "url", report, pretend);
|
||||
processDateField(dataset, RisField.Y2, article, "lastAccessed", report, pretend);
|
||||
|
||||
return report;
|
||||
fieldUtil.processField(dataset, RisField.UR, publication, "url", importReport);
|
||||
fieldUtil.processDateField(dataset, RisField.Y2, publication, "lastAccessed", importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
return RisType.BLOG;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,16 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.Monograph;
|
||||
import com.arsdigita.cms.contenttypes.PublicationWithPublisherBundle;
|
||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
||||
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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
* Converter for the RIS type {@code BOOK} to the SciPublications type {@link Monograph}.
|
||||
|
|
@ -15,46 +18,56 @@ import com.arsdigita.kernel.Kernel;
|
|||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class BookConverter extends AbstractRisConverter {
|
||||
public class BookConverter extends AbstractRisConverter<Monograph, PublicationBundle> {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(Monograph.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final Monograph monograph = new Monograph();
|
||||
monograph.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final PublicationWithPublisherBundle bundle = new PublicationWithPublisherBundle(monograph);
|
||||
|
||||
processTitle(dataset, monograph, report, pretend);
|
||||
|
||||
processYear(dataset, pretend, monograph, report);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, monograph, report, pretend);
|
||||
|
||||
processEditors(dataset, RisField.A3, importerUtil, monograph, report, pretend);
|
||||
|
||||
processPublisher(dataset, pretend, monograph, importerUtil, report);
|
||||
|
||||
processField(dataset, RisField.AB, monograph, "abstract", report, pretend);
|
||||
|
||||
processField(dataset, RisField.ET, monograph, "edition", report, pretend);
|
||||
|
||||
processNumberOfVolumes(dataset, pretend, monograph, report);
|
||||
|
||||
processField(dataset, RisField.SN, monograph, "isbn", report, pretend);
|
||||
|
||||
processNumberOfPages(dataset, pretend, monograph, report);
|
||||
|
||||
processVolume(dataset, pretend, monograph, report);
|
||||
|
||||
processSeries(dataset, RisField.T2, monograph, importerUtil, pretend, report);
|
||||
|
||||
return report;
|
||||
@Override
|
||||
protected Monograph createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new Monograph();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected PublicationBundle createBundle(final Monograph publication, final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new PublicationBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final Monograph publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
final RisSeriesUtil seriesUtil = new RisSeriesUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
authorUtil.processEditors(dataset, RisField.A3, publication, importReport);
|
||||
|
||||
orgaUtil.processPublisher(dataset, RisField.PB, RisField.CY, publication, importReport);
|
||||
|
||||
seriesUtil.processSeries(dataset, RisField.T2, publication, importReport);
|
||||
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
fieldUtil.processField(dataset, RisField.ET, publication, "edition", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.NV, publication, "numberOfVolumes", importReport);
|
||||
fieldUtil.processField(dataset, RisField.SN, publication, "isbn", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.SP, publication, "numberOfPages", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.VL, publication, "volume", importReport);
|
||||
|
||||
|
||||
}
|
||||
public RisType getRisType() {
|
||||
return RisType.BOOK;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,8 +6,10 @@ 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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisColVolUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
* Converter for the RIS type {@code CHAP} to the SciPublications type {@link ArticleInCollectedVolume}.
|
||||
|
|
@ -15,45 +17,60 @@ import com.arsdigita.kernel.Kernel;
|
|||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ChapConverter extends AbstractRisConverter {
|
||||
public class ChapConverter extends AbstractRisConverter<ArticleInCollectedVolume, ArticleInCollectedVolumeBundle> {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
@Override
|
||||
protected ArticleInCollectedVolume createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new ArticleInCollectedVolume();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ArticleInCollectedVolumeBundle createBundle(final ArticleInCollectedVolume publication,
|
||||
final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new ArticleInCollectedVolumeBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final ArticleInCollectedVolume publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(ArticleInCollectedVolume.BASE_DATA_OBJECT_TYPE);
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisColVolUtil colVolUtil = new RisColVolUtil(importerUtil, pretend);
|
||||
|
||||
final ArticleInCollectedVolume article = new ArticleInCollectedVolume();
|
||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final ArticleInCollectedVolumeBundle bundle = new ArticleInCollectedVolumeBundle(article);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processTitle(dataset, article, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processYear(dataset, pretend, article, report);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, article, report, pretend);
|
||||
|
||||
processCollectedVolume(dataset,
|
||||
colVolUtil.processCollectedVolume(dataset,
|
||||
RisField.T2,
|
||||
RisField.PY,
|
||||
RisField.A2,
|
||||
RisField.CY,
|
||||
RisField.PB,
|
||||
RisField.ET,
|
||||
article,
|
||||
importerUtil,
|
||||
pretend,
|
||||
report);
|
||||
publication,
|
||||
importReport);
|
||||
|
||||
processField(dataset, RisField.SE, article, "chapter", report, pretend);
|
||||
processField(dataset, RisField.AB, article, "abstract", report, pretend);
|
||||
processPages(dataset, RisField.SP, article, pretend, report);
|
||||
|
||||
return report;
|
||||
fieldUtil.processField(dataset, RisField.SE, publication, "chapter", importReport);
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
fieldUtil.processPages(dataset, RisField.SP, publication, importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
return RisType.CHAP;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,10 @@ 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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
|
|
@ -14,42 +18,57 @@ import com.arsdigita.kernel.Kernel;
|
|||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ConfConverter extends AbstractRisConverter {
|
||||
public class ConfConverter extends AbstractRisConverter<Proceedings, ProceedingsBundle> {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
@Override
|
||||
protected Proceedings createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new Proceedings();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ProceedingsBundle createBundle(final Proceedings publication, final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new ProceedingsBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final Proceedings publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(Proceedings.BASE_DATA_OBJECT_TYPE);
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
final RisSeriesUtil seriesUtil = new RisSeriesUtil(importerUtil, pretend);
|
||||
|
||||
final Proceedings proceedings = new Proceedings();
|
||||
proceedings.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final ProceedingsBundle bundle = new ProceedingsBundle(proceedings);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processTitle(dataset, proceedings, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.C2, publication, "year", importReport);
|
||||
|
||||
processYear(dataset, RisField.C2, pretend, proceedings, report);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
authorUtil.processEditors(dataset, RisField.A2, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, proceedings, report, pretend);
|
||||
seriesUtil.processSeries(dataset, RisField.T3, publication, importReport);
|
||||
|
||||
processEditors(dataset, RisField.A2, importerUtil, proceedings, report, pretend);
|
||||
orgaUtil.processPublisher(dataset, RisField.PB, RisField.C1, publication, importReport);
|
||||
|
||||
processSeries(dataset, RisField.T3, proceedings, importerUtil, pretend, report);
|
||||
|
||||
processPublisher(dataset, RisField.PB, RisField.C1, pretend, proceedings, importerUtil, report);
|
||||
|
||||
processField(dataset, RisField.AB, proceedings, "abstract", report, pretend);
|
||||
processField(dataset, RisField.CY, proceedings, "placeOfConference", report, pretend);
|
||||
processDateField(dataset, RisField.DA, proceedings, "dateFromOfConference", report, pretend);
|
||||
processField(dataset, RisField.ET, proceedings, "edition", report, pretend);
|
||||
processNumberOfVolumes(dataset, pretend, proceedings, report);
|
||||
processField(dataset, RisField.SN, proceedings, "isbn", report, pretend);
|
||||
processNumberOfPages(dataset, pretend, proceedings, report);
|
||||
processField(dataset, RisField.T2, proceedings, "nameOfConference", report, pretend);
|
||||
processVolume(dataset, pretend, proceedings, report);
|
||||
|
||||
return report;
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
fieldUtil.processField(dataset, RisField.CY, publication, "placeOfConference", importReport);
|
||||
fieldUtil.processDateField(dataset, RisField.DA, publication, "dateFromOfConference", importReport);
|
||||
fieldUtil.processField(dataset, RisField.ET, publication, "edition", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.NV, publication, "numberOfVolumes", importReport);
|
||||
fieldUtil.processField(dataset, RisField.SN, publication, "isbn", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.SP, publication, "numberOfPages", importReport);
|
||||
fieldUtil.processField(dataset, RisField.T2, publication, "nameOfConference", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.VL, publication, "volume", importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
|
|
|
|||
|
|
@ -6,41 +6,60 @@ 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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisColVolUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class CpaperConverter extends AbstractRisConverter {
|
||||
public class CpaperConverter extends AbstractRisConverter<InProceedings, InProceedingsBundle> {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
@Override
|
||||
protected InProceedings createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new InProceedings();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InProceedingsBundle createBundle(final InProceedings publication,
|
||||
final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new InProceedingsBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final InProceedings publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(InProceedings.BASE_DATA_OBJECT_TYPE);
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisColVolUtil colVolUtil = new RisColVolUtil(importerUtil, pretend);
|
||||
|
||||
final InProceedings inProceedings = new InProceedings();
|
||||
inProceedings.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final InProceedingsBundle bundle = new InProceedingsBundle(inProceedings);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processTitle(dataset, inProceedings, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processYear(dataset, pretend, inProceedings, report);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, inProceedings, report, pretend);
|
||||
colVolUtil.processProceedings(dataset, RisField.T2, RisField.PY, RisField.T2, RisField.A2, RisField.PB,
|
||||
RisField.C1,
|
||||
publication, importReport);
|
||||
|
||||
processProceedings(dataset, RisField.T2, RisField.PY, RisField.T2, RisField.A2, RisField.PB, RisField.C1,
|
||||
inProceedings, importerUtil, pretend, report);
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
|
||||
processField(dataset, RisField.AB, inProceedings, "abstract", report, pretend);
|
||||
|
||||
processPages(dataset, RisField.SP, inProceedings, pretend, report);
|
||||
|
||||
return report;
|
||||
fieldUtil.processPages(dataset, RisField.SP, publication, importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,10 @@ 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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
|
|
@ -15,42 +19,53 @@ import com.arsdigita.kernel.Kernel;
|
|||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class EbookConverter extends AbstractRisConverter {
|
||||
public class EbookConverter extends AbstractRisConverter<Monograph, PublicationWithPublisherBundle> {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(Monograph.BASE_DATA_OBJECT_TYPE);
|
||||
@Override
|
||||
protected Monograph createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new Monograph();
|
||||
}
|
||||
}
|
||||
|
||||
final Monograph monograph = new Monograph();
|
||||
monograph.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final PublicationWithPublisherBundle bundle = new PublicationWithPublisherBundle(monograph);
|
||||
@Override
|
||||
protected PublicationWithPublisherBundle createBundle(final Monograph publication,
|
||||
final boolean pretend) {
|
||||
return new PublicationWithPublisherBundle(publication);
|
||||
}
|
||||
|
||||
processTitle(dataset, monograph, report, pretend);
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final Monograph publication, final ImporterUtil importerUtil,
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
final RisSeriesUtil seriesUtil = new RisSeriesUtil(importerUtil, pretend);
|
||||
|
||||
processYear(dataset, pretend, monograph, report);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, monograph, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processEditors(dataset, RisField.A3, importerUtil, monograph, report, pretend);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
authorUtil.processEditors(dataset, RisField.A3, publication, importReport);
|
||||
|
||||
processPublisher(dataset, pretend, monograph, importerUtil, report);
|
||||
orgaUtil.processPublisher(dataset, RisField.PB, RisField.CY, publication, importReport);
|
||||
|
||||
processField(dataset, RisField.AB, monograph, "abstract", report, pretend);
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
|
||||
processField(dataset, RisField.ET, monograph, "edition", report, pretend);
|
||||
fieldUtil.processField(dataset, RisField.ET, publication, "edition", importReport);
|
||||
|
||||
processField(dataset, RisField.SN, monograph, "isbn", report, pretend);
|
||||
fieldUtil.processField(dataset, RisField.SN, publication, "isbn", importReport);
|
||||
|
||||
processNumberOfPages(dataset, pretend, monograph, report);
|
||||
fieldUtil.processIntField(dataset, RisField.SP, publication, "numberOfPages", importReport);
|
||||
|
||||
processVolume(dataset, pretend, monograph, report);
|
||||
fieldUtil.processIntField(dataset, RisField.VL, publication, "volume", importReport);
|
||||
|
||||
processSeries(dataset, RisField.T2, monograph, importerUtil, pretend, report);
|
||||
|
||||
return report;
|
||||
seriesUtil.processSeries(dataset, RisField.T2, publication, importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@ 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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
|
|
@ -14,36 +17,51 @@ import com.arsdigita.kernel.Kernel;
|
|||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class EdbookConverter extends AbstractRisConverter {
|
||||
public class EdbookConverter extends AbstractRisConverter<CollectedVolume, CollectedVolumeBundle> {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
@Override
|
||||
protected CollectedVolume createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new CollectedVolume();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CollectedVolumeBundle createBundle(final CollectedVolume publication,
|
||||
final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new CollectedVolumeBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final CollectedVolume publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(CollectedVolume.BASE_DATA_OBJECT_TYPE);
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
|
||||
final CollectedVolume collectedVolume = new CollectedVolume();
|
||||
collectedVolume.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final CollectedVolumeBundle bundle = new CollectedVolumeBundle(collectedVolume);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processTitle(dataset, collectedVolume, report, pretend);
|
||||
authorUtil.processEditors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
processEditors(dataset, RisField.AU, importerUtil, collectedVolume, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processYear(dataset, pretend, collectedVolume, report);
|
||||
orgaUtil.processPublisher(dataset, RisField.PB, RisField.CY, publication, importReport);
|
||||
|
||||
processPublisher(dataset, pretend, collectedVolume, importerUtil, report);
|
||||
|
||||
processField(dataset, RisField.AB, collectedVolume, "abstract", report, pretend);
|
||||
processField(dataset, RisField.ET, collectedVolume, "edition", report, pretend);
|
||||
processNumberOfVolumes(dataset, pretend, collectedVolume, report);
|
||||
processField(dataset, RisField.SN, collectedVolume, "isbn", report, pretend);
|
||||
processNumberOfPages(dataset, pretend, collectedVolume, report);
|
||||
processVolume(dataset, pretend, collectedVolume, report);
|
||||
|
||||
|
||||
return report;
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
fieldUtil.processField(dataset, RisField.ET, publication, "edition", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.NV, publication, "numberOfVolumes", importReport);
|
||||
fieldUtil.processField(dataset, RisField.SN, publication, "isbn", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.SP, publication, "numberOfPages", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.VL, publication, "volume", importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@ import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
|||
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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisJournalUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
|
|
@ -16,42 +19,56 @@ import com.arsdigita.kernel.Kernel;
|
|||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class EjourConverter extends AbstractRisConverter implements RisConverter {
|
||||
public class EjourConverter extends AbstractRisConverter<ArticleInJournal, ArticleInJournalBundle> {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
@Override
|
||||
protected ArticleInJournal createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new ArticleInJournal();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ArticleInJournalBundle createBundle(final ArticleInJournal publication,
|
||||
final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new ArticleInJournalBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final ArticleInJournal publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(ArticleInJournal.BASE_DATA_OBJECT_TYPE);
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisJournalUtil journalUtil = new RisJournalUtil(importerUtil, pretend);
|
||||
|
||||
final ArticleInJournal article = new ArticleInJournal();
|
||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final ArticleInJournalBundle bundle = new ArticleInJournalBundle(article);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processTitle(dataset, article, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processYear(dataset, pretend, article, report);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, article, report, pretend);
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
|
||||
processField(dataset, RisField.AB, article, "abstract", report, pretend);
|
||||
journalUtil.processJournal(dataset, RisField.T2, publication, importReport);
|
||||
|
||||
processJournal(dataset, RisField.T2, article, importerUtil, pretend, report);
|
||||
fieldUtil.processField(dataset, RisField.M1, publication, "issue", importReport);
|
||||
|
||||
processField(dataset, RisField.M1, article, "issue", report, pretend);
|
||||
fieldUtil.processPages(dataset, RisField.SP, publication, importReport);
|
||||
|
||||
processPages(dataset, RisField.SP, article, pretend, report);
|
||||
|
||||
processField(dataset, RisField.VL, article, "volume", report, pretend);
|
||||
|
||||
return report;
|
||||
fieldUtil.processField(dataset, RisField.VL, publication, "volume", importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
return RisType.EJOUR;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,15 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.InProceedingsBundle;
|
||||
import com.arsdigita.cms.contenttypes.InternetArticle;
|
||||
import com.arsdigita.cms.contenttypes.InternetArticleBundle;
|
||||
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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
|
|
@ -14,44 +18,57 @@ import com.arsdigita.kernel.Kernel;
|
|||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ElecConverter extends AbstractRisConverter {
|
||||
public class ElecConverter extends AbstractRisConverter<InternetArticle, InternetArticleBundle> {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
@Override
|
||||
protected InternetArticle createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new InternetArticle();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InternetArticleBundle createBundle(final InternetArticle publication, final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new InternetArticleBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final InternetArticle publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(InternetArticle.BASE_DATA_OBJECT_TYPE);
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisSeriesUtil seriesUtil = new RisSeriesUtil(importerUtil, pretend);
|
||||
|
||||
final InternetArticle article = new InternetArticle();
|
||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final InternetArticleBundle bundle = new InternetArticleBundle(article);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processTitle(dataset, article, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processYear(dataset, pretend, article, report);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, article, report, pretend);
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
|
||||
processField(dataset, RisField.AB, article, "abstract", report, pretend);
|
||||
seriesUtil.processSeries(dataset, RisField.T2, publication, importReport);
|
||||
|
||||
processSeries(dataset, RisField.T2, article, importerUtil, pretend, report);
|
||||
fieldUtil.processField(dataset, RisField.CY, publication, "place", importReport);
|
||||
|
||||
processField(dataset, RisField.CY, article, "place", report, pretend);
|
||||
fieldUtil.processField(dataset, RisField.DO, publication, "doi", importReport);
|
||||
|
||||
processField(dataset, RisField.DO, article, "doi", report, pretend);
|
||||
fieldUtil.processField(dataset, RisField.ET, publication, "edition", importReport);
|
||||
|
||||
processField(dataset, RisField.ET, article, "edition", report, pretend);
|
||||
|
||||
processField(dataset, RisField.UR, article, "url", report, pretend);
|
||||
|
||||
return report;
|
||||
fieldUtil.processField(dataset, RisField.UR, publication, "url", importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
return RisType.ELEC;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,43 +6,60 @@ 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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisColVolUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class EncycConverter extends AbstractRisConverter {
|
||||
public class EncycConverter extends AbstractRisConverter<ArticleInCollectedVolume, ArticleInCollectedVolumeBundle> {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
@Override
|
||||
protected ArticleInCollectedVolume createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new ArticleInCollectedVolume();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ArticleInCollectedVolumeBundle createBundle(final ArticleInCollectedVolume publication,
|
||||
final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new ArticleInCollectedVolumeBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final ArticleInCollectedVolume publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(ArticleInCollectedVolume.BASE_DATA_OBJECT_TYPE);
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisColVolUtil colVolUtil = new RisColVolUtil(importerUtil, pretend);
|
||||
|
||||
final ArticleInCollectedVolume article = new ArticleInCollectedVolume();
|
||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
ArticleInCollectedVolumeBundle bundle = new ArticleInCollectedVolumeBundle(article);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processTitle(dataset, article, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processYear(dataset, pretend, article, report);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, article, report, pretend);
|
||||
colVolUtil.processCollectedVolume(dataset, RisField.T2, RisField.PY, RisField.A2, RisField.CY, RisField.PB,
|
||||
RisField.ET,
|
||||
publication, importReport);
|
||||
|
||||
processCollectedVolume(dataset, RisField.T2, RisField.PY, RisField.A2, RisField.CY, RisField.PB, RisField.ET,
|
||||
article, importerUtil, pretend, report);
|
||||
|
||||
processField(dataset, RisField.C1, article, "chapter", report, pretend);
|
||||
processField(dataset, RisField.AB, article, "abstract", report, pretend);
|
||||
processPages(dataset, RisField.SP, article, pretend, report);
|
||||
|
||||
|
||||
|
||||
return report;
|
||||
fieldUtil.processField(dataset, RisField.C1, publication, "chapter", importReport);
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
fieldUtil.processPages(dataset, RisField.SP, publication, importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
|
|
|
|||
|
|
@ -7,8 +7,10 @@ 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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
* Converter for the RIS type {@code GEN} to the SciPublications {@link GreyLiterature}
|
||||
|
|
@ -16,43 +18,58 @@ import com.arsdigita.kernel.Kernel;
|
|||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class GenConverter extends AbstractRisConverter {
|
||||
public class GenConverter extends AbstractRisConverter<Monograph, PublicationWithPublisherBundle> {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
@Override
|
||||
protected Monograph createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new Monograph();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected PublicationWithPublisherBundle createBundle(final Monograph publication, final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new PublicationWithPublisherBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final Monograph publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
|
||||
final Monograph publication = new Monograph();
|
||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final PublicationWithPublisherBundle bundle = new PublicationWithPublisherBundle(publication);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processTitle(dataset, publication, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processYear(dataset, pretend, publication, report);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
authorUtil.processAuthors(dataset, RisField.A2, publication, importReport);
|
||||
authorUtil.processAuthors(dataset, RisField.A3, publication, importReport);
|
||||
authorUtil.processAuthors(dataset, RisField.A4, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, publication, report, pretend);
|
||||
processAuthors(dataset, RisField.A2, importerUtil, publication, report, pretend);
|
||||
processAuthors(dataset, RisField.A3, importerUtil, publication, report, pretend);
|
||||
processAuthors(dataset, RisField.A4, importerUtil, publication, report, pretend);
|
||||
orgaUtil.processPublisher(dataset, RisField.PY, RisField.CY, publication, importReport);
|
||||
|
||||
processPublisher(dataset, pretend, publication, importerUtil, report);
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
|
||||
processField(dataset, RisField.AB, publication, "abstract", report, pretend);
|
||||
fieldUtil.processField(dataset, RisField.ET, publication, "edition", importReport);
|
||||
|
||||
processField(dataset, RisField.ET, publication, "edition", report, pretend);
|
||||
fieldUtil.processField(dataset, RisField.SN, publication, "isbn", importReport);
|
||||
|
||||
processField(dataset, RisField.SN, publication, "isbn", report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.SP, publication, "numberOfPages", importReport);
|
||||
|
||||
processNumberOfPages(dataset, pretend, publication, report);
|
||||
fieldUtil.processIntField(dataset, RisField.NV, publication, "numberOfVolumes", importReport);
|
||||
|
||||
processNumberOfVolumes(dataset, pretend, publication, report);
|
||||
|
||||
processVolume(dataset, pretend, publication, report);
|
||||
|
||||
return report;
|
||||
fieldUtil.processIntField(dataset, RisField.VL, publication, "volume", importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@ 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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisJournalUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
|
|
@ -14,39 +17,52 @@ import com.arsdigita.kernel.Kernel;
|
|||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class JourConverter extends AbstractRisConverter {
|
||||
public class JourConverter extends AbstractRisConverter<ArticleInJournal, ArticleInJournalBundle> {
|
||||
|
||||
@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);
|
||||
protected ArticleInJournal createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new ArticleInJournal();
|
||||
}
|
||||
}
|
||||
|
||||
final ArticleInJournal article = new ArticleInJournal();
|
||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final ArticleInJournalBundle bundle = new ArticleInJournalBundle(article);
|
||||
@Override
|
||||
protected ArticleInJournalBundle createBundle(final ArticleInJournal publication, final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new ArticleInJournalBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
processTitle(dataset, article, report, pretend);
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final ArticleInJournal publication, final ImporterUtil importerUtil,
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisJournalUtil journalUtil = new RisJournalUtil(importerUtil, pretend);
|
||||
|
||||
processYear(dataset, pretend, article, report);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, article, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processField(dataset, RisField.AB, article, "abstract", report, pretend);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
processJournal(dataset, RisField.T2, article, importerUtil, pretend, report);
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
|
||||
processField(dataset, RisField.M1, article, "issue", report, pretend);
|
||||
journalUtil.processJournal(dataset, RisField.T2, publication, importReport);
|
||||
|
||||
processPages(dataset, RisField.SP, article, pretend, report);
|
||||
fieldUtil.processField(dataset, RisField.M1, publication, "issue", importReport);
|
||||
|
||||
processField(dataset, RisField.VL, article, "volume", report, pretend);
|
||||
fieldUtil.processPages(dataset, RisField.SP, publication, importReport);
|
||||
|
||||
processIntField(dataset, RisField.M2, article, "pagesFrom", report, pretend);
|
||||
fieldUtil.processField(dataset, RisField.VL, publication, "volume", importReport);
|
||||
|
||||
return report;
|
||||
fieldUtil.processIntField(dataset, RisField.M2, publication, "pagesFrom", importReport);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -6,45 +6,63 @@ 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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class RprtConverter extends AbstractRisConverter {
|
||||
public class RprtConverter extends AbstractRisConverter<GreyLiterature, UnPublishedBundle> {
|
||||
|
||||
@Override
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
protected GreyLiterature createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new GreyLiterature();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected UnPublishedBundle createBundle(final GreyLiterature publication,
|
||||
final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new UnPublishedBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final GreyLiterature publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
final RisSeriesUtil seriesUtil = new RisSeriesUtil(importerUtil, pretend);
|
||||
|
||||
final GreyLiterature publication = new GreyLiterature();
|
||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final UnPublishedBundle bundle = new UnPublishedBundle(publication);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processTitle(dataset, publication, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processYear(dataset, pretend, publication, report);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, publication, report, pretend);
|
||||
seriesUtil.processSeries(dataset, RisField.T2, publication, importReport);
|
||||
|
||||
processSeries(dataset, RisField.T2, publication, importerUtil, pretend, report);
|
||||
orgaUtil.processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, importReport);
|
||||
|
||||
processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, report);
|
||||
|
||||
processField(dataset, RisField.AB, publication, "abstract", report, pretend);
|
||||
processField(dataset, RisField.CY, publication, "place", report, pretend);
|
||||
processField(dataset, RisField.SN, publication, "number", report, pretend);
|
||||
processIntField(dataset, RisField.SP, publication, "numberOfPages", report, pretend);
|
||||
|
||||
|
||||
return report;
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
fieldUtil.processField(dataset, RisField.CY, publication, "place", importReport);
|
||||
fieldUtil.processField(dataset, RisField.SN, publication, "number", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.SP, publication, "numberOfPages", importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@ 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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
|
|
@ -14,34 +17,46 @@ import com.arsdigita.kernel.Kernel;
|
|||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ThesConverter extends AbstractRisConverter {
|
||||
public class ThesConverter extends AbstractRisConverter<GreyLiterature, UnPublishedBundle> {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
@Override
|
||||
protected GreyLiterature createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new GreyLiterature();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected UnPublishedBundle createBundle(final GreyLiterature publication, final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new UnPublishedBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final GreyLiterature publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
|
||||
final PublicationImportReport importReport,
|
||||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
|
||||
final GreyLiterature publication = new GreyLiterature();
|
||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final UnPublishedBundle bundle = new UnPublishedBundle(publication);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processTitle(dataset, publication, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processYear(dataset, pretend, publication, report);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, publication, report, pretend);
|
||||
|
||||
processField(dataset, RisField.AB, publication, "abstract", report, pretend);
|
||||
processField(dataset, RisField.CY, publication, "place", report, pretend);
|
||||
processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, report);
|
||||
processIntField(dataset, RisField.SP, publication, "numberOfPages", report, pretend);
|
||||
|
||||
|
||||
|
||||
|
||||
return report;
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
fieldUtil.processField(dataset, RisField.CY, publication, "place", importReport);
|
||||
orgaUtil.processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.SP, publication, "numberOfPages", importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,17 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.GreyLiterature;
|
||||
import com.arsdigita.cms.contenttypes.Publication;
|
||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
||||
import com.arsdigita.cms.contenttypes.UnPublishedBundle;
|
||||
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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
|
|
@ -14,38 +20,51 @@ import com.arsdigita.kernel.Kernel;
|
|||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class UnpbConverter extends AbstractRisConverter {
|
||||
public class UnpbConverter extends AbstractRisConverter<GreyLiterature, UnPublishedBundle> {
|
||||
|
||||
@Override
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
protected GreyLiterature createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new GreyLiterature();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected UnPublishedBundle createBundle(final GreyLiterature publication,
|
||||
final boolean pretend) {
|
||||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new UnPublishedBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processFields(final RisDataset dataset,
|
||||
final GreyLiterature publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
|
||||
final PublicationImportReport importReport, final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
final RisSeriesUtil seriesUtil = new RisSeriesUtil(importerUtil, pretend);
|
||||
|
||||
final GreyLiterature publication = new GreyLiterature();
|
||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final UnPublishedBundle bundle = new UnPublishedBundle(publication);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
processTitle(dataset, publication, report, pretend);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
processYear(dataset, pretend, publication, report);
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, publication, report, pretend);
|
||||
orgaUtil.processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, importReport);
|
||||
|
||||
processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, report);
|
||||
seriesUtil.processSeries(dataset, RisField.T2, publication, importReport);
|
||||
|
||||
processSeries(dataset, RisField.T2, publication, importerUtil, pretend, report);
|
||||
|
||||
processField(dataset, RisField.AB, publication, "abstract", report, pretend);
|
||||
processField(dataset, RisField.CY, publication, "place", report, pretend);
|
||||
processField(dataset, RisField.M1, publication, "number", report, pretend);
|
||||
processIntField(dataset, RisField.SP, publication, "numberOfPages", report, pretend);
|
||||
|
||||
|
||||
|
||||
return report;
|
||||
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||
fieldUtil.processField(dataset, RisField.CY, publication, "place", importReport);
|
||||
fieldUtil.processField(dataset, RisField.M1, publication, "number", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.SP, publication, "numberOfPages", importReport);
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters.utils;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.Publication;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.importer.report.AuthorImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.AuthorData;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class RisAuthorUtil {
|
||||
|
||||
private final ImporterUtil importerUtil;
|
||||
private final boolean pretend;
|
||||
|
||||
public RisAuthorUtil(final ImporterUtil importerUtil, final boolean pretend) {
|
||||
this.importerUtil = importerUtil;
|
||||
this.pretend = pretend;
|
||||
}
|
||||
|
||||
public void processAuthors(final RisDataset dataset,
|
||||
final RisField risField,
|
||||
final Publication publication,
|
||||
final PublicationImportReport report) {
|
||||
processAuthors(dataset, risField, publication, false, report);
|
||||
}
|
||||
|
||||
public void processEditors(final RisDataset dataset,
|
||||
final RisField risField,
|
||||
final Publication publication,
|
||||
final PublicationImportReport report) {
|
||||
processAuthors(dataset, risField, publication, true, report);
|
||||
}
|
||||
|
||||
private void processAuthors(final RisDataset dataset,
|
||||
final RisField risField,
|
||||
final Publication publication,
|
||||
final boolean isEditors,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> authors = dataset.getValues().get(risField);
|
||||
if ((authors != null) && !authors.isEmpty()) {
|
||||
for (String authorStr : authors) {
|
||||
processAuthorStr(authorStr,
|
||||
isEditors,
|
||||
publication,
|
||||
report,
|
||||
dataset.getFirstLine());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void processAuthorStr(final String authorStr,
|
||||
final boolean editor,
|
||||
final Publication publication,
|
||||
final PublicationImportReport importReport,
|
||||
final int firstLine) {
|
||||
final AuthorData authorData = new AuthorData();
|
||||
|
||||
final String[] tokens = authorStr.split(",");
|
||||
if (tokens.length == 0) {
|
||||
importReport.addMessage(String.format("Failed to parse author string '%s' at dataset starting at line %d.",
|
||||
authorStr, firstLine));
|
||||
return;
|
||||
}
|
||||
|
||||
if (tokens.length >= 1) {
|
||||
authorData.setSurname(tokens[0]);
|
||||
}
|
||||
|
||||
if (tokens.length >= 2) {
|
||||
authorData.setGivenName(tokens[1]);
|
||||
}
|
||||
|
||||
authorData.setEditor(editor);
|
||||
|
||||
final AuthorImportReport authorReport = importerUtil.processAuthor(publication, authorData, pretend);
|
||||
importReport.addAuthor(authorReport);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters.utils;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.ArticleInCollectedVolume;
|
||||
import com.arsdigita.cms.contenttypes.InProceedings;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.importer.report.CollectedVolumeImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.ProceedingsImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.AuthorData;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class RisColVolUtil {
|
||||
|
||||
private final ImporterUtil importerUtil;
|
||||
private final boolean pretend;
|
||||
|
||||
public RisColVolUtil(final ImporterUtil importerUtil, final boolean pretend) {
|
||||
this.importerUtil = importerUtil;
|
||||
this.pretend = pretend;
|
||||
}
|
||||
|
||||
public void processCollectedVolume(final RisDataset dataset,
|
||||
final RisField cvTitleField,
|
||||
final RisField cvYearField,
|
||||
final RisField cvEditorsField,
|
||||
final RisField cvPlaceField,
|
||||
final RisField cvPublisherField,
|
||||
final RisField cvEditionField,
|
||||
final ArticleInCollectedVolume article,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> colVolTitle = dataset.getValues().get(cvTitleField);
|
||||
final List<String> colVolYear = dataset.getValues().get(cvYearField);
|
||||
final List<String> colVolPlace = dataset.getValues().get(cvPlaceField);
|
||||
final List<String> colVolPublisher = dataset.getValues().get(cvPublisherField);
|
||||
final List<String> colVolEdition = dataset.getValues().get(cvEditionField);
|
||||
|
||||
final List<String> colVolEditors = dataset.getValues().get(cvEditorsField);
|
||||
final List<AuthorData> colVolEditorData = new ArrayList<AuthorData>();
|
||||
|
||||
for (String colVolEditor : colVolEditors) {
|
||||
final String[] tokens = colVolEditor.split(",");
|
||||
|
||||
colVolEditorData.add(createAuthorData(tokens));
|
||||
}
|
||||
|
||||
if ((colVolTitle != null) && !colVolTitle.isEmpty()) {
|
||||
final CollectedVolumeImportReport colVolReport = importerUtil.processCollectedVolume(article,
|
||||
colVolTitle.get(0),
|
||||
colVolYear.get(0),
|
||||
colVolEditorData,
|
||||
colVolPublisher.get(0),
|
||||
colVolPlace.get(0),
|
||||
colVolEdition.get(0),
|
||||
pretend);
|
||||
report.setCollectedVolume(colVolReport);
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("PMD.LongVariable")
|
||||
public void processProceedings(final RisDataset dataset,
|
||||
final RisField procTitleField,
|
||||
final RisField procYearField,
|
||||
final RisField procConfNameField,
|
||||
final RisField procEditorsField,
|
||||
final RisField procPublisherField,
|
||||
final RisField procPlaceField,
|
||||
final InProceedings inProceedings,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> procTitle = dataset.getValues().get(procTitleField);
|
||||
final List<String> procYear = dataset.getValues().get(procYearField);
|
||||
final List<String> procConfName = dataset.getValues().get(procConfNameField);
|
||||
final List<String> procPublisher = dataset.getValues().get(procPublisherField);
|
||||
final List<String> procPlace = dataset.getValues().get(procPlaceField);
|
||||
|
||||
final List<String> procEditors = dataset.getValues().get(procEditorsField);
|
||||
final List<AuthorData> procEditorData = new ArrayList<AuthorData>();
|
||||
|
||||
for (String procEditor : procEditors) {
|
||||
final String[] tokens = procEditor.split(", ");
|
||||
|
||||
procEditorData.add(createAuthorData(tokens));
|
||||
}
|
||||
|
||||
if ((procTitle != null) && !procTitle.isEmpty()) {
|
||||
final ProceedingsImportReport procReport = importerUtil.processProceedings(inProceedings,
|
||||
procTitle.get(0),
|
||||
procYear.get(0),
|
||||
procConfName.get(0),
|
||||
procEditorData,
|
||||
procPublisher.get(0),
|
||||
procPlace.get(0),
|
||||
pretend);
|
||||
report.setProceedings(procReport);
|
||||
}
|
||||
}
|
||||
|
||||
private AuthorData createAuthorData(final String[] tokens) {
|
||||
final AuthorData authorData = new AuthorData();
|
||||
|
||||
if (tokens.length == 0) {
|
||||
throw new IllegalArgumentException("No author data tokens!");
|
||||
}
|
||||
|
||||
if (tokens.length >= 1) {
|
||||
authorData.setSurname(tokens[0]);
|
||||
}
|
||||
|
||||
if (tokens.length >= 2) {
|
||||
authorData.setGivenName(tokens[1]);
|
||||
}
|
||||
|
||||
return authorData;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,170 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters.utils;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.Publication;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
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 java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class RisFieldUtil {
|
||||
|
||||
private static final String PAGES_FROM = "pagesFrom";
|
||||
private static final String PAGES_TO = "pagesTo";
|
||||
private final boolean pretend;
|
||||
|
||||
public RisFieldUtil(final boolean pretend) {
|
||||
this.pretend = pretend;
|
||||
}
|
||||
|
||||
@SuppressWarnings("PMD.ConfusingTernary")
|
||||
public void processTitle(final RisDataset dataset,
|
||||
final Publication publication,
|
||||
final PublicationImportReport report) {
|
||||
final String title;
|
||||
|
||||
if ((dataset.getValues().get(RisField.TI) != null) && !dataset.getValues().get(RisField.TI).isEmpty()) {
|
||||
title = dataset.getValues().get(RisField.TI).get(0);
|
||||
} else if ((dataset.getValues().get(RisField.BT) != null) && !dataset.getValues().get(RisField.BT).isEmpty()) {
|
||||
title = dataset.getValues().get(RisField.BT).get(0);
|
||||
} else {
|
||||
title = "Unknown";
|
||||
}
|
||||
|
||||
if (!pretend) {
|
||||
publication.setTitle(title);
|
||||
}
|
||||
|
||||
report.setTitle(title);
|
||||
}
|
||||
|
||||
public void processField(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final Publication publication,
|
||||
final String targetField,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> values = dataset.getValues().get(field);
|
||||
if ((values != null) && !values.isEmpty()) {
|
||||
if (!pretend) {
|
||||
publication.set(targetField, values.get(0));
|
||||
}
|
||||
report.addField(new FieldImportReport(targetField, values.get(0)));
|
||||
}
|
||||
}
|
||||
|
||||
public void processIntField(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final Publication publication,
|
||||
final String targetField,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> values = dataset.getValues().get(field);
|
||||
if ((values != null) && !values.isEmpty()) {
|
||||
final String valueStr = values.get(0);
|
||||
try {
|
||||
final int value = Integer.parseInt(valueStr);
|
||||
if (!pretend) {
|
||||
publication.set(targetField, value);
|
||||
}
|
||||
report.addField(new FieldImportReport(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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void processDateField(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final Publication publication,
|
||||
final String targetField,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> values = dataset.getValues().get(field);
|
||||
if ((values != null) && !values.isEmpty()) {
|
||||
final String valueStr = values.get(0);
|
||||
final String[] tokens = valueStr.split("/");
|
||||
final Calendar calendar = Calendar.getInstance();
|
||||
int year = 0;
|
||||
int month = 1;
|
||||
int day = 1;
|
||||
try {
|
||||
if (tokens.length >= 1) {
|
||||
year = Integer.parseInt(tokens[0]);
|
||||
}
|
||||
|
||||
if (tokens.length >= 2) {
|
||||
month = Integer.parseInt(tokens[1]);
|
||||
}
|
||||
|
||||
if (tokens.length >= 3) {
|
||||
day = Integer.parseInt(tokens[2]);
|
||||
}
|
||||
|
||||
calendar.clear();
|
||||
calendar.set(year, month - 1, day); // month - 1 because month values of the Calendar are starting with 0
|
||||
|
||||
if (!pretend) {
|
||||
publication.set(targetField, calendar.getTime());
|
||||
}
|
||||
report.addField(new FieldImportReport(targetField, String.format("%d-%d-%d",
|
||||
calendar.get(Calendar.YEAR),
|
||||
calendar.get(Calendar.MONTH),
|
||||
calendar.get(Calendar.DAY_OF_MONTH))));
|
||||
|
||||
} catch (NumberFormatException ex) {
|
||||
report.addMessage(String.format("Failed to parse value of field '%s' into an date for dataset "
|
||||
+ "starting on line %d.",
|
||||
field,
|
||||
dataset.getFirstLine()));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void processPages(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final Publication publication,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> 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]);
|
||||
if (!pretend) {
|
||||
publication.set(PAGES_FROM, pagesFrom);
|
||||
publication.set(PAGES_TO, pagesTo);
|
||||
}
|
||||
report.addField(new FieldImportReport(PAGES_FROM, Integer.toString(pagesFrom)));
|
||||
report.addField(new FieldImportReport(PAGES_TO, 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]);
|
||||
if (!pretend) {
|
||||
publication.set(PAGES_FROM, pagesFrom);
|
||||
}
|
||||
report.addField(new FieldImportReport(PAGES_FROM, 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()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters.utils;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.ArticleInJournal;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.importer.report.JournalImportReport;
|
||||
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;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class RisJournalUtil {
|
||||
|
||||
private final ImporterUtil importerUtil;
|
||||
private final boolean pretend;
|
||||
|
||||
public RisJournalUtil(final ImporterUtil importerUtil, final boolean pretend) {
|
||||
this.importerUtil = importerUtil;
|
||||
this.pretend = pretend;
|
||||
}
|
||||
|
||||
public void processJournal(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final ArticleInJournal article,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> journal = dataset.getValues().get(field);
|
||||
if ((journal != null) && !journal.isEmpty()) {
|
||||
final JournalImportReport journalReport = importerUtil.processJournal(article, journal.get(0), pretend);
|
||||
report.setJournal(journalReport);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters.utils;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.InternetArticle;
|
||||
import com.arsdigita.cms.contenttypes.PublicationWithPublisher;
|
||||
import com.arsdigita.cms.contenttypes.UnPublished;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
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;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class RisOrgaUtil {
|
||||
|
||||
private final ImporterUtil importerUtil;
|
||||
private final boolean pretend;
|
||||
|
||||
public RisOrgaUtil(final ImporterUtil importerUtil, final boolean pretend) {
|
||||
this.importerUtil = importerUtil;
|
||||
this.pretend = pretend;
|
||||
}
|
||||
|
||||
public void processPublisher(final RisDataset dataset,
|
||||
final RisField publisherField,
|
||||
final RisField placeField,
|
||||
final PublicationWithPublisher publication,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> publisherList = dataset.getValues().get(publisherField);
|
||||
final List<String> placeList = dataset.getValues().get(placeField);
|
||||
final String publisherName;
|
||||
if ((publisherList == null) || publisherList.isEmpty()) {
|
||||
publisherName = null;
|
||||
} else {
|
||||
publisherName = publisherList.get(0);
|
||||
}
|
||||
|
||||
final String place;
|
||||
if ((placeList == null) || placeList.isEmpty()) {
|
||||
place = null;
|
||||
} else {
|
||||
place = placeList.get(0);
|
||||
}
|
||||
|
||||
if (publisherName != null) {
|
||||
report.setPublisher(importerUtil.processPublisher(publication, place, publisherName, pretend));
|
||||
}
|
||||
}
|
||||
|
||||
public void processOrganization(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final boolean pretend,
|
||||
final UnPublished publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> orgaList = dataset.getValues().get(field);
|
||||
|
||||
final String orgaName;
|
||||
if ((orgaList == null) || orgaList.isEmpty()) {
|
||||
orgaName = null;
|
||||
} else {
|
||||
orgaName = orgaList.get(0);
|
||||
}
|
||||
|
||||
if (orgaName != null) {
|
||||
report.addOrgaUnit(importerUtil.processOrganization(publication, orgaName, pretend));
|
||||
}
|
||||
}
|
||||
|
||||
public void processOrganization(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final boolean pretend,
|
||||
final InternetArticle publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> orgaList = dataset.getValues().get(field);
|
||||
|
||||
final String orgaName;
|
||||
if ((orgaList == null) || orgaList.isEmpty()) {
|
||||
orgaName = null;
|
||||
} else {
|
||||
orgaName = orgaList.get(0);
|
||||
}
|
||||
|
||||
if (orgaName != null) {
|
||||
report.addOrgaUnit(importerUtil.processOrganization(publication, orgaName, pretend));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters.utils;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.Publication;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.SeriesImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class RisSeriesUtil {
|
||||
|
||||
private final ImporterUtil importerUtil;
|
||||
private final boolean pretend;
|
||||
|
||||
public RisSeriesUtil(final ImporterUtil importerUtil, final boolean pretend) {
|
||||
this.importerUtil = importerUtil;
|
||||
this.pretend = pretend;
|
||||
}
|
||||
|
||||
public void processSeries(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final Publication publication,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> series = dataset.getValues().get(field);
|
||||
if ((series != null) && !series.isEmpty()) {
|
||||
final SeriesImportReport seriesReport = importerUtil.processSeries(publication, series.get(0), pretend);
|
||||
report.setSeries(seriesReport);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue