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);
|
super.init(e);
|
||||||
|
|
||||||
DomainObjectFactory.registerInstantiator(
|
DomainObjectFactory.registerInstantiator(
|
||||||
SciPublications.BASE_DATA_OBJECT_TYPE,
|
SciPublications.BASE_DATA_OBJECT_TYPE, new ACSObjectInstantiator() {
|
||||||
new ACSObjectInstantiator() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DomainObject doNewInstance(final DataObject dataObject) {
|
public DomainObject doNewInstance(final DataObject dataObject) {
|
||||||
return new SciPublications(dataObject);
|
return new SciPublications(dataObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,7 @@ public class ImporterCli extends Program {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doRun(final CommandLine cmdLine) {
|
protected void doRun(final CommandLine cmdLine) {
|
||||||
|
try {
|
||||||
final PrintWriter writer = new PrintWriter(System.out);
|
final PrintWriter writer = new PrintWriter(System.out);
|
||||||
final PrintWriter errWriter = new PrintWriter(System.err);
|
final PrintWriter errWriter = new PrintWriter(System.err);
|
||||||
|
|
||||||
|
|
@ -100,6 +101,9 @@ public class ImporterCli extends Program {
|
||||||
|
|
||||||
errWriter.flush();
|
errWriter.flush();
|
||||||
writer.flush();
|
writer.flush();
|
||||||
|
} catch(Exception ex) {
|
||||||
|
ex.printStackTrace(System.err);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void importFile(final File file, final boolean pretend, final boolean publish) {
|
protected void importFile(final File file, final boolean pretend, final boolean publish) {
|
||||||
|
|
@ -143,11 +147,12 @@ public class ImporterCli extends Program {
|
||||||
try {
|
try {
|
||||||
report = importer.importPublications(data, pretend, publish);
|
report = importer.importPublications(data, pretend, publish);
|
||||||
} catch (SciPublicationsImportException ex) {
|
} catch (SciPublicationsImportException ex) {
|
||||||
|
|
||||||
errWriter.printf("Import failed:\n");
|
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);
|
ex.printStackTrace(errWriter);
|
||||||
errWriter.flush();
|
errWriter.flush();
|
||||||
writer.flush();
|
writer.flush();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ public class BibTeXPublicationsImporter implements SciPublicationsImporter {
|
||||||
} catch (MimeTypeParseException ex) {
|
} catch (MimeTypeParseException ex) {
|
||||||
LOGGER.warn("Failed to create MimeType for PublicationFormat."
|
LOGGER.warn("Failed to create MimeType for PublicationFormat."
|
||||||
+ "Using null mimetype instead. Cause: ", ex);
|
+ "Using null mimetype instead. Cause: ", ex);
|
||||||
return new PublicationFormat("RIS", null, "RIS");
|
return new PublicationFormat("BibTeX", null, "bib");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public interface RisConverter {
|
public interface RisConverter {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts a RIS dataset for a publiction of the type supported by the converter to an instance of SciPublication.
|
* 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
|
* 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;
|
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.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.report.PublicationImportReport;
|
||||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import java.util.HashMap;
|
import java.util.EnumMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.ServiceLoader;
|
import java.util.ServiceLoader;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
@ -20,7 +17,7 @@ import org.apache.log4j.Logger;
|
||||||
public class RisConverters {
|
public class RisConverters {
|
||||||
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(RisConverters.class);
|
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
|
* The constructor loads all available implementations of the
|
||||||
|
|
@ -60,8 +57,8 @@ public class RisConverters {
|
||||||
* @param importerUtil
|
* @param importerUtil
|
||||||
* @param pretend
|
* @param pretend
|
||||||
* @param publishNewItems
|
* @param publishNewItems
|
||||||
* @return
|
* @return
|
||||||
* @throws SciPublicationsImportException
|
* @throws RisConverterException
|
||||||
*/
|
*/
|
||||||
public PublicationImportReport convert(final RisDataset dataset,
|
public PublicationImportReport convert(final RisDataset dataset,
|
||||||
final ImporterUtil importerUtil,
|
final ImporterUtil importerUtil,
|
||||||
|
|
@ -77,13 +74,13 @@ public class RisConverters {
|
||||||
}
|
}
|
||||||
|
|
||||||
converter = converter.getClass().newInstance();
|
converter = converter.getClass().newInstance();
|
||||||
|
|
||||||
return converter.convert(dataset, importerUtil, pretend, publishNewItems);
|
return converter.convert(dataset, importerUtil, pretend, publishNewItems);
|
||||||
} catch (InstantiationException ex) {
|
} catch (InstantiationException ex) {
|
||||||
throw new RisConverterException("Converter instantiation failed.", ex);
|
throw new RisConverterException("Converter instantiation failed.", ex);
|
||||||
} catch (IllegalAccessException ex) {
|
} catch (IllegalAccessException ex) {
|
||||||
throw new RisConverterException("Converter instantiation failed.", ex);
|
throw new RisConverterException("Converter instantiation failed.", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ public class RisParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
return new RisFieldValue(fieldName, tokens[1]);
|
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, "");
|
return new RisFieldValue(RisField.ER, "");
|
||||||
} else {
|
} else {
|
||||||
return new RisFieldValue(null, line);
|
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.RisConverter;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.RisImporter;
|
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.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
import com.arsdigita.kernel.Kernel;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
@ -38,6 +39,12 @@ public abstract class AbstractRisConverter<T extends Publication, B extends Publ
|
||||||
final PublicationImportReport importReport = new PublicationImportReport();
|
final PublicationImportReport importReport = new PublicationImportReport();
|
||||||
|
|
||||||
final T publication = createPublication(pretend);
|
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);
|
importReport.setTitle(publication.BASE_DATA_OBJECT_TYPE);
|
||||||
|
|
||||||
processFields(dataset, publication, importerUtil, importReport, pretend);
|
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.setLanguage(Kernel.getConfig().getLanguagesIndependentCode());
|
||||||
|
|
||||||
publication.save();
|
publication.save();
|
||||||
|
|
||||||
final B bundle = createBundle(publication, pretend);
|
|
||||||
|
|
||||||
assignFolder(publication, bundle);
|
assignFolder(publication, bundle);
|
||||||
assignCategories(bundle);
|
assignCategories(bundle);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,9 +47,7 @@ public class BlogConverter extends AbstractRisConverter<InternetArticle, Interne
|
||||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, 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, "yearOfPublication", importReport);
|
||||||
|
|
||||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
|
||||||
|
|
||||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
authorUtil.processEditors(dataset, RisField.A2, 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.Monograph;
|
||||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
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.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;
|
||||||
|
|
@ -34,7 +35,7 @@ public class BookConverter extends AbstractRisConverter<Monograph, PublicationBu
|
||||||
if (pretend) {
|
if (pretend) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} 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 RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(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, "yearOfPublication", importReport);
|
||||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
|
||||||
|
|
||||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
authorUtil.processEditors(dataset, RisField.A3, 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 RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||||
final RisColVolUtil colVolUtil = new RisColVolUtil(importerUtil, pretend);
|
final RisColVolUtil colVolUtil = new RisColVolUtil(importerUtil, pretend);
|
||||||
|
|
||||||
fieldUtil.processTitle(dataset, publication, importReport);
|
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||||
|
|
||||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
|
||||||
|
|
||||||
authorUtil.processAuthors(dataset, RisField.AU, publication, 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.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.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
authorUtil.processEditors(dataset, RisField.A2, 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 RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||||
final RisColVolUtil colVolUtil = new RisColVolUtil(importerUtil, pretend);
|
final RisColVolUtil colVolUtil = new RisColVolUtil(importerUtil, pretend);
|
||||||
|
|
||||||
fieldUtil.processTitle(dataset, publication, importReport);
|
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||||
|
|
||||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
|
||||||
|
|
||||||
authorUtil.processAuthors(dataset, RisField.AU, publication, 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.RisOrgaUtil;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
||||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converter for the RIS type {@code EBOOK} to the SciPublications type {@link Monograph}.
|
* Converter for the RIS type {@code EBOOK} to the SciPublications type {@link Monograph}.
|
||||||
|
|
@ -20,7 +19,7 @@ import com.arsdigita.kernel.Kernel;
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class EbookConverter extends AbstractRisConverter<Monograph, PublicationWithPublisherBundle> {
|
public class EbookConverter extends AbstractRisConverter<Monograph, PublicationWithPublisherBundle> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Monograph createPublication(final boolean pretend) {
|
protected Monograph createPublication(final boolean pretend) {
|
||||||
if (pretend) {
|
if (pretend) {
|
||||||
|
|
@ -46,9 +45,7 @@ public class EbookConverter extends AbstractRisConverter<Monograph, PublicationW
|
||||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(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, "yearOfPublication", importReport);
|
||||||
|
|
||||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
|
||||||
|
|
||||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
authorUtil.processEditors(dataset, RisField.A3, 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.RisFieldUtil;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisOrgaUtil;
|
||||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -48,11 +47,9 @@ public class EdbookConverter extends AbstractRisConverter<CollectedVolume, Colle
|
||||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, 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);
|
|
||||||
|
|
||||||
authorUtil.processEditors(dataset, RisField.AU, 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);
|
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.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.RisDataset;
|
import com.arsdigita.cms.scipublications.importer.ris.RisDataset;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisAuthorUtil;
|
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisAuthorUtil;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil;
|
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.ris.converters.utils.RisJournalUtil;
|
||||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converter for the RIS {@code EJOUR} to the SciPublications type {@link ArticleInJournal}
|
* 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 RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||||
final RisJournalUtil journalUtil = new RisJournalUtil(importerUtil, pretend);
|
final RisJournalUtil journalUtil = new RisJournalUtil(importerUtil, pretend);
|
||||||
|
|
||||||
fieldUtil.processTitle(dataset, publication, importReport);
|
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||||
|
|
||||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
|
||||||
|
|
||||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||||
|
|
||||||
import com.arsdigita.cms.contenttypes.InProceedingsBundle;
|
|
||||||
import com.arsdigita.cms.contenttypes.InternetArticle;
|
import com.arsdigita.cms.contenttypes.InternetArticle;
|
||||||
import com.arsdigita.cms.contenttypes.InternetArticleBundle;
|
import com.arsdigita.cms.contenttypes.InternetArticleBundle;
|
||||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||||
|
|
@ -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.RisFieldUtil;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
||||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -48,9 +46,7 @@ public class ElecConverter extends AbstractRisConverter<InternetArticle, Interne
|
||||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
final RisAuthorUtil authorUtil = new RisAuthorUtil(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, "yearOfPublication", importReport);
|
||||||
|
|
||||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
|
||||||
|
|
||||||
authorUtil.processAuthors(dataset, RisField.AU, publication, 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 RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||||
final RisColVolUtil colVolUtil = new RisColVolUtil(importerUtil, pretend);
|
final RisColVolUtil colVolUtil = new RisColVolUtil(importerUtil, pretend);
|
||||||
|
|
||||||
fieldUtil.processTitle(dataset, publication, importReport);
|
fieldUtil.processIntField(dataset, RisField.PY, publication, "yearOfPublication", importReport);
|
||||||
|
|
||||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
|
||||||
|
|
||||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,11 +46,9 @@ public class GenConverter extends AbstractRisConverter<Monograph, PublicationWit
|
||||||
final boolean pretend) {
|
final boolean pretend) {
|
||||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, 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, "yearOfPublication", importReport);
|
||||||
|
|
||||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
|
||||||
|
|
||||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
authorUtil.processAuthors(dataset, RisField.A2, 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.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.AU, publication, importReport);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,9 +49,7 @@ public class RprtConverter extends AbstractRisConverter<GreyLiterature, UnPublis
|
||||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(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, "yearOfPublication", importReport);
|
||||||
|
|
||||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
|
||||||
|
|
||||||
authorUtil.processAuthors(dataset, RisField.AU, publication, 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 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, "yearOfPublication", importReport);
|
||||||
|
|
||||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
|
||||||
|
|
||||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
package com.arsdigita.cms.scipublications.importer.ris.converters;
|
||||||
|
|
||||||
import com.arsdigita.cms.contenttypes.GreyLiterature;
|
import com.arsdigita.cms.contenttypes.GreyLiterature;
|
||||||
import com.arsdigita.cms.contenttypes.Publication;
|
|
||||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
|
||||||
import com.arsdigita.cms.contenttypes.UnPublishedBundle;
|
import com.arsdigita.cms.contenttypes.UnPublishedBundle;
|
||||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
import com.arsdigita.cms.scipublications.imexporter.ris.RisField;
|
||||||
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
import com.arsdigita.cms.scipublications.imexporter.ris.RisType;
|
||||||
|
|
@ -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.RisOrgaUtil;
|
||||||
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisSeriesUtil;
|
||||||
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
import com.arsdigita.cms.scipublications.importer.util.ImporterUtil;
|
||||||
import com.arsdigita.kernel.Kernel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -49,11 +46,9 @@ public class UnpbConverter extends AbstractRisConverter<GreyLiterature, UnPublis
|
||||||
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
final RisFieldUtil fieldUtil = new RisFieldUtil(pretend);
|
||||||
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
final RisAuthorUtil authorUtil = new RisAuthorUtil(importerUtil, pretend);
|
||||||
final RisOrgaUtil orgaUtil = new RisOrgaUtil(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, "yearOfPublication", importReport);
|
||||||
|
|
||||||
fieldUtil.processIntField(dataset, RisField.PY, publication, "year", importReport);
|
|
||||||
|
|
||||||
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
authorUtil.processAuthors(dataset, RisField.AU, publication, importReport);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,10 +39,28 @@ public class RisFieldUtil {
|
||||||
|
|
||||||
if (!pretend) {
|
if (!pretend) {
|
||||||
publication.setTitle(title);
|
publication.setTitle(title);
|
||||||
|
String name = normalizeString(title);
|
||||||
|
if (name.length() > 200) {
|
||||||
|
name = name.substring(0, 200);
|
||||||
|
}
|
||||||
|
publication.setName(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
report.setTitle(title);
|
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,
|
public void processField(final RisDataset dataset,
|
||||||
final RisField field,
|
final RisField field,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue