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:directories>
|
||||||
<ccm:directory name="pdl"/>
|
<ccm:directory name="pdl"/>
|
||||||
<ccm:directory name="sql"/>
|
<ccm:directory name="sql"/>
|
||||||
|
<ccm:directory name="lib"/>
|
||||||
<ccm:directory name="src"/>
|
<ccm:directory name="src"/>
|
||||||
</ccm:directories>
|
</ccm:directories>
|
||||||
<ccm:contacts>
|
<ccm:contacts>
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<registry>
|
<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>
|
</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.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface for importing RisConverter.
|
* Interface for importing RisConverter.
|
||||||
|
|
|
||||||
|
|
@ -19,17 +19,24 @@ import org.apache.log4j.Logger;
|
||||||
public class RisImporter implements SciPublicationsImporter {
|
public class RisImporter implements SciPublicationsImporter {
|
||||||
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(RisImporter.class);
|
private static final Logger LOGGER = Logger.getLogger(RisImporter.class);
|
||||||
|
private static final RisImporterConfig CONFIG = new RisImporterConfig();
|
||||||
private final RisConverters converters = RisConverters.getInstance();
|
private final RisConverters converters = RisConverters.getInstance();
|
||||||
|
|
||||||
|
static {
|
||||||
|
CONFIG.load();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static RisImporterConfig getConfig() {
|
||||||
|
return CONFIG;
|
||||||
|
}
|
||||||
|
|
||||||
public PublicationFormat getSupportedFormat() {
|
public PublicationFormat getSupportedFormat() {
|
||||||
try {
|
try {
|
||||||
return new PublicationFormat("RIS", new MimeType("application/x-research-info-systems"), "ris");
|
return new PublicationFormat("RIS", new MimeType("application/x-research-info-systems"), "ris");
|
||||||
} catch (MimeTypeParseException ex) {
|
} catch (MimeTypeParseException ex) {
|
||||||
LOGGER.warn("Failed to create MimeType for PublicationFormat."
|
LOGGER.warn("Failed to create MimeType for PublicationFormat."
|
||||||
+ "Using null mimetype instead. Cause: ", ex);
|
+ "Using null mimetype instead. Cause: ", ex);
|
||||||
return new PublicationFormat("RIS",
|
return new PublicationFormat("RIS", null, "RIS");
|
||||||
null,
|
|
||||||
"RIS");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -48,10 +55,10 @@ public class RisImporter implements SciPublicationsImporter {
|
||||||
final ImporterUtil importerUtil = new ImporterUtil(publishNewItems);
|
final ImporterUtil importerUtil = new ImporterUtil(publishNewItems);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (RisDataset dataset : datasets) {
|
for (RisDataset dataset : datasets) {
|
||||||
processPublication(dataset, report, importerUtil, pretend, publishNewItems);
|
processPublication(dataset, report, importerUtil, pretend, publishNewItems);
|
||||||
}
|
}
|
||||||
} catch(Exception ex) {
|
} catch (Exception ex) {
|
||||||
ex.printStackTrace(System.out);
|
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;
|
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||||
|
|
||||||
|
import com.arsdigita.categorization.Category;
|
||||||
import com.arsdigita.cms.Folder;
|
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.Publication;
|
||||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
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.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisConverter;
|
import com.arsdigita.cms.scipublications.importer.ris.RisConverter;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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 com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import java.util.ArrayList;
|
import com.arsdigita.kernel.Kernel;
|
||||||
import java.util.Calendar;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
* @param <T>
|
||||||
|
* @param <B>
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @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) {
|
protected abstract T createPublication(boolean pretend);
|
||||||
// final Folder folder = new Folder(getFolderId());
|
|
||||||
// bundle.setParent(folder);
|
protected abstract B createBundle(T publication, boolean pretend);
|
||||||
// bundle.setContentSection(folder.getContentSection());
|
|
||||||
// publication.setContentSection(folder.getContentSection());
|
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) {
|
protected void assignCategories(final PublicationBundle bundle) {
|
||||||
//ToDo
|
final Category defaultCat = RisImporter.getConfig().getDefaultCategory();
|
||||||
}
|
if (defaultCat != null) {
|
||||||
|
defaultCat.addChild(bundle);
|
||||||
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()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class BlogConverter extends AbstractRisConverter {
|
public class BlogConverter extends AbstractRisConverter<InternetArticle, InternetArticleBundle> {
|
||||||
|
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
@Override
|
||||||
final ImporterUtil importerUtil,
|
protected InternetArticle createPublication(final boolean pretend) {
|
||||||
final boolean pretend,
|
if (pretend) {
|
||||||
final boolean publishNewItems) {
|
return null;
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
} else {
|
||||||
report.setType(InternetArticle.BASE_DATA_OBJECT_TYPE);
|
return new InternetArticle();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final InternetArticle article = new InternetArticle();
|
@Override
|
||||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected InternetArticleBundle createBundle(final InternetArticle publication,
|
||||||
final InternetArticleBundle bundle = new InternetArticleBundle(article);
|
final boolean pretend) {
|
||||||
|
if (pretend) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new InternetArticleBundle(publication);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processTitle(dataset, article, report, pretend);
|
@Override
|
||||||
|
protected void processFields(final RisDataset dataset,
|
||||||
|
final InternetArticle 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);
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
processEditors(dataset, RisField.A2, importerUtil, article, report, pretend);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
|
authorUtil.processEditors(dataset, RisField.A2, publication, importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.AB, article, "abstract", report, pretend);
|
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||||
processField(dataset, RisField.CY, article, "place", report, pretend);
|
fieldUtil.processField(dataset, RisField.CY, publication, "place", importReport);
|
||||||
processField(dataset, RisField.ET, article, "edition", report, pretend);
|
fieldUtil.processField(dataset, RisField.ET, publication, "edition", importReport);
|
||||||
|
|
||||||
processOrganization(dataset, RisField.PB, pretend, article, importerUtil, report);
|
orgaUtil.processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, importReport);
|
||||||
processOrganization(dataset, RisField.T3, pretend, article, importerUtil, report);
|
orgaUtil.processOrganization(dataset, RisField.T3, pretend, publication, importerUtil, importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.UR, article, "url", report, pretend);
|
fieldUtil.processField(dataset, RisField.UR, publication, "url", importReport);
|
||||||
processDateField(dataset, RisField.Y2, article, "lastAccessed", report, pretend);
|
fieldUtil.processDateField(dataset, RisField.Y2, publication, "lastAccessed", importReport);
|
||||||
|
|
||||||
return report;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public RisType getRisType() {
|
public RisType getRisType() {
|
||||||
return RisType.BLOG;
|
return RisType.BLOG;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,16 @@
|
||||||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||||
|
|
||||||
import com.arsdigita.cms.contenttypes.Monograph;
|
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.RisField;
|
||||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converter for the RIS type {@code BOOK} to the SciPublications type {@link Monograph}.
|
* 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>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class BookConverter extends AbstractRisConverter {
|
public class BookConverter extends AbstractRisConverter<Monograph, PublicationBundle> {
|
||||||
|
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
@Override
|
||||||
final ImporterUtil importerUtil,
|
protected Monograph createPublication(final boolean pretend) {
|
||||||
final boolean pretend,
|
if (pretend) {
|
||||||
final boolean publishNewItems) {
|
return null;
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
} else {
|
||||||
report.setType(Monograph.BASE_DATA_OBJECT_TYPE);
|
return new Monograph();
|
||||||
|
}
|
||||||
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 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() {
|
public RisType getRisType() {
|
||||||
return RisType.BOOK;
|
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.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converter for the RIS type {@code CHAP} to the SciPublications type {@link ArticleInCollectedVolume}.
|
* 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
|
* @author Jens Pelzetter
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class ChapConverter extends AbstractRisConverter {
|
public class ChapConverter extends AbstractRisConverter<ArticleInCollectedVolume, ArticleInCollectedVolumeBundle> {
|
||||||
|
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
@Override
|
||||||
final ImporterUtil importerUtil,
|
protected ArticleInCollectedVolume createPublication(final boolean pretend) {
|
||||||
final boolean pretend,
|
if (pretend) {
|
||||||
final boolean publishNewItems) {
|
return null;
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
} else {
|
||||||
report.setType(ArticleInCollectedVolume.BASE_DATA_OBJECT_TYPE);
|
return new ArticleInCollectedVolume();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final ArticleInCollectedVolume article = new ArticleInCollectedVolume();
|
@Override
|
||||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected ArticleInCollectedVolumeBundle createBundle(final ArticleInCollectedVolume publication,
|
||||||
final ArticleInCollectedVolumeBundle bundle = new ArticleInCollectedVolumeBundle(article);
|
final boolean pretend) {
|
||||||
|
if (pretend) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new ArticleInCollectedVolumeBundle(publication);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processTitle(dataset, article, report, pretend);
|
@Override
|
||||||
|
protected void processFields(final RisDataset dataset,
|
||||||
|
final ArticleInCollectedVolume publication,
|
||||||
|
final ImporterUtil importerUtil,
|
||||||
|
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);
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
processCollectedVolume(dataset,
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
RisField.T2,
|
|
||||||
RisField.PY,
|
|
||||||
RisField.A2,
|
|
||||||
RisField.CY,
|
|
||||||
RisField.PB,
|
|
||||||
RisField.ET,
|
|
||||||
article,
|
|
||||||
importerUtil,
|
|
||||||
pretend,
|
|
||||||
report);
|
|
||||||
|
|
||||||
processField(dataset, RisField.SE, article, "chapter", report, pretend);
|
colVolUtil.processCollectedVolume(dataset,
|
||||||
processField(dataset, RisField.AB, article, "abstract", report, pretend);
|
RisField.T2,
|
||||||
processPages(dataset, RisField.SP, article, pretend, report);
|
RisField.PY,
|
||||||
|
RisField.A2,
|
||||||
|
RisField.CY,
|
||||||
|
RisField.PB,
|
||||||
|
RisField.ET,
|
||||||
|
publication,
|
||||||
|
importReport);
|
||||||
|
|
||||||
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() {
|
public RisType getRisType() {
|
||||||
return RisType.CHAP;
|
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.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
import com.arsdigita.kernel.Kernel;
|
||||||
|
|
||||||
|
|
@ -14,42 +18,57 @@ import com.arsdigita.kernel.Kernel;
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class ConfConverter extends AbstractRisConverter {
|
public class ConfConverter extends AbstractRisConverter<Proceedings, ProceedingsBundle> {
|
||||||
|
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
@Override
|
||||||
final ImporterUtil importerUtil,
|
protected Proceedings createPublication(final boolean pretend) {
|
||||||
final boolean pretend,
|
if (pretend) {
|
||||||
final boolean publishNewItems) {
|
return null;
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
} else {
|
||||||
report.setType(Proceedings.BASE_DATA_OBJECT_TYPE);
|
return new Proceedings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final Proceedings proceedings = new Proceedings();
|
@Override
|
||||||
proceedings.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected ProceedingsBundle createBundle(final Proceedings publication, final boolean pretend) {
|
||||||
final ProceedingsBundle bundle = new ProceedingsBundle(proceedings);
|
if (pretend) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new ProceedingsBundle(publication);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processTitle(dataset, proceedings, report, pretend);
|
@Override
|
||||||
|
protected void processFields(final RisDataset dataset,
|
||||||
|
final Proceedings 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, RisField.C2, pretend, proceedings, report);
|
fieldUtil.processTitle(dataset, publication, importReport);
|
||||||
|
|
||||||
processAuthors(dataset, RisField.AU, importerUtil, proceedings, report, pretend);
|
fieldUtil.processIntField(dataset, RisField.C2, publication, "year", importReport);
|
||||||
|
|
||||||
processEditors(dataset, RisField.A2, importerUtil, proceedings, report, pretend);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
|
authorUtil.processEditors(dataset, RisField.A2, publication, importReport);
|
||||||
|
|
||||||
processSeries(dataset, RisField.T3, proceedings, importerUtil, pretend, report);
|
seriesUtil.processSeries(dataset, RisField.T3, publication, importReport);
|
||||||
|
|
||||||
processPublisher(dataset, RisField.PB, RisField.C1, pretend, proceedings, importerUtil, report);
|
orgaUtil.processPublisher(dataset, RisField.PB, RisField.C1, publication, importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.AB, proceedings, "abstract", report, pretend);
|
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||||
processField(dataset, RisField.CY, proceedings, "placeOfConference", report, pretend);
|
fieldUtil.processField(dataset, RisField.CY, publication, "placeOfConference", importReport);
|
||||||
processDateField(dataset, RisField.DA, proceedings, "dateFromOfConference", report, pretend);
|
fieldUtil.processDateField(dataset, RisField.DA, publication, "dateFromOfConference", importReport);
|
||||||
processField(dataset, RisField.ET, proceedings, "edition", report, pretend);
|
fieldUtil.processField(dataset, RisField.ET, publication, "edition", importReport);
|
||||||
processNumberOfVolumes(dataset, pretend, proceedings, report);
|
fieldUtil.processIntField(dataset, RisField.NV, publication, "numberOfVolumes", importReport);
|
||||||
processField(dataset, RisField.SN, proceedings, "isbn", report, pretend);
|
fieldUtil.processField(dataset, RisField.SN, publication, "isbn", importReport);
|
||||||
processNumberOfPages(dataset, pretend, proceedings, report);
|
fieldUtil.processIntField(dataset, RisField.SP, publication, "numberOfPages", importReport);
|
||||||
processField(dataset, RisField.T2, proceedings, "nameOfConference", report, pretend);
|
fieldUtil.processField(dataset, RisField.T2, publication, "nameOfConference", importReport);
|
||||||
processVolume(dataset, pretend, proceedings, report);
|
fieldUtil.processIntField(dataset, RisField.VL, publication, "volume", importReport);
|
||||||
|
|
||||||
return report;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public RisType getRisType() {
|
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.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class CpaperConverter extends AbstractRisConverter {
|
public class CpaperConverter extends AbstractRisConverter<InProceedings, InProceedingsBundle> {
|
||||||
|
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
@Override
|
||||||
final ImporterUtil importerUtil,
|
protected InProceedings createPublication(final boolean pretend) {
|
||||||
final boolean pretend,
|
if (pretend) {
|
||||||
final boolean publishNewItems) {
|
return null;
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
} else {
|
||||||
report.setType(InProceedings.BASE_DATA_OBJECT_TYPE);
|
return new InProceedings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final InProceedings inProceedings = new InProceedings();
|
@Override
|
||||||
inProceedings.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected InProceedingsBundle createBundle(final InProceedings publication,
|
||||||
final InProceedingsBundle bundle = new InProceedingsBundle(inProceedings);
|
final boolean pretend) {
|
||||||
|
if (pretend) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new InProceedingsBundle(publication);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processTitle(dataset, inProceedings, report, pretend);
|
@Override
|
||||||
|
protected void processFields(final RisDataset dataset,
|
||||||
|
final InProceedings publication,
|
||||||
|
final ImporterUtil importerUtil,
|
||||||
|
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);
|
||||||
|
|
||||||
processYear(dataset, pretend, inProceedings, report);
|
fieldUtil.processTitle(dataset, publication, importReport);
|
||||||
|
|
||||||
processAuthors(dataset, RisField.AU, importerUtil, inProceedings, report, pretend);
|
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||||
|
|
||||||
processProceedings(dataset, RisField.T2, RisField.PY, RisField.T2, RisField.A2, RisField.PB, RisField.C1,
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
inProceedings, importerUtil, pretend, report);
|
|
||||||
|
|
||||||
processField(dataset, RisField.AB, inProceedings, "abstract", report, pretend);
|
colVolUtil.processProceedings(dataset, RisField.T2, RisField.PY, RisField.T2, RisField.A2, RisField.PB,
|
||||||
|
RisField.C1,
|
||||||
|
publication, importReport);
|
||||||
|
|
||||||
processPages(dataset, RisField.SP, inProceedings, pretend, report);
|
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||||
|
|
||||||
return report;
|
fieldUtil.processPages(dataset, RisField.SP, publication, importReport);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RisType getRisType() {
|
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.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
import com.arsdigita.kernel.Kernel;
|
||||||
|
|
||||||
|
|
@ -15,42 +19,53 @@ import com.arsdigita.kernel.Kernel;
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class EbookConverter extends AbstractRisConverter {
|
public class EbookConverter extends AbstractRisConverter<Monograph, PublicationWithPublisherBundle> {
|
||||||
|
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
@Override
|
||||||
final ImporterUtil importerUtil,
|
protected Monograph createPublication(final boolean pretend) {
|
||||||
final boolean pretend,
|
if (pretend) {
|
||||||
final boolean publishNewItems) {
|
return null;
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
} else {
|
||||||
report.setType(Monograph.BASE_DATA_OBJECT_TYPE);
|
return new Monograph();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final Monograph monograph = new Monograph();
|
@Override
|
||||||
monograph.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected PublicationWithPublisherBundle createBundle(final Monograph publication,
|
||||||
final PublicationWithPublisherBundle bundle = new PublicationWithPublisherBundle(monograph);
|
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);
|
seriesUtil.processSeries(dataset, RisField.T2, publication, importReport);
|
||||||
|
|
||||||
return report;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public RisType getRisType() {
|
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.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
import com.arsdigita.kernel.Kernel;
|
||||||
|
|
||||||
|
|
@ -14,36 +17,51 @@ import com.arsdigita.kernel.Kernel;
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class EdbookConverter extends AbstractRisConverter {
|
public class EdbookConverter extends AbstractRisConverter<CollectedVolume, CollectedVolumeBundle> {
|
||||||
|
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
@Override
|
||||||
final ImporterUtil importerUtil,
|
protected CollectedVolume createPublication(final boolean pretend) {
|
||||||
final boolean pretend,
|
if (pretend) {
|
||||||
final boolean publishNewItems) {
|
return null;
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
} else {
|
||||||
report.setType(CollectedVolume.BASE_DATA_OBJECT_TYPE);
|
return new CollectedVolume();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final CollectedVolume collectedVolume = new CollectedVolume();
|
@Override
|
||||||
collectedVolume.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected CollectedVolumeBundle createBundle(final CollectedVolume publication,
|
||||||
final CollectedVolumeBundle bundle = new CollectedVolumeBundle(collectedVolume);
|
final boolean pretend) {
|
||||||
|
if (pretend) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new CollectedVolumeBundle(publication);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processTitle(dataset, collectedVolume, report, pretend);
|
@Override
|
||||||
|
protected void processFields(final RisDataset dataset,
|
||||||
|
final CollectedVolume 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);
|
||||||
|
|
||||||
processEditors(dataset, RisField.AU, importerUtil, collectedVolume, report, pretend);
|
fieldUtil.processTitle(dataset, publication, importReport);
|
||||||
|
|
||||||
processYear(dataset, pretend, collectedVolume, report);
|
authorUtil.processEditors(dataset, RisField.AU, publication, importReport);
|
||||||
|
|
||||||
processPublisher(dataset, pretend, collectedVolume, importerUtil, report);
|
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.AB, collectedVolume, "abstract", report, pretend);
|
orgaUtil.processPublisher(dataset, RisField.PB, RisField.CY, publication, importReport);
|
||||||
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);
|
|
||||||
|
|
||||||
|
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||||
return report;
|
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() {
|
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.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisConverter;
|
import com.arsdigita.cms.scipublications.importer.ris.RisConverter;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
import com.arsdigita.kernel.Kernel;
|
||||||
|
|
||||||
|
|
@ -16,42 +19,56 @@ import com.arsdigita.kernel.Kernel;
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class EjourConverter extends AbstractRisConverter implements RisConverter {
|
public class EjourConverter extends AbstractRisConverter<ArticleInJournal, ArticleInJournalBundle> {
|
||||||
|
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
@Override
|
||||||
final ImporterUtil importerUtil,
|
protected ArticleInJournal createPublication(final boolean pretend) {
|
||||||
final boolean pretend,
|
if (pretend) {
|
||||||
final boolean publishNewItems) {
|
return null;
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
} else {
|
||||||
report.setType(ArticleInJournal.BASE_DATA_OBJECT_TYPE);
|
return new ArticleInJournal();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final ArticleInJournal article = new ArticleInJournal();
|
@Override
|
||||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected ArticleInJournalBundle createBundle(final ArticleInJournal publication,
|
||||||
final ArticleInJournalBundle bundle = new ArticleInJournalBundle(article);
|
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);
|
||||||
|
|
||||||
return report;
|
fieldUtil.processField(dataset, RisField.VL, publication, "volume", importReport);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RisType getRisType() {
|
public RisType getRisType() {
|
||||||
return RisType.EJOUR;
|
return RisType.EJOUR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,15 @@
|
||||||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
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.InternetArticle;
|
||||||
import com.arsdigita.cms.contenttypes.InternetArticleBundle;
|
import com.arsdigita.cms.contenttypes.InternetArticleBundle;
|
||||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
import com.arsdigita.kernel.Kernel;
|
||||||
|
|
||||||
|
|
@ -14,44 +18,57 @@ import com.arsdigita.kernel.Kernel;
|
||||||
* @author Jens Pelzetter
|
* @author Jens Pelzetter
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class ElecConverter extends AbstractRisConverter {
|
public class ElecConverter extends AbstractRisConverter<InternetArticle, InternetArticleBundle> {
|
||||||
|
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
@Override
|
||||||
final ImporterUtil importerUtil,
|
protected InternetArticle createPublication(final boolean pretend) {
|
||||||
final boolean pretend,
|
if (pretend) {
|
||||||
final boolean publishNewItems) {
|
return null;
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
} else {
|
||||||
report.setType(InternetArticle.BASE_DATA_OBJECT_TYPE);
|
return new InternetArticle();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final InternetArticle article = new InternetArticle();
|
@Override
|
||||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected InternetArticleBundle createBundle(final InternetArticle publication, final boolean pretend) {
|
||||||
final InternetArticleBundle bundle = new InternetArticleBundle(article);
|
if (pretend) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new InternetArticleBundle(publication);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processTitle(dataset, article, report, pretend);
|
@Override
|
||||||
|
protected void processFields(final RisDataset dataset,
|
||||||
|
final InternetArticle publication,
|
||||||
|
final ImporterUtil importerUtil,
|
||||||
|
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);
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
processSeries(dataset, RisField.T2, article, importerUtil, pretend, report);
|
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.CY, article, "place", report, pretend);
|
seriesUtil.processSeries(dataset, RisField.T2, publication, importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.DO, article, "doi", report, pretend);
|
fieldUtil.processField(dataset, RisField.CY, publication, "place", importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.ET, article, "edition", report, pretend);
|
fieldUtil.processField(dataset, RisField.DO, publication, "doi", importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.UR, article, "url", report, pretend);
|
fieldUtil.processField(dataset, RisField.ET, publication, "edition", importReport);
|
||||||
|
|
||||||
return report;
|
fieldUtil.processField(dataset, RisField.UR, publication, "url", importReport);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RisType getRisType() {
|
public RisType getRisType() {
|
||||||
return RisType.ELEC;
|
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.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class EncycConverter extends AbstractRisConverter {
|
public class EncycConverter extends AbstractRisConverter<ArticleInCollectedVolume, ArticleInCollectedVolumeBundle> {
|
||||||
|
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
@Override
|
||||||
final ImporterUtil importerUtil,
|
protected ArticleInCollectedVolume createPublication(final boolean pretend) {
|
||||||
final boolean pretend,
|
if (pretend) {
|
||||||
final boolean publishNewItems) {
|
return null;
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
} else {
|
||||||
report.setType(ArticleInCollectedVolume.BASE_DATA_OBJECT_TYPE);
|
return new ArticleInCollectedVolume();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final ArticleInCollectedVolume article = new ArticleInCollectedVolume();
|
@Override
|
||||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected ArticleInCollectedVolumeBundle createBundle(final ArticleInCollectedVolume publication,
|
||||||
ArticleInCollectedVolumeBundle bundle = new ArticleInCollectedVolumeBundle(article);
|
final boolean pretend) {
|
||||||
|
if (pretend) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new ArticleInCollectedVolumeBundle(publication);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processTitle(dataset, article, report, pretend);
|
@Override
|
||||||
|
protected void processFields(final RisDataset dataset,
|
||||||
|
final ArticleInCollectedVolume publication,
|
||||||
|
final ImporterUtil importerUtil,
|
||||||
|
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);
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
processCollectedVolume(dataset, RisField.T2, RisField.PY, RisField.A2, RisField.CY, RisField.PB, RisField.ET,
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
article, importerUtil, pretend, report);
|
|
||||||
|
|
||||||
processField(dataset, RisField.C1, article, "chapter", report, pretend);
|
colVolUtil.processCollectedVolume(dataset, RisField.T2, RisField.PY, RisField.A2, RisField.CY, RisField.PB,
|
||||||
processField(dataset, RisField.AB, article, "abstract", report, pretend);
|
RisField.ET,
|
||||||
processPages(dataset, RisField.SP, article, pretend, report);
|
publication, importReport);
|
||||||
|
|
||||||
|
fieldUtil.processField(dataset, RisField.C1, publication, "chapter", importReport);
|
||||||
|
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||||
return report;
|
fieldUtil.processPages(dataset, RisField.SP, publication, importReport);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RisType getRisType() {
|
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.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converter for the RIS type {@code GEN} to the SciPublications {@link GreyLiterature}
|
* 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>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class GenConverter extends AbstractRisConverter {
|
public class GenConverter extends AbstractRisConverter<Monograph, PublicationWithPublisherBundle> {
|
||||||
|
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
@Override
|
||||||
final ImporterUtil importerUtil,
|
protected Monograph createPublication(final boolean pretend) {
|
||||||
final boolean pretend,
|
if (pretend) {
|
||||||
final boolean publishNewItems) {
|
return null;
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
} else {
|
||||||
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
|
return new Monograph();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final Monograph publication = new Monograph();
|
@Override
|
||||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected PublicationWithPublisherBundle createBundle(final Monograph publication, final boolean pretend) {
|
||||||
final PublicationWithPublisherBundle bundle = new PublicationWithPublisherBundle(publication);
|
if (pretend) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new PublicationWithPublisherBundle(publication);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processTitle(dataset, publication, 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);
|
||||||
|
|
||||||
processYear(dataset, pretend, publication, report);
|
fieldUtil.processTitle(dataset, publication, importReport);
|
||||||
|
|
||||||
processAuthors(dataset, RisField.AU, importerUtil, publication, report, pretend);
|
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||||
processAuthors(dataset, RisField.A2, importerUtil, publication, report, pretend);
|
|
||||||
processAuthors(dataset, RisField.A3, importerUtil, publication, report, pretend);
|
|
||||||
processAuthors(dataset, RisField.A4, importerUtil, publication, report, pretend);
|
|
||||||
|
|
||||||
processPublisher(dataset, pretend, publication, importerUtil, 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);
|
||||||
|
|
||||||
processField(dataset, RisField.AB, publication, "abstract", report, pretend);
|
orgaUtil.processPublisher(dataset, RisField.PY, RisField.CY, publication, importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.ET, publication, "edition", report, pretend);
|
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.SN, publication, "isbn", report, pretend);
|
fieldUtil.processField(dataset, RisField.ET, publication, "edition", importReport);
|
||||||
|
|
||||||
processNumberOfPages(dataset, pretend, publication, report);
|
fieldUtil.processField(dataset, RisField.SN, publication, "isbn", importReport);
|
||||||
|
|
||||||
processNumberOfVolumes(dataset, pretend, publication, report);
|
fieldUtil.processIntField(dataset, RisField.SP, publication, "numberOfPages", importReport);
|
||||||
|
|
||||||
processVolume(dataset, pretend, publication, report);
|
fieldUtil.processIntField(dataset, RisField.NV, publication, "numberOfVolumes", importReport);
|
||||||
|
|
||||||
return report;
|
fieldUtil.processIntField(dataset, RisField.VL, publication, "volume", importReport);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RisType getRisType() {
|
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.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
import com.arsdigita.kernel.Kernel;
|
||||||
|
|
||||||
|
|
@ -14,39 +17,52 @@ import com.arsdigita.kernel.Kernel;
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class JourConverter extends AbstractRisConverter {
|
public class JourConverter extends AbstractRisConverter<ArticleInJournal, ArticleInJournalBundle> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
protected ArticleInJournal createPublication(final boolean pretend) {
|
||||||
final ImporterUtil importerUtil,
|
if (pretend) {
|
||||||
final boolean pretend,
|
return null;
|
||||||
final boolean publishNewItems) {
|
} else {
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
return new ArticleInJournal();
|
||||||
report.setType(ArticleInJournal.BASE_DATA_OBJECT_TYPE);
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final ArticleInJournal article = new ArticleInJournal();
|
@Override
|
||||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected ArticleInJournalBundle createBundle(final ArticleInJournal publication, final boolean pretend) {
|
||||||
final ArticleInJournalBundle bundle = new ArticleInJournalBundle(article);
|
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
|
@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.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class RprtConverter extends AbstractRisConverter {
|
public class RprtConverter extends AbstractRisConverter<GreyLiterature, UnPublishedBundle> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
protected GreyLiterature createPublication(final boolean pretend) {
|
||||||
final ImporterUtil importerUtil,
|
if (pretend) {
|
||||||
final boolean pretend,
|
return null;
|
||||||
final boolean publishNewItems) {
|
} else {
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
return new GreyLiterature();
|
||||||
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final GreyLiterature publication = new GreyLiterature();
|
@Override
|
||||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected UnPublishedBundle createBundle(final GreyLiterature publication,
|
||||||
final UnPublishedBundle bundle = new UnPublishedBundle(publication);
|
final boolean pretend) {
|
||||||
|
if (pretend) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new UnPublishedBundle(publication);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processTitle(dataset, publication, report, pretend);
|
@Override
|
||||||
|
protected void processFields(final RisDataset dataset,
|
||||||
|
final GreyLiterature 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, publication, report);
|
fieldUtil.processTitle(dataset, publication, importReport);
|
||||||
|
|
||||||
processAuthors(dataset, RisField.AU, importerUtil, publication, report, pretend);
|
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||||
|
|
||||||
processSeries(dataset, RisField.T2, publication, importerUtil, pretend, report);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
|
|
||||||
processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, report);
|
seriesUtil.processSeries(dataset, RisField.T2, publication, importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.AB, publication, "abstract", report, pretend);
|
orgaUtil.processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, importReport);
|
||||||
processField(dataset, RisField.CY, publication, "place", report, pretend);
|
|
||||||
processField(dataset, RisField.SN, publication, "number", report, pretend);
|
|
||||||
processIntField(dataset, RisField.SP, publication, "numberOfPages", report, pretend);
|
|
||||||
|
|
||||||
|
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||||
return report;
|
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() {
|
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.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
import com.arsdigita.kernel.Kernel;
|
||||||
|
|
||||||
|
|
@ -14,34 +17,46 @@ import com.arsdigita.kernel.Kernel;
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class ThesConverter extends AbstractRisConverter {
|
public class ThesConverter extends AbstractRisConverter<GreyLiterature, UnPublishedBundle> {
|
||||||
|
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
@Override
|
||||||
final ImporterUtil importerUtil,
|
protected GreyLiterature createPublication(final boolean pretend) {
|
||||||
final boolean pretend,
|
if (pretend) {
|
||||||
final boolean publishNewItems) {
|
return null;
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
} else {
|
||||||
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
|
return new GreyLiterature();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final GreyLiterature publication = new GreyLiterature();
|
@Override
|
||||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected UnPublishedBundle createBundle(final GreyLiterature publication, final boolean pretend) {
|
||||||
final UnPublishedBundle bundle = new UnPublishedBundle(publication);
|
if (pretend) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new UnPublishedBundle(publication);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processTitle(dataset, publication, report, pretend);
|
@Override
|
||||||
|
protected void processFields(final RisDataset dataset,
|
||||||
|
final GreyLiterature 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);
|
||||||
|
|
||||||
processYear(dataset, pretend, publication, report);
|
fieldUtil.processTitle(dataset, publication, importReport);
|
||||||
|
|
||||||
processAuthors(dataset, RisField.AU, importerUtil, publication, report, pretend);
|
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.AB, publication, "abstract", report, pretend);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
processField(dataset, RisField.CY, publication, "place", report, pretend);
|
|
||||||
processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, report);
|
|
||||||
processIntField(dataset, RisField.SP, publication, "numberOfPages", report, pretend);
|
|
||||||
|
|
||||||
|
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);
|
||||||
return report;
|
fieldUtil.processIntField(dataset, RisField.SP, publication, "numberOfPages", importReport);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RisType getRisType() {
|
public RisType getRisType() {
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,17 @@
|
||||||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||||
|
|
||||||
import com.arsdigita.cms.contenttypes.GreyLiterature;
|
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.contenttypes.UnPublishedBundle;
|
||||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
import com.arsdigita.kernel.Kernel;
|
||||||
|
|
||||||
|
|
@ -14,38 +20,51 @@ import com.arsdigita.kernel.Kernel;
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class UnpbConverter extends AbstractRisConverter {
|
public class UnpbConverter extends AbstractRisConverter<GreyLiterature, UnPublishedBundle> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
protected GreyLiterature createPublication(final boolean pretend) {
|
||||||
final ImporterUtil importerUtil,
|
if (pretend) {
|
||||||
final boolean pretend,
|
return null;
|
||||||
final boolean publishNewItems) {
|
} else {
|
||||||
final PublicationImportReport report = new PublicationImportReport();
|
return new GreyLiterature();
|
||||||
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final GreyLiterature publication = new GreyLiterature();
|
@Override
|
||||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
protected UnPublishedBundle createBundle(final GreyLiterature publication,
|
||||||
final UnPublishedBundle bundle = new UnPublishedBundle(publication);
|
final boolean pretend) {
|
||||||
|
if (pretend) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new UnPublishedBundle(publication);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
processTitle(dataset, publication, report, pretend);
|
@Override
|
||||||
|
protected void processFields(final RisDataset dataset,
|
||||||
|
final GreyLiterature 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, publication, report);
|
fieldUtil.processTitle(dataset, publication, importReport);
|
||||||
|
|
||||||
processAuthors(dataset, RisField.AU, importerUtil, publication, report, pretend);
|
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||||
|
|
||||||
processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, report);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
|
|
||||||
processSeries(dataset, RisField.T2, publication, importerUtil, pretend, report);
|
orgaUtil.processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, importReport);
|
||||||
|
|
||||||
processField(dataset, RisField.AB, publication, "abstract", report, pretend);
|
seriesUtil.processSeries(dataset, RisField.T2, publication, importReport);
|
||||||
processField(dataset, RisField.CY, publication, "place", report, pretend);
|
|
||||||
processField(dataset, RisField.M1, publication, "number", report, pretend);
|
|
||||||
processIntField(dataset, RisField.SP, publication, "numberOfPages", report, pretend);
|
|
||||||
|
|
||||||
|
fieldUtil.processField(dataset, RisField.AB, publication, "abstract", importReport);
|
||||||
|
fieldUtil.processField(dataset, RisField.CY, publication, "place", importReport);
|
||||||
return report;
|
fieldUtil.processField(dataset, RisField.M1, publication, "number", importReport);
|
||||||
|
fieldUtil.processIntField(dataset, RisField.SP, publication, "numberOfPages", importReport);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RisType getRisType() {
|
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