RIS Importer for publications: First alpha version

git-svn-id: https://svn.libreccm.org/ccm/trunk@2033 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2013-01-10 04:53:46 +00:00
parent ba2b3c0a7e
commit 056c0dbbf6
25 changed files with 789 additions and 33 deletions

View File

@ -1,2 +1,20 @@
package com.arsdigita.cms.scipublications.importer.ris.converters.BookConverter com.arsdigita.cms.scipublications.importer.ris.converters.AbstConverter
package com.arsdigita.cms.scipublications.importer.ris.converters.EbookConverter 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

View File

@ -349,6 +349,10 @@ public enum RisField {
C3, C3,
C4, C4,
C5, C5,
/**
* Chapter
*/
SE,
/** /**
* Number of volumes * Number of volumes
*/ */

View File

@ -42,6 +42,10 @@ public enum RisType {
* Bill/Resolution * Bill/Resolution
*/ */
BILL, BILL,
/**
* BLOG
*/
BLOG,
/** /**
* Book, Whole * Book, Whole
*/ */
@ -94,6 +98,10 @@ public enum RisType {
* Eletronic Article * Eletronic Article
*/ */
EJOUR, EJOUR,
/**
* Encylopdia
*/
ENCYC,
/** /**
* Generic * Generic
*/ */

View File

@ -3,6 +3,7 @@ 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.
@ -35,4 +36,6 @@ public interface RisConverter {
*/ */
RisType getRisType(); RisType getRisType();
// BigDecimal getFolderId();
} }

View File

@ -35,4 +35,7 @@ public class RisDataset {
return Collections.unmodifiableMap(values); return Collections.unmodifiableMap(values);
} }
public void addField(final RisField field, final List<String> value) {
values.put(field, value);
}
} }

View File

@ -47,9 +47,13 @@ public class RisImporter implements SciPublicationsImporter {
final ImporterUtil importerUtil = new ImporterUtil(publishNewItems); final ImporterUtil importerUtil = new ImporterUtil(publishNewItems);
try {
for (RisDataset dataset : datasets) { for (RisDataset dataset : datasets) {
processPublication(dataset, report, importerUtil, pretend, publishNewItems); processPublication(dataset, report, importerUtil, pretend, publishNewItems);
} }
} catch(Exception ex) {
ex.printStackTrace(System.out);
}
return report; return report;
} }

View File

@ -22,6 +22,7 @@ public class RisParser {
public List<RisDataset> parse(final String[] lines) throws SciPublicationsImportException { public List<RisDataset> parse(final String[] lines) throws SciPublicationsImportException {
final List<RisDataset> entries = new ArrayList<RisDataset>(); final List<RisDataset> entries = new ArrayList<RisDataset>();
boolean openDataset = false; boolean openDataset = false;
RisField lastField = null;
RisFieldValue field; RisFieldValue field;
for (int i = 0; i < lines.length; i++) { for (int i = 0; i < lines.length; i++) {
@ -42,16 +43,21 @@ public class RisParser {
} }
} else if (RisField.ER.equals(field.getName())) { } else if (RisField.ER.equals(field.getName())) {
openDataset = false; 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 { } else {
final RisDataset currentDataset = entries.get(entries.size() - 1); final RisDataset currentDataset = entries.get(entries.size() - 1);
if (currentDataset.getValues().get(field.getName()) == null) { if (currentDataset.getValues().get(field.getName()) == null) {
final List<String> data = new ArrayList<String>(); final List<String> data = new ArrayList<String>();
data.add(field.getValue()); data.add(field.getValue());
currentDataset.getValues().put(field.getName(), data); currentDataset.addField(field.getName(), data);
} else { } else {
final List<String> data = currentDataset.getValues().get(field.getName()); final List<String> data = currentDataset.getValues().get(field.getName());
data.add(field.getValue()); data.add(field.getValue());
} }
lastField = field.getName();
} }
} }
@ -75,12 +81,11 @@ public class RisParser {
tokens[0], index + 1), ex); 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])) { } else if ((tokens.length == 1) && RisField.ER.toString().equals(tokens[0])) {
return new RisFieldValue(RisField.ER, ""); return new RisFieldValue(RisField.ER, "");
} else { } else {
throw new SciPublicationsImportException(String.format("Invalid RIS data in line %d. Aborting import.", return new RisFieldValue(null, line);
index + 1));
} }
} }

View File

@ -1,9 +1,14 @@
package com.arsdigita.cms.scipublications.importer.ris.converters; package com.arsdigita.cms.scipublications.importer.ris.converters;
import com.arsdigita.cms.Folder;
import com.arsdigita.cms.contenttypes.ArticleInCollectedVolume; import com.arsdigita.cms.contenttypes.ArticleInCollectedVolume;
import com.arsdigita.cms.contenttypes.ArticleInJournal; 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.PublicationWithPublisher; 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.imexporter.ris.RisField;
import com.arsdigita.cms.scipublications.importer.report.AuthorImportReport; import com.arsdigita.cms.scipublications.importer.report.AuthorImportReport;
import com.arsdigita.cms.scipublications.importer.report.FieldImportReport; 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.AuthorData;
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.List; import java.util.List;
/** /**
@ -22,6 +28,17 @@ import java.util.List;
*/ */
public abstract class AbstractRisConverter implements RisConverter { 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, protected void processField(final RisDataset dataset,
final RisField field, final RisField field,
final Publication publication, 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, protected void processTitle(final RisDataset dataset,
final Publication publication, final Publication publication,
final PublicationImportReport report, final PublicationImportReport report,
final boolean pretend) { final boolean pretend) {
publication.setTitle(dataset.getValues().get(RisField.TI).get(0)); final String title;
publication.setTitle(dataset.getValues().get(RisField.TI).get(0)); 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, protected void processAuthors(final RisDataset dataset,
@ -139,8 +209,18 @@ public abstract class AbstractRisConverter implements RisConverter {
final PublicationWithPublisher publication, final PublicationWithPublisher publication,
final ImporterUtil importerUtil, final ImporterUtil importerUtil,
final PublicationImportReport report) { final PublicationImportReport report) {
final List<String> publisherList = dataset.getValues().get(RisField.PB); processPublisher(dataset, RisField.PB, RisField.CY, pretend, publication, importerUtil, report);
final List<String> placeList = dataset.getValues().get(RisField.CY); }
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; final String publisherName;
if ((publisherList == null) || publisherList.isEmpty()) { if ((publisherList == null) || publisherList.isEmpty()) {
publisherName = null; 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, protected void processNumberOfPages(final RisDataset dataset,
final boolean pretend, final boolean pretend,
final PublicationWithPublisher publication, final PublicationWithPublisher publication,
@ -216,7 +336,15 @@ public abstract class AbstractRisConverter implements RisConverter {
final boolean pretend, final boolean pretend,
final Publication publication, final Publication publication,
final PublicationImportReport report) { 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 { try {
final int year = Integer.parseInt(yearStr); final int year = Integer.parseInt(yearStr);
publication.setYearOfPublication(year); publication.setYearOfPublication(year);
@ -291,8 +419,8 @@ public abstract class AbstractRisConverter implements RisConverter {
final List<String> colVolEditors = dataset.getValues().get(cvEditorsField); final List<String> colVolEditors = dataset.getValues().get(cvEditorsField);
final List<AuthorData> colVolEditorData = new ArrayList<AuthorData>(); final List<AuthorData> colVolEditorData = new ArrayList<AuthorData>();
for(String collVolEditor : colVolEditors) { for (String colVolEditor : colVolEditors) {
final String[] tokens = collVolEditor.split(","); final String[] tokens = colVolEditor.split(",");
colVolEditorData.add(createAuthorData(tokens)); colVolEditorData.add(createAuthorData(tokens));
} }
@ -309,6 +437,44 @@ public abstract class AbstractRisConverter implements RisConverter {
} }
} }
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, protected void processPages(final RisDataset dataset,
final RisField field, final RisField field,
final Publication publication, final Publication publication,
@ -351,4 +517,5 @@ public abstract class AbstractRisConverter implements RisConverter {
dataset.getFirstLine())); dataset.getFirstLine()));
} }
} }
} }

View File

@ -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;
}
}

View File

@ -1,11 +1,13 @@
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.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.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}.
@ -23,6 +25,8 @@ public class BookConverter extends AbstractRisConverter {
report.setType(Monograph.BASE_DATA_OBJECT_TYPE); report.setType(Monograph.BASE_DATA_OBJECT_TYPE);
final Monograph monograph = new Monograph(); final Monograph monograph = new Monograph();
monograph.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
final PublicationWithPublisherBundle bundle = new PublicationWithPublisherBundle(monograph);
processTitle(dataset, monograph, report, pretend); processTitle(dataset, monograph, report, pretend);

View File

@ -1,11 +1,13 @@
package com.arsdigita.cms.scipublications.importer.ris.converters; package com.arsdigita.cms.scipublications.importer.ris.converters;
import com.arsdigita.cms.contenttypes.ArticleInCollectedVolume; 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.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.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}.
@ -23,6 +25,8 @@ public class ChapConverter extends AbstractRisConverter {
report.setType(ArticleInCollectedVolume.BASE_DATA_OBJECT_TYPE); report.setType(ArticleInCollectedVolume.BASE_DATA_OBJECT_TYPE);
final ArticleInCollectedVolume article = new ArticleInCollectedVolume(); final ArticleInCollectedVolume article = new ArticleInCollectedVolume();
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
final ArticleInCollectedVolumeBundle bundle = new ArticleInCollectedVolumeBundle(article);
processTitle(dataset, article, report, pretend); processTitle(dataset, article, report, pretend);
@ -42,8 +46,9 @@ public class ChapConverter extends AbstractRisConverter {
pretend, pretend,
report); report);
processField(dataset, RisField.SE, article, "chapter", report, pretend);
processField(dataset, RisField.AB, article, "abstract", 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; return report;
} }

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -1,11 +1,13 @@
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.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.util.ImporterUtil; 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}. * 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); report.setType(Monograph.BASE_DATA_OBJECT_TYPE);
final Monograph monograph = new Monograph(); final Monograph monograph = new Monograph();
monograph.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
final PublicationWithPublisherBundle bundle = new PublicationWithPublisherBundle(monograph);
processTitle(dataset, monograph, report, pretend); processTitle(dataset, monograph, report, pretend);

View File

@ -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;
}
}

View File

@ -1,12 +1,14 @@
package com.arsdigita.cms.scipublications.importer.ris.converters; package com.arsdigita.cms.scipublications.importer.ris.converters;
import com.arsdigita.cms.contenttypes.ArticleInJournal; 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.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.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.ImporterUtil; 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} * 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); report.setType(ArticleInJournal.BASE_DATA_OBJECT_TYPE);
final ArticleInJournal article = new ArticleInJournal(); final ArticleInJournal article = new ArticleInJournal();
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
final ArticleInJournalBundle bundle = new ArticleInJournalBundle(article);
processTitle(dataset, article, report, pretend); processTitle(dataset, article, report, pretend);

View File

@ -1,11 +1,13 @@
package com.arsdigita.cms.scipublications.importer.ris.converters; package com.arsdigita.cms.scipublications.importer.ris.converters;
import com.arsdigita.cms.contenttypes.InternetArticle; 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.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.util.ImporterUtil; 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); report.setType(InternetArticle.BASE_DATA_OBJECT_TYPE);
final InternetArticle article = new InternetArticle(); final InternetArticle article = new InternetArticle();
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
final InternetArticleBundle bundle = new InternetArticleBundle(article);
processTitle(dataset, article, report, pretend); processTitle(dataset, article, report, pretend);

View File

@ -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;
}
}

View File

@ -2,11 +2,13 @@ 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.Monograph; 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.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.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}
@ -24,6 +26,8 @@ public class GenConverter extends AbstractRisConverter {
report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE); report.setType(GreyLiterature.BASE_DATA_OBJECT_TYPE);
final Monograph publication = new Monograph(); final Monograph publication = new Monograph();
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
final PublicationWithPublisherBundle bundle = new PublicationWithPublisherBundle(publication);
processTitle(dataset, publication, report, pretend); processTitle(dataset, publication, report, pretend);

View File

@ -1,11 +1,13 @@
package com.arsdigita.cms.scipublications.importer.ris.converters; package com.arsdigita.cms.scipublications.importer.ris.converters;
import com.arsdigita.cms.contenttypes.ArticleInJournal; 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.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.util.ImporterUtil; 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); report.setType(ArticleInJournal.BASE_DATA_OBJECT_TYPE);
final ArticleInJournal article = new ArticleInJournal(); final ArticleInJournal article = new ArticleInJournal();
article.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
final ArticleInJournalBundle bundle = new ArticleInJournalBundle(article);
processTitle(dataset, article, report, pretend); processTitle(dataset, article, report, pretend);

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -11,6 +11,7 @@ import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitBundle;
import com.arsdigita.cms.contenttypes.GenericPerson; import com.arsdigita.cms.contenttypes.GenericPerson;
import com.arsdigita.cms.contenttypes.GenericPersonBundle; import com.arsdigita.cms.contenttypes.GenericPersonBundle;
import com.arsdigita.cms.contenttypes.InProceedings; import com.arsdigita.cms.contenttypes.InProceedings;
import com.arsdigita.cms.contenttypes.InternetArticle;
import com.arsdigita.cms.contenttypes.Journal; import com.arsdigita.cms.contenttypes.Journal;
import com.arsdigita.cms.contenttypes.JournalBundle; import com.arsdigita.cms.contenttypes.JournalBundle;
import com.arsdigita.cms.contenttypes.Proceedings; 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.lifecycle.LifecycleDefinitionCollection;
import com.arsdigita.cms.scipublications.importer.report.AuthorImportReport; import com.arsdigita.cms.scipublications.importer.report.AuthorImportReport;
import com.arsdigita.cms.scipublications.importer.report.CollectedVolumeImportReport; 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.JournalImportReport;
import com.arsdigita.cms.scipublications.importer.report.OrganizationalUnitImportReport; import com.arsdigita.cms.scipublications.importer.report.OrganizationalUnitImportReport;
import com.arsdigita.cms.scipublications.importer.report.ProceedingsImportReport; import com.arsdigita.cms.scipublications.importer.report.ProceedingsImportReport;
@ -512,6 +512,73 @@ public class ImporterUtil {
return report; 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, public SeriesImportReport processSeries(final Publication publication,
final String seriesTitle, final String seriesTitle,
final boolean pretend) { final boolean pretend) {