SciPublications RisImporter Beta 2
git-svn-id: https://svn.libreccm.org/ccm/trunk@2038 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
4beb75e94a
commit
e9d6663fa8
Binary file not shown.
|
|
@ -35,13 +35,13 @@ public class SciPublicationsInitializer extends CompoundInitializer {
|
|||
super.init(e);
|
||||
|
||||
DomainObjectFactory.registerInstantiator(
|
||||
SciPublications.BASE_DATA_OBJECT_TYPE,
|
||||
new ACSObjectInstantiator() {
|
||||
|
||||
SciPublications.BASE_DATA_OBJECT_TYPE, new ACSObjectInstantiator() {
|
||||
@Override
|
||||
public DomainObject doNewInstance(final DataObject dataObject) {
|
||||
return new SciPublications(dataObject);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ public class ImporterCli extends Program {
|
|||
|
||||
@Override
|
||||
protected void doRun(final CommandLine cmdLine) {
|
||||
try {
|
||||
final PrintWriter writer = new PrintWriter(System.out);
|
||||
final PrintWriter errWriter = new PrintWriter(System.err);
|
||||
|
||||
|
|
@ -100,6 +101,9 @@ public class ImporterCli extends Program {
|
|||
|
||||
errWriter.flush();
|
||||
writer.flush();
|
||||
} catch(Exception ex) {
|
||||
ex.printStackTrace(System.err);
|
||||
}
|
||||
}
|
||||
|
||||
protected void importFile(final File file, final boolean pretend, final boolean publish) {
|
||||
|
|
@ -143,11 +147,12 @@ public class ImporterCli extends Program {
|
|||
try {
|
||||
report = importer.importPublications(data, pretend, publish);
|
||||
} catch (SciPublicationsImportException ex) {
|
||||
|
||||
errWriter.printf("Import failed:\n");
|
||||
errWriter.printf("%s: %s\n", ex.getClass().getName(), ex.getMessage());
|
||||
errWriter.printf("%s: %s\n", ex.getClass().getName(), ex.getMessage());
|
||||
ex.printStackTrace(errWriter);
|
||||
errWriter.flush();
|
||||
writer.flush();
|
||||
writer.flush();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public class BibTeXPublicationsImporter implements SciPublicationsImporter {
|
|||
} catch (MimeTypeParseException ex) {
|
||||
LOGGER.warn("Failed to create MimeType for PublicationFormat."
|
||||
+ "Using null mimetype instead. Cause: ", ex);
|
||||
return new PublicationFormat("RIS", null, "RIS");
|
||||
return new PublicationFormat("BibTeX", null, "bib");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
|||
* @version $Id$
|
||||
*/
|
||||
public interface RisConverter {
|
||||
|
||||
|
||||
/**
|
||||
* Converts a RIS dataset for a publiction of the type supported by the converter to an instance of SciPublication.
|
||||
* An implementation of this method is also responsible for publishing the publication item created (if
|
||||
|
|
|
|||
|
|
@ -1,12 +1,9 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.Publication;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
import com.arsdigita.cms.scipublications.importer.SciPublicationsImportException;
|
||||
import com.arsdigita.cms.scipublications.importer.report.ImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import java.util.HashMap;
|
||||
import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
import java.util.ServiceLoader;
|
||||
import org.apache.log4j.Logger;
|
||||
|
|
@ -20,7 +17,7 @@ import org.apache.log4j.Logger;
|
|||
public class RisConverters {
|
||||
|
||||
private static final Logger LOGGER = Logger.getLogger(RisConverters.class);
|
||||
private Map<RisType, RisConverter> converters = new HashMap<RisType, RisConverter>();
|
||||
private Map<RisType, RisConverter> converters = new EnumMap<RisType, RisConverter>(RisType.class);
|
||||
|
||||
/**
|
||||
* The constructor loads all available implementations of the
|
||||
|
|
@ -60,8 +57,8 @@ public class RisConverters {
|
|||
* @param importerUtil
|
||||
* @param pretend
|
||||
* @param publishNewItems
|
||||
* @return
|
||||
* @throws SciPublicationsImportException
|
||||
* @return
|
||||
* @throws RisConverterException
|
||||
*/
|
||||
public PublicationImportReport convert(final RisDataset dataset,
|
||||
final ImporterUtil importerUtil,
|
||||
|
|
@ -77,13 +74,13 @@ public class RisConverters {
|
|||
}
|
||||
|
||||
converter = converter.getClass().newInstance();
|
||||
|
||||
|
||||
return converter.convert(dataset, importerUtil, pretend, publishNewItems);
|
||||
} catch (InstantiationException ex) {
|
||||
throw new RisConverterException("Converter instantiation failed.", ex);
|
||||
} catch (IllegalAccessException ex) {
|
||||
throw new RisConverterException("Converter instantiation failed.", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ public class RisParser {
|
|||
}
|
||||
|
||||
return new RisFieldValue(fieldName, tokens[1]);
|
||||
} else if ((tokens.length == 1) && RisField.ER.toString().equals(tokens[0])) {
|
||||
} else if ((tokens.length == 1) && (tokens[0] != null) && tokens[0].startsWith(RisField.ER.toString())) {
|
||||
return new RisFieldValue(RisField.ER, "");
|
||||
} else {
|
||||
return new RisFieldValue(null, line);
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport
|
|||
import com.arsdigita.cms.scipublications.importer.ris.RisConverter;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.RisImporter;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -38,6 +39,12 @@ public abstract class AbstractRisConverter<T extends Publication, B extends Publ
|
|||
final PublicationImportReport importReport = new PublicationImportReport();
|
||||
|
||||
final T publication = createPublication(pretend);
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
if (!pretend) {
|
||||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
}
|
||||
final B bundle = createBundle(publication, pretend);
|
||||
importReport.setTitle(publication.BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
processFields(dataset, publication, importerUtil, importReport, pretend);
|
||||
|
|
@ -48,9 +55,7 @@ public abstract class AbstractRisConverter<T extends Publication, B extends Publ
|
|||
publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||
|
||||
publication.save();
|
||||
|
||||
final B bundle = createBundle(publication, pretend);
|
||||
|
||||
|
||||
assignFolder(publication, bundle);
|
||||
assignCategories(bundle);
|
||||
|
||||
|
|
|
|||
|
|
@ -47,9 +47,7 @@ public class BlogConverter extends AbstractRisConverter<InternetArticle, Interne
|
|||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
authorUtil.processEditors(dataset, RisField.A2, publication, importReport);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.arsdigita.cms.scipublications.importer.ris.converters;
|
|||
|
||||
import com.arsdigita.cms.contenttypes.Monograph;
|
||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
||||
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;
|
||||
|
|
@ -34,7 +35,7 @@ public class BookConverter extends AbstractRisConverter<Monograph, PublicationBu
|
|||
if (pretend) {
|
||||
return null;
|
||||
} else {
|
||||
return new PublicationBundle(publication);
|
||||
return new PublicationWithPublisherBundle(publication);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -48,9 +49,8 @@ public class BookConverter extends AbstractRisConverter<Monograph, PublicationBu
|
|||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
final RisSeriesUtil seriesUtil = new RisSeriesUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
authorUtil.processEditors(dataset, RisField.A3, publication, importReport);
|
||||
|
|
|
|||
|
|
@ -47,10 +47,8 @@ public class ChapConverter extends AbstractRisConverter<ArticleInCollectedVolume
|
|||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisColVolUtil colVolUtil = new RisColVolUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class ConfConverter extends AbstractRisConverter<Proceedings, Proceedings
|
|||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.C2, publication, "year", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.C2, publication, "yearPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
authorUtil.processEditors(dataset, RisField.A2, publication, importReport);
|
||||
|
|
|
|||
|
|
@ -47,9 +47,7 @@ public class CpaperConverter extends AbstractRisConverter<InProceedings, InProce
|
|||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisColVolUtil colVolUtil = new RisColVolUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldU
|
|||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
* Converter for the RIS type {@code EBOOK} to the SciPublications type {@link Monograph}.
|
||||
|
|
@ -20,7 +19,7 @@ import com.arsdigita.kernel.Kernel;
|
|||
* @version $Id$
|
||||
*/
|
||||
public class EbookConverter extends AbstractRisConverter<Monograph, PublicationWithPublisherBundle> {
|
||||
|
||||
|
||||
@Override
|
||||
protected Monograph createPublication(final boolean pretend) {
|
||||
if (pretend) {
|
||||
|
|
@ -46,9 +45,7 @@ public class EbookConverter extends AbstractRisConverter<Monograph, PublicationW
|
|||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
final RisSeriesUtil seriesUtil = new RisSeriesUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
authorUtil.processEditors(dataset, RisField.A3, publication, importReport);
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisAuthor
|
|||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -48,11 +47,9 @@ public class EdbookConverter extends AbstractRisConverter<CollectedVolume, Colle
|
|||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
authorUtil.processEditors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
orgaUtil.processPublisher(dataset, RisField.PB, RisField.CY, publication, importReport);
|
||||
|
||||
|
|
|
|||
|
|
@ -5,13 +5,11 @@ 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.ris.converters.utils.RisAuthorUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisJournalUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
* Converter for the RIS {@code EJOUR} to the SciPublications type {@link ArticleInJournal}
|
||||
|
|
@ -50,9 +48,7 @@ public class EjourConverter extends AbstractRisConverter<ArticleInJournal, Artic
|
|||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisJournalUtil journalUtil = new RisJournalUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.InProceedingsBundle;
|
||||
import com.arsdigita.cms.contenttypes.InternetArticle;
|
||||
import com.arsdigita.cms.contenttypes.InternetArticleBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
|
|
@ -11,7 +10,6 @@ import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisAuthor
|
|||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -48,9 +46,7 @@ public class ElecConverter extends AbstractRisConverter<InternetArticle, Interne
|
|||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisSeriesUtil seriesUtil = new RisSeriesUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
|
|
|
|||
|
|
@ -46,10 +46,8 @@ public class EncycConverter extends AbstractRisConverter<ArticleInCollectedVolum
|
|||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisColVolUtil colVolUtil = new RisColVolUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
|
|
|
|||
|
|
@ -46,11 +46,9 @@ public class GenConverter extends AbstractRisConverter<Monograph, PublicationWit
|
|||
final boolean pretend) {
|
||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
authorUtil.processAuthors(dataset, RisField.A2, publication, importReport);
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public class JourConverter extends AbstractRisConverter<ArticleInJournal, Articl
|
|||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
|
|
|
|||
|
|
@ -49,9 +49,7 @@ public class RprtConverter extends AbstractRisConverter<GreyLiterature, UnPublis
|
|||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
final RisSeriesUtil seriesUtil = new RisSeriesUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
|
|
|
|||
|
|
@ -47,9 +47,7 @@ public class ThesConverter extends AbstractRisConverter<GreyLiterature, UnPublis
|
|||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||
|
||||
import com.arsdigita.cms.contenttypes.GreyLiterature;
|
||||
import com.arsdigita.cms.contenttypes.Publication;
|
||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
||||
import com.arsdigita.cms.contenttypes.UnPublishedBundle;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||
|
|
@ -13,7 +11,6 @@ import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldU
|
|||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||
import com.arsdigita.kernel.Kernel;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -49,11 +46,9 @@ public class UnpbConverter extends AbstractRisConverter<GreyLiterature, UnPublis
|
|||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(importerUtil, pretend);
|
||||
final RisSeriesUtil seriesUtil = new RisSeriesUtil(importerUtil, pretend);
|
||||
final RisSeriesUtil seriesUtil = new RisSeriesUtil(importerUtil, pretend);
|
||||
|
||||
fieldUtil.processTitle(dataset, publication, importReport);
|
||||
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||
|
||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||
|
||||
|
|
|
|||
|
|
@ -39,10 +39,28 @@ public class RisFieldUtil {
|
|||
|
||||
if (!pretend) {
|
||||
publication.setTitle(title);
|
||||
String name = normalizeString(title);
|
||||
if (name.length() > 200) {
|
||||
name = name.substring(0, 200);
|
||||
}
|
||||
publication.setName(name);
|
||||
}
|
||||
|
||||
report.setTitle(title);
|
||||
}
|
||||
|
||||
private String normalizeString(final String str) {
|
||||
if (str == null) {
|
||||
return "null";
|
||||
}
|
||||
return str.replace("ä", "ae").replace("ö", "oe").replace("ü", "ue").
|
||||
replace(
|
||||
"Ä", "Ae").replace("Ü", "Ue").replace("Ö", "Oe").replace("ß",
|
||||
"ss").
|
||||
replace(" ", "-").
|
||||
replaceAll("[^a-zA-Z0-9\\-]", "").toLowerCase().trim();
|
||||
}
|
||||
|
||||
|
||||
public void processField(final RisDataset dataset,
|
||||
final RisField field,
|
||||
|
|
|
|||
Loading…
Reference in New Issue