RIS Importer for publications: First alpha version
git-svn-id: https://svn.libreccm.org/ccm/trunk@2033 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
ba2b3c0a7e
commit
056c0dbbf6
|
|
@ -1,2 +1,20 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters.BookConverter
|
||||
package com.arsdigita.cms.scipublications.importer.ris.converters.EbookConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.AbstConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.BlogConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.BookConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.ChapConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.ConfConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.CpaperConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.EbookConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.EchapConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.EdbookConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.EjourConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.ElecConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.EncycConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.GenConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.InprConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.JfullConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.JourConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.MgznConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.RprtConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.ThesConverter
|
||||
com.arsdigita.cms.scipublications.importer.ris.converters.UnpbConverter
|
||||
|
|
@ -349,6 +349,10 @@ public enum RisField {
|
|||
C3,
|
||||
C4,
|
||||
C5,
|
||||
/**
|
||||
* Chapter
|
||||
*/
|
||||
SE,
|
||||
/**
|
||||
* Number of volumes
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -42,6 +42,10 @@ public enum RisType {
|
|||
* Bill/Resolution
|
||||
*/
|
||||
BILL,
|
||||
/**
|
||||
* BLOG
|
||||
*/
|
||||
BLOG,
|
||||
/**
|
||||
* Book, Whole
|
||||
*/
|
||||
|
|
@ -94,6 +98,10 @@ public enum RisType {
|
|||
* Eletronic Article
|
||||
*/
|
||||
EJOUR,
|
||||
/**
|
||||
* Encylopdia
|
||||
*/
|
||||
ENCYC,
|
||||
/**
|
||||
* Generic
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.arsdigita.cms.scipublications.importer.ris;
|
|||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* Interface for importing RisConverter.
|
||||
|
|
@ -35,4 +36,6 @@ public interface RisConverter {
|
|||
*/
|
||||
RisType getRisType();
|
||||
|
||||
// BigDecimal getFolderId();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,4 +35,7 @@ public class RisDataset {
|
|||
return Collections.unmodifiableMap(values);
|
||||
}
|
||||
|
||||
public void addField(final RisField field, final List<String> value) {
|
||||
values.put(field, value);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public class RisImporter implements SciPublicationsImporter {
|
|||
|
||||
public ImportReport importPublications(final String publications,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) throws SciPublicationsImportException {
|
||||
final boolean publishNewItems) throws SciPublicationsImportException {
|
||||
final String[] lines = publications.split("\r\n");
|
||||
|
||||
final RisParser parser = new RisParser();
|
||||
|
|
@ -47,9 +47,13 @@ public class RisImporter implements SciPublicationsImporter {
|
|||
|
||||
final ImporterUtil importerUtil = new ImporterUtil(publishNewItems);
|
||||
|
||||
try {
|
||||
for (RisDataset dataset : datasets) {
|
||||
processPublication(dataset, report, importerUtil, pretend, publishNewItems);
|
||||
}
|
||||
} catch(Exception ex) {
|
||||
ex.printStackTrace(System.out);
|
||||
}
|
||||
|
||||
return report;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ public class RisParser {
|
|||
public List<RisDataset> parse(final String[] lines) throws SciPublicationsImportException {
|
||||
final List<RisDataset> entries = new ArrayList<RisDataset>();
|
||||
boolean openDataset = false;
|
||||
RisField lastField = null;
|
||||
|
||||
RisFieldValue field;
|
||||
for (int i = 0; i < lines.length; i++) {
|
||||
|
|
@ -42,16 +43,21 @@ public class RisParser {
|
|||
}
|
||||
} else if (RisField.ER.equals(field.getName())) {
|
||||
openDataset = false;
|
||||
} else if(field.getName() == null) {
|
||||
final RisDataset currentDataset = entries.get(entries.size() - 1);
|
||||
final List<String> data = currentDataset.getValues().get(lastField);
|
||||
data.set(data.size() - 1, data.get(data.size() - 1) + field.getValue());
|
||||
} else {
|
||||
final RisDataset currentDataset = entries.get(entries.size() - 1);
|
||||
if (currentDataset.getValues().get(field.getName()) == null) {
|
||||
final List<String> data = new ArrayList<String>();
|
||||
data.add(field.getValue());
|
||||
currentDataset.getValues().put(field.getName(), data);
|
||||
currentDataset.addField(field.getName(), data);
|
||||
} else {
|
||||
final List<String> data = currentDataset.getValues().get(field.getName());
|
||||
data.add(field.getValue());
|
||||
}
|
||||
lastField = field.getName();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -75,12 +81,11 @@ public class RisParser {
|
|||
tokens[0], index + 1), ex);
|
||||
}
|
||||
|
||||
return new RisFieldValue(fieldName, line);
|
||||
return new RisFieldValue(fieldName, tokens[1]);
|
||||
} else if ((tokens.length == 1) && RisField.ER.toString().equals(tokens[0])) {
|
||||
return new RisFieldValue(RisField.ER, "");
|
||||
} else {
|
||||
throw new SciPublicationsImportException(String.format("Invalid RIS data in line %d. Aborting import.",
|
||||
index + 1));
|
||||
return new RisFieldValue(null, line);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,14 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.Folder;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInCollectedVolume;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInJournal;
|
||||
import com.arsdigita.cms.contenttypes.InProceedings;
|
||||
import com.arsdigita.cms.contenttypes.InternetArticle;
|
||||
import com.arsdigita.cms.contenttypes.Publication;
|
||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
||||
import com.arsdigita.cms.contenttypes.PublicationWithPublisher;
|
||||
import com.arsdigita.cms.contenttypes.UnPublished;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.importer.report.AuthorImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.FieldImportReport;
|
||||
|
|
@ -13,6 +18,7 @@ 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.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
@ -22,6 +28,17 @@ import java.util.List;
|
|||
*/
|
||||
public abstract class AbstractRisConverter implements RisConverter {
|
||||
|
||||
// protected void setFolder(final Publication publication, final PublicationBundle bundle) {
|
||||
// final Folder folder = new Folder(getFolderId());
|
||||
// bundle.setParent(folder);
|
||||
// bundle.setContentSection(folder.getContentSection());
|
||||
// publication.setContentSection(folder.getContentSection());
|
||||
// }
|
||||
|
||||
protected void assignCategories(final PublicationBundle bundle) {
|
||||
//ToDo
|
||||
}
|
||||
|
||||
protected void processField(final RisDataset dataset,
|
||||
final RisField field,
|
||||
final Publication publication,
|
||||
|
|
@ -57,12 +74,65 @@ public abstract class AbstractRisConverter implements RisConverter {
|
|||
}
|
||||
}
|
||||
|
||||
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) {
|
||||
publication.setTitle(dataset.getValues().get(RisField.TI).get(0));
|
||||
publication.setTitle(dataset.getValues().get(RisField.TI).get(0));
|
||||
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,
|
||||
|
|
@ -139,8 +209,18 @@ public abstract class AbstractRisConverter implements RisConverter {
|
|||
final PublicationWithPublisher publication,
|
||||
final ImporterUtil importerUtil,
|
||||
final PublicationImportReport report) {
|
||||
final List<String> publisherList = dataset.getValues().get(RisField.PB);
|
||||
final List<String> placeList = dataset.getValues().get(RisField.CY);
|
||||
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;
|
||||
|
|
@ -160,6 +240,46 @@ public abstract class AbstractRisConverter implements RisConverter {
|
|||
}
|
||||
}
|
||||
|
||||
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,
|
||||
|
|
@ -216,7 +336,15 @@ public abstract class AbstractRisConverter implements RisConverter {
|
|||
final boolean pretend,
|
||||
final Publication publication,
|
||||
final PublicationImportReport report) {
|
||||
final String yearStr = dataset.getValues().get(RisField.PY).get(0);
|
||||
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);
|
||||
|
|
@ -255,22 +383,22 @@ public abstract class AbstractRisConverter implements RisConverter {
|
|||
|
||||
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) {
|
||||
}
|
||||
|
||||
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,
|
||||
|
|
@ -287,28 +415,66 @@ public abstract class AbstractRisConverter implements RisConverter {
|
|||
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 collVolEditor : colVolEditors) {
|
||||
final String[] tokens = collVolEditor.split(",");
|
||||
|
||||
|
||||
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),
|
||||
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,
|
||||
|
|
@ -351,4 +517,5 @@ public abstract class AbstractRisConverter implements RisConverter {
|
|||
dataset.getFirstLine()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,57 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.InternetArticle;
|
||||
import com.arsdigita.cms.contenttypes.InternetArticleBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class BlogConverter extends AbstractRisConverter {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(InternetArticle.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final InternetArticle article = new InternetArticle();
|
||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final InternetArticleBundle bundle = new InternetArticleBundle(article);
|
||||
|
||||
processTitle(dataset, article, report, pretend);
|
||||
|
||||
processYear(dataset, pretend, article, report);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, article, report, pretend);
|
||||
|
||||
processEditors(dataset, RisField.A2, importerUtil, article, report, pretend);
|
||||
|
||||
processField(dataset, RisField.AB, article, "abstract", report, pretend);
|
||||
processField(dataset, RisField.CY, article, "place", report, pretend);
|
||||
processField(dataset, RisField.ET, article, "edition", report, pretend);
|
||||
|
||||
processOrganization(dataset, RisField.PB, pretend, article, importerUtil, report);
|
||||
processOrganization(dataset, RisField.T3, pretend, article, importerUtil, report);
|
||||
|
||||
processField(dataset, RisField.UR, article, "url", report, pretend);
|
||||
processDateField(dataset, RisField.Y2, article, "lastAccessed", report, pretend);
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
return RisType.BLOG;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,11 +1,13 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.Monograph;
|
||||
import com.arsdigita.cms.contenttypes.PublicationWithPublisherBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
* Converter for the RIS type {@code BOOK} to the SciPublications type {@link Monograph}.
|
||||
|
|
@ -23,6 +25,8 @@ public class BookConverter extends AbstractRisConverter {
|
|||
report.setType(Monograph.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final Monograph monograph = new Monograph();
|
||||
monograph.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final PublicationWithPublisherBundle bundle = new PublicationWithPublisherBundle(monograph);
|
||||
|
||||
processTitle(dataset, monograph, report, pretend);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.ArticleInCollectedVolume;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInCollectedVolumeBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
* Converter for the RIS type {@code CHAP} to the SciPublications type {@link ArticleInCollectedVolume}.
|
||||
|
|
@ -23,6 +25,8 @@ public class ChapConverter extends AbstractRisConverter {
|
|||
report.setType(ArticleInCollectedVolume.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final ArticleInCollectedVolume article = new ArticleInCollectedVolume();
|
||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final ArticleInCollectedVolumeBundle bundle = new ArticleInCollectedVolumeBundle(article);
|
||||
|
||||
processTitle(dataset, article, report, pretend);
|
||||
|
||||
|
|
@ -42,8 +46,9 @@ public class ChapConverter extends AbstractRisConverter {
|
|||
pretend,
|
||||
report);
|
||||
|
||||
processField(dataset, RisField.SE, article, "chapter", report, pretend);
|
||||
processField(dataset, RisField.AB, article, "abstract", report, pretend);
|
||||
processPages(dataset, RisField.ID, article, pretend, report);
|
||||
processPages(dataset, RisField.SP, article, pretend, report);
|
||||
|
||||
return report;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,59 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.Proceedings;
|
||||
import com.arsdigita.cms.contenttypes.ProceedingsBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ConfConverter extends AbstractRisConverter {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(Proceedings.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final Proceedings proceedings = new Proceedings();
|
||||
proceedings.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final ProceedingsBundle bundle = new ProceedingsBundle(proceedings);
|
||||
|
||||
processTitle(dataset, proceedings, report, pretend);
|
||||
|
||||
processYear(dataset, RisField.C2, pretend, proceedings, report);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, proceedings, report, pretend);
|
||||
|
||||
processEditors(dataset, RisField.A2, importerUtil, proceedings, report, pretend);
|
||||
|
||||
processSeries(dataset, RisField.T3, proceedings, importerUtil, pretend, report);
|
||||
|
||||
processPublisher(dataset, RisField.PB, RisField.C1, pretend, proceedings, importerUtil, report);
|
||||
|
||||
processField(dataset, RisField.AB, proceedings, "abstract", report, pretend);
|
||||
processField(dataset, RisField.CY, proceedings, "placeOfConference", report, pretend);
|
||||
processDateField(dataset, RisField.DA, proceedings, "dateFromOfConference", report, pretend);
|
||||
processField(dataset, RisField.ET, proceedings, "edition", report, pretend);
|
||||
processNumberOfVolumes(dataset, pretend, proceedings, report);
|
||||
processField(dataset, RisField.SN, proceedings, "isbn", report, pretend);
|
||||
processNumberOfPages(dataset, pretend, proceedings, report);
|
||||
processField(dataset, RisField.T2, proceedings, "nameOfConference", report, pretend);
|
||||
processVolume(dataset, pretend, proceedings, report);
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
return RisType.CONF;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.InProceedings;
|
||||
import com.arsdigita.cms.contenttypes.InProceedingsBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class CpaperConverter extends AbstractRisConverter {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(InProceedings.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final InProceedings inProceedings = new InProceedings();
|
||||
inProceedings.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final InProceedingsBundle bundle = new InProceedingsBundle(inProceedings);
|
||||
|
||||
processTitle(dataset, inProceedings, report, pretend);
|
||||
|
||||
processYear(dataset, pretend, inProceedings, report);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, inProceedings, report, pretend);
|
||||
|
||||
processProceedings(dataset, RisField.T2, RisField.PY, RisField.T2, RisField.A2, RisField.PB, RisField.C1,
|
||||
inProceedings, importerUtil, pretend, report);
|
||||
|
||||
processField(dataset, RisField.AB, inProceedings, "abstract", report, pretend);
|
||||
|
||||
processPages(dataset, RisField.SP, inProceedings, pretend, report);
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
return RisType.CPAPER;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,11 +1,13 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.Monograph;
|
||||
import com.arsdigita.cms.contenttypes.PublicationWithPublisherBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
* Converter for the RIS type {@code EBOOK} to the SciPublications type {@link Monograph}.
|
||||
|
|
@ -23,6 +25,8 @@ public class EbookConverter extends AbstractRisConverter {
|
|||
report.setType(Monograph.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final Monograph monograph = new Monograph();
|
||||
monograph.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final PublicationWithPublisherBundle bundle = new PublicationWithPublisherBundle(monograph);
|
||||
|
||||
processTitle(dataset, monograph, report, pretend);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.CollectedVolume;
|
||||
import com.arsdigita.cms.contenttypes.CollectedVolumeBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class EdbookConverter extends AbstractRisConverter {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(CollectedVolume.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final CollectedVolume collectedVolume = new CollectedVolume();
|
||||
collectedVolume.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final CollectedVolumeBundle bundle = new CollectedVolumeBundle(collectedVolume);
|
||||
|
||||
processTitle(dataset, collectedVolume, report, pretend);
|
||||
|
||||
processEditors(dataset, RisField.AU, importerUtil, collectedVolume, report, pretend);
|
||||
|
||||
processYear(dataset, pretend, collectedVolume, report);
|
||||
|
||||
processPublisher(dataset, pretend, collectedVolume, importerUtil, report);
|
||||
|
||||
processField(dataset, RisField.AB, collectedVolume, "abstract", report, pretend);
|
||||
processField(dataset, RisField.ET, collectedVolume, "edition", report, pretend);
|
||||
processNumberOfVolumes(dataset, pretend, collectedVolume, report);
|
||||
processField(dataset, RisField.SN, collectedVolume, "isbn", report, pretend);
|
||||
processNumberOfPages(dataset, pretend, collectedVolume, report);
|
||||
processVolume(dataset, pretend, collectedVolume, report);
|
||||
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
return RisType.EDBOOK;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,12 +1,14 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.ArticleInJournal;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInJournalBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisConverter;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
* Converter for the RIS {@code EJOUR} to the SciPublications type {@link ArticleInJournal}
|
||||
|
|
@ -24,6 +26,8 @@ public class EjourConverter extends AbstractRisConverter implements RisConverter
|
|||
report.setType(ArticleInJournal.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final ArticleInJournal article = new ArticleInJournal();
|
||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final ArticleInJournalBundle bundle = new ArticleInJournalBundle(article);
|
||||
|
||||
processTitle(dataset, article, report, pretend);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.InternetArticle;
|
||||
import com.arsdigita.cms.contenttypes.InternetArticleBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -22,6 +24,8 @@ public class ElecConverter extends AbstractRisConverter {
|
|||
report.setType(InternetArticle.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final InternetArticle article = new InternetArticle();
|
||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final InternetArticleBundle bundle = new InternetArticleBundle(article);
|
||||
|
||||
processTitle(dataset, article, report, pretend);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.ArticleInCollectedVolume;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInCollectedVolumeBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class EncycConverter extends AbstractRisConverter {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(ArticleInCollectedVolume.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final ArticleInCollectedVolume article = new ArticleInCollectedVolume();
|
||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
ArticleInCollectedVolumeBundle bundle = new ArticleInCollectedVolumeBundle(article);
|
||||
|
||||
processTitle(dataset, article, report, pretend);
|
||||
|
||||
processYear(dataset, pretend, article, report);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, article, report, pretend);
|
||||
|
||||
processCollectedVolume(dataset, RisField.T2, RisField.PY, RisField.A2, RisField.CY, RisField.PB, RisField.ET,
|
||||
article, importerUtil, pretend, report);
|
||||
|
||||
processField(dataset, RisField.C1, article, "chapter", report, pretend);
|
||||
processField(dataset, RisField.AB, article, "abstract", report, pretend);
|
||||
processPages(dataset, RisField.SP, article, pretend, report);
|
||||
|
||||
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
return RisType.ENCYC;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -2,11 +2,13 @@ package com.arsdigita.cms.scipublications.importer.ris.converters;
|
|||
|
||||
import com.arsdigita.cms.contenttypes.GreyLiterature;
|
||||
import com.arsdigita.cms.contenttypes.Monograph;
|
||||
import com.arsdigita.cms.contenttypes.PublicationWithPublisherBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
* Converter for the RIS type {@code GEN} to the SciPublications {@link GreyLiterature}
|
||||
|
|
@ -24,6 +26,8 @@ public class GenConverter extends AbstractRisConverter {
|
|||
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final Monograph publication = new Monograph();
|
||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final PublicationWithPublisherBundle bundle = new PublicationWithPublisherBundle(publication);
|
||||
|
||||
processTitle(dataset, publication, report, pretend);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.ArticleInJournal;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInJournalBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -23,6 +25,8 @@ public class JourConverter extends AbstractRisConverter {
|
|||
report.setType(ArticleInJournal.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final ArticleInJournal article = new ArticleInJournal();
|
||||
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final ArticleInJournalBundle bundle = new ArticleInJournalBundle(article);
|
||||
|
||||
processTitle(dataset, article, report, pretend);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class MgznConverter extends JourConverter {
|
||||
|
||||
@Override
|
||||
public RisType getRisType() {
|
||||
return RisType.MGZN;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.GreyLiterature;
|
||||
import com.arsdigita.cms.contenttypes.UnPublishedBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class RprtConverter extends AbstractRisConverter {
|
||||
|
||||
@Override
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final GreyLiterature publication = new GreyLiterature();
|
||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final UnPublishedBundle bundle = new UnPublishedBundle(publication);
|
||||
|
||||
processTitle(dataset, publication, report, pretend);
|
||||
|
||||
processYear(dataset, pretend, publication, report);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, publication, report, pretend);
|
||||
|
||||
processSeries(dataset, RisField.T2, publication, importerUtil, pretend, report);
|
||||
|
||||
processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, report);
|
||||
|
||||
processField(dataset, RisField.AB, publication, "abstract", report, pretend);
|
||||
processField(dataset, RisField.CY, publication, "place", report, pretend);
|
||||
processField(dataset, RisField.SN, publication, "number", report, pretend);
|
||||
processIntField(dataset, RisField.SP, publication, "numberOfPages", report, pretend);
|
||||
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
return RisType.RPRT;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.GreyLiterature;
|
||||
import com.arsdigita.cms.contenttypes.UnPublishedBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ThesConverter extends AbstractRisConverter {
|
||||
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final GreyLiterature publication = new GreyLiterature();
|
||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final UnPublishedBundle bundle = new UnPublishedBundle(publication);
|
||||
|
||||
processTitle(dataset, publication, report, pretend);
|
||||
|
||||
processYear(dataset, pretend, publication, report);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, publication, report, pretend);
|
||||
|
||||
processField(dataset, RisField.AB, publication, "abstract", report, pretend);
|
||||
processField(dataset, RisField.CY, publication, "place", report, pretend);
|
||||
processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, report);
|
||||
processIntField(dataset, RisField.SP, publication, "numberOfPages", report, pretend);
|
||||
|
||||
|
||||
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
return RisType.THES;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.GreyLiterature;
|
||||
import com.arsdigita.cms.contenttypes.UnPublishedBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class UnpbConverter extends AbstractRisConverter {
|
||||
|
||||
@Override
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
final ImporterUtil importerUtil,
|
||||
final boolean pretend,
|
||||
final boolean publishNewItems) {
|
||||
final PublicationImportReport report = new PublicationImportReport();
|
||||
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
final GreyLiterature publication = new GreyLiterature();
|
||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
final UnPublishedBundle bundle = new UnPublishedBundle(publication);
|
||||
|
||||
processTitle(dataset, publication, report, pretend);
|
||||
|
||||
processYear(dataset, pretend, publication, report);
|
||||
|
||||
processAuthors(dataset, RisField.AU, importerUtil, publication, report, pretend);
|
||||
|
||||
processOrganization(dataset, RisField.PB, pretend, publication, importerUtil, report);
|
||||
|
||||
processSeries(dataset, RisField.T2, publication, importerUtil, pretend, report);
|
||||
|
||||
processField(dataset, RisField.AB, publication, "abstract", report, pretend);
|
||||
processField(dataset, RisField.CY, publication, "place", report, pretend);
|
||||
processField(dataset, RisField.M1, publication, "number", report, pretend);
|
||||
processIntField(dataset, RisField.SP, publication, "numberOfPages", report, pretend);
|
||||
|
||||
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
public RisType getRisType() {
|
||||
return RisType.RPRT;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -11,6 +11,7 @@ import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitBundle;
|
|||
import com.arsdigita.cms.contenttypes.GenericPerson;
|
||||
import com.arsdigita.cms.contenttypes.GenericPersonBundle;
|
||||
import com.arsdigita.cms.contenttypes.InProceedings;
|
||||
import com.arsdigita.cms.contenttypes.InternetArticle;
|
||||
import com.arsdigita.cms.contenttypes.Journal;
|
||||
import com.arsdigita.cms.contenttypes.JournalBundle;
|
||||
import com.arsdigita.cms.contenttypes.Proceedings;
|
||||
|
|
@ -27,7 +28,6 @@ import com.arsdigita.cms.lifecycle.LifecycleDefinition;
|
|||
import com.arsdigita.cms.lifecycle.LifecycleDefinitionCollection;
|
||||
import com.arsdigita.cms.scipublications.importer.report.AuthorImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.CollectedVolumeImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.FieldImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.JournalImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.OrganizationalUnitImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.ProceedingsImportReport;
|
||||
|
|
@ -512,6 +512,73 @@ public class ImporterUtil {
|
|||
return report;
|
||||
}
|
||||
|
||||
public OrganizationalUnitImportReport processOrganization(final InternetArticle publication,
|
||||
final String name,
|
||||
final boolean pretend) {
|
||||
final OrganizationalUnitImportReport report = new OrganizationalUnitImportReport();
|
||||
|
||||
final Session session = SessionManager.getSession();
|
||||
final DataCollection collection = session.retrieve(GenericOrganizationalUnit.BASE_DATA_OBJECT_TYPE);
|
||||
collection.addEqualsFilter("title", name);
|
||||
report.setName(name);
|
||||
if (collection.isEmpty()) {
|
||||
if (!pretend) {
|
||||
final Integer folderId = Publication.getConfig().getDefaultOrganizationsFolder();
|
||||
final Folder folder = new Folder(new BigDecimal(folderId));
|
||||
if (folder == null) {
|
||||
throw new IllegalArgumentException("Error getting folder for organizations.");
|
||||
}
|
||||
|
||||
final GenericOrganizationalUnit orga = new GenericOrganizationalUnit(Publication.getConfig().
|
||||
getOrganizationType());
|
||||
orga.setTitle(name);
|
||||
orga.setName(normalizeString(name));
|
||||
orga.setContentSection(folder.getContentSection());
|
||||
orga.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
orga.save();
|
||||
|
||||
final GenericOrganizationalUnitBundle bundle = new GenericOrganizationalUnitBundle(Publication.
|
||||
getConfig().getOrganizationBundleType());
|
||||
bundle.setDefaultLanguage(orga.getLanguage());
|
||||
bundle.setContentType(orga.getContentType());
|
||||
bundle.addInstance(orga);
|
||||
bundle.setName(orga.getName());
|
||||
bundle.setParent(folder);
|
||||
bundle.setContentSection(folder.getContentSection());
|
||||
bundle.save();
|
||||
|
||||
publication.setOrganization(orga);
|
||||
|
||||
if (publish) {
|
||||
publishItem(orga);
|
||||
}
|
||||
|
||||
report.setType(orga.getClass().getName());
|
||||
}
|
||||
|
||||
report.setCreated(true);
|
||||
|
||||
//Special handling for pretend mode
|
||||
if (pretend && createdOrgas.contains(name)) {
|
||||
report.setCreated(false);
|
||||
} else {
|
||||
createdOrgas.add(name);
|
||||
}
|
||||
} else {
|
||||
collection.next();
|
||||
final GenericOrganizationalUnit orga = new GenericOrganizationalUnit(collection.getDataObject());
|
||||
if (!pretend) {
|
||||
publication.setOrganization(orga);
|
||||
}
|
||||
report.setType(orga.getClass().getName());
|
||||
report.setCreated(false);
|
||||
}
|
||||
|
||||
collection.close();
|
||||
return report;
|
||||
}
|
||||
|
||||
|
||||
public SeriesImportReport processSeries(final Publication publication,
|
||||
final String seriesTitle,
|
||||
final boolean pretend) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue