From 6abbc6715e6d7b93a5a7cbf1b04e43e3c5afeba7 Mon Sep 17 00:00:00 2001 From: jensp Date: Fri, 2 Nov 2012 16:07:03 +0000 Subject: [PATCH] Aktueller Stand Importer Publikationen git-svn-id: https://svn.libreccm.org/ccm/trunk@1908 8810af33-2d31-482b-a856-94f89814c4df --- .../importer/util/ImporterUtil.java | 323 ++++++++++-------- .../csv/AbstractPublicationImporter.java | 86 +++-- ...tractPublicationWithPublisherImporter.java | 78 ++--- .../csv/AbstractUnPublishedImporter.java | 15 +- .../csv/ArticleInCollectedVolumeImporter.java | 51 ++- .../csv/ArticleInJournalImporter.java | 40 ++- .../importer/csv/CollectedVolumeImporter.java | 18 +- .../importer/csv/ExpertiseImporter.java | 24 +- .../importer/csv/GreyLiteratureImporter.java | 24 +- .../importer/csv/InProceedingsImporter.java | 35 +- .../importer/csv/InternetArticleImporter.java | 55 ++- .../importer/csv/MonographImporter.java | 22 +- .../importer/csv/ProceedingsImporter.java | 37 +- .../importer/csv/PublicationsImporter.java | 82 +++-- .../importer/csv/ReviewImporter.java | 10 +- .../importer/csv/WorkingPaperImporter.java | 19 +- 16 files changed, 544 insertions(+), 375 deletions(-) diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/util/ImporterUtil.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/util/ImporterUtil.java index f314f6adc..51a506587 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/util/ImporterUtil.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/util/ImporterUtil.java @@ -36,7 +36,9 @@ import java.util.List; */ public class ImporterUtil { - public AuthorImportReport processAuthor(final Publication publication, final AuthorData authorData) { + public AuthorImportReport processAuthor(final Publication publication, + final AuthorData authorData, + final boolean pretend) { final AuthorImportReport report = new AuthorImportReport(); final Session session = SessionManager.getSession(); @@ -44,234 +46,261 @@ public class ImporterUtil { collection.addEqualsFilter("surname", authorData.getSurname()); collection.addEqualsFilter("givenname", authorData.getGivenName()); - final GenericPerson author; report.setSurname(authorData.getSurname()); report.setGivenName(authorData.getGivenName()); report.setEditor(authorData.isEditor()); if (collection.isEmpty()) { - final Integer folderId = Publication.getConfig().getDefaultAuthorsFolder(); - final Folder folder = new Folder(new BigDecimal(folderId)); - if (folder == null) { - throw new IllegalArgumentException("Error getting folders for authors."); + if (!pretend) { + final Integer folderId = Publication.getConfig().getDefaultAuthorsFolder(); + final Folder folder = new Folder(new BigDecimal(folderId)); + if (folder == null) { + throw new IllegalArgumentException("Error getting folders for authors."); + } + + final SciAuthor author = new SciAuthor(); + author.setSurname(authorData.getSurname()); + author.setGivenName(authorData.getGivenName()); + author.setName(GenericPerson.urlSave(String.format("%s %s", + authorData.getSurname(), + authorData.getGivenName()))); + author.setContentSection(folder.getContentSection()); + author.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); + author.save(); + + final GenericPersonBundle bundle = new GenericPersonBundle(author); + bundle.setParent(folder); + bundle.setContentSection(folder.getContentSection()); + bundle.save(); + + publication.addAuthor(author, authorData.isEditor()); } - final SciAuthor newAuthor = new SciAuthor(); - newAuthor.setSurname(authorData.getSurname()); - newAuthor.setGivenName(authorData.getGivenName()); - newAuthor.setName(GenericPerson.urlSave(String.format("%s %s", - authorData.getSurname(), - authorData.getGivenName()))); - newAuthor.setContentSection(folder.getContentSection()); - newAuthor.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); - newAuthor.save(); - - final GenericPersonBundle bundle = new GenericPersonBundle(newAuthor); - bundle.setParent(folder); - bundle.setContentSection(folder.getContentSection()); - bundle.save(); - report.setCreated(true); - author = newAuthor; + } else { - collection.next(); - author = new GenericPerson(collection.getDataObject()); + if (!pretend) { + final GenericPerson author; + collection.next(); + author = new GenericPerson(collection.getDataObject()); + publication.addAuthor(author, authorData.isEditor()); + } report.setCreated(false); } - publication.addAuthor(author, authorData.isEditor()); - + collection.close(); return report; } public PublisherImportReport processPublisher(final PublicationWithPublisher publication, final String place, - final String publisherName) { + final String publisherName, + final boolean pretend) { final PublisherImportReport report = new PublisherImportReport(); final Session session = SessionManager.getSession(); final DataCollection collection = session.retrieve(Publisher.BASE_DATA_OBJECT_TYPE); collection.addEqualsFilter("title", publisherName); collection.addEqualsFilter("place", place); - final Publisher publisher; report.setPublisherName(publisherName); report.setPlace(place); if (collection.isEmpty()) { - final Integer folderId = Publication.getConfig().getDefaultPublisherFolder(); - final Folder folder = new Folder(new BigDecimal(folderId)); - if (folder == null) { - throw new IllegalArgumentException("Error getting folders for publishers"); + if (!pretend) { + final Integer folderId = Publication.getConfig().getDefaultPublisherFolder(); + final Folder folder = new Folder(new BigDecimal(folderId)); + if (folder == null) { + throw new IllegalArgumentException("Error getting folders for publishers"); + } + + final Publisher publisher = new Publisher(); + publisher.setPublisherName(publisherName); + publisher.setPlace(place); + publisher.setTitle(String.format("%s %s", publisherName, place)); + publisher.setName(Publisher.urlSave(String.format("%s %s", publisherName, place))); + publisher.setContentSection(folder.getContentSection()); + publisher.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); + publisher.save(); + + final PublisherBundle bundle = new PublisherBundle(publisher); + bundle.setParent(folder); + bundle.setContentSection(folder.getContentSection()); + bundle.save(); + + publication.setPublisher(publisher); } - final Publisher newPublisher = new Publisher(); - newPublisher.setPublisherName(publisherName); - newPublisher.setPlace(place); - newPublisher.setTitle(String.format("%s %s", publisherName, place)); - newPublisher.setName(Publisher.urlSave(String.format("%s %s", publisherName, place))); - newPublisher.setContentSection(folder.getContentSection()); - newPublisher.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); - newPublisher.save(); - - final PublisherBundle bundle = new PublisherBundle(newPublisher); - bundle.setParent(folder); - bundle.setContentSection(folder.getContentSection()); - bundle.save(); - report.setCreated(true); - publisher = newPublisher; } else { - collection.next(); - publisher = new Publisher(collection.getDataObject()); + if (!pretend) { + collection.next(); + final Publisher publisher = new Publisher(collection.getDataObject()); + publication.setPublisher(publisher); + } report.setCreated(false); } - publication.setPublisher(publisher); - + collection.close(); return report; } - + public CollectedVolumeImportReport processCollectedVolume(final ArticleInCollectedVolume article, final String title, final int year, - final List authors) { + final List authors, + final boolean pretend) { final CollectedVolumeImportReport report = new CollectedVolumeImportReport(); - + final Session session = SessionManager.getSession(); final DataCollection collection = session.retrieve(CollectedVolume.BASE_DATA_OBJECT_TYPE); collection.addEqualsFilter("title", title); collection.addEqualsFilter("yearOfPublication", year); - final CollectedVolume collectedVolume; report.setCollectedVolumeTitle(title); if (collection.isEmpty()) { - final Integer folderId = Publication.getConfig().getDefaultCollectedVolumesFolder(); - final Folder folder = new Folder(new BigDecimal(folderId)); - if (folder == null) { - throw new IllegalArgumentException("Error getting foldes for collected volumes."); + if (!pretend) { + final Integer folderId = Publication.getConfig().getDefaultCollectedVolumesFolder(); + final Folder folder = new Folder(new BigDecimal(folderId)); + if (folder == null) { + throw new IllegalArgumentException("Error getting foldes for collected volumes."); + } + + final CollectedVolume collectedVolume = new CollectedVolume(); + collectedVolume.setTitle(title); + collectedVolume.setName(normalizeString(title)); + collectedVolume.setContentSection(folder.getContentSection()); + collectedVolume.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); + collectedVolume.save(); + + final CollectedVolumeBundle bundle = new CollectedVolumeBundle(collectedVolume); + bundle.setParent(folder); + bundle.setContentSection(folder.getContentSection()); + bundle.save(); + + collectedVolume.setYearOfPublication(year); + for (AuthorData author : authors) { + report.addAuthor(processAuthor(collectedVolume, author, pretend)); + } + + collectedVolume.save(); + article.setCollectedVolume(collectedVolume); } - - final CollectedVolume newCollectedVolume = new CollectedVolume(); - newCollectedVolume.setTitle(title); - newCollectedVolume.setName(normalizeString(title)); - newCollectedVolume.setContentSection(folder.getContentSection()); - newCollectedVolume.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); - newCollectedVolume.save(); - - final CollectedVolumeBundle bundle = new CollectedVolumeBundle(newCollectedVolume); - bundle.setParent(folder); - bundle.setContentSection(folder.getContentSection()); - bundle.save(); - - newCollectedVolume.setYearOfPublication(year); - for(AuthorData author : authors) { - report.addAuthor(processAuthor(newCollectedVolume, author)); - } - - newCollectedVolume.save(); - + report.setCreated(true); - collectedVolume = newCollectedVolume; + } else { - collection.next(); - collectedVolume = new CollectedVolume(collection.getDataObject()); + if (!pretend) { + collection.next(); + final CollectedVolume collectedVolume = new CollectedVolume(collection.getDataObject()); + article.setCollectedVolume(collectedVolume); + } report.setCreated(false); } - - article.setCollectedVolume(collectedVolume); - + + collection.close(); return report; } - + public ProceedingsImportReport processProceedings(final InProceedings inProceedings, final String title, final int year, - final String conference, - final List authors) { + final String conference, + final List authors, + final boolean pretend) { final ProceedingsImportReport report = new ProceedingsImportReport(); - + final Session session = SessionManager.getSession(); final DataCollection collection = session.retrieve(Proceedings.BASE_DATA_OBJECT_TYPE); collection.addEqualsFilter("title", title); collection.addEqualsFilter("yearOfPublication", year); - final Proceedings proceedings; report.setProceedingsTitle(title); if (collection.isEmpty()) { - final Integer folderId = Publication.getConfig().getDefaultProceedingsFolder(); - final Folder folder = new Folder(new BigDecimal(folderId)); - if (folder == null) { - throw new IllegalArgumentException("Failed to get folder for proceedings."); + if (!pretend) { + final Integer folderId = Publication.getConfig().getDefaultProceedingsFolder(); + final Folder folder = new Folder(new BigDecimal(folderId)); + if (folder == null) { + throw new IllegalArgumentException("Failed to get folder for proceedings."); + } + + final Proceedings proceedings = new Proceedings(); + proceedings.setTitle(title); + proceedings.setName(normalizeString(title)); + proceedings.setNameOfConference(conference); + report.setConference(conference); + proceedings.setContentSection(folder.getContentSection()); + proceedings.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); + proceedings.save(); + + final ProceedingsBundle bundle = new ProceedingsBundle(proceedings); + bundle.setContentSection(folder.getContentSection()); + bundle.setParent(folder); + bundle.save(); + + proceedings.setYearOfPublication(year); + for (AuthorData author : authors) { + report.addAuthor(processAuthor(proceedings, author, pretend)); + } + inProceedings.setProceedings(proceedings); } - - final Proceedings newProceedings = new Proceedings(); - newProceedings.setTitle(title); - newProceedings.setName(normalizeString(title)); - newProceedings.setNameOfConference(conference); - report.setConference(conference); - newProceedings.setContentSection(folder.getContentSection()); - newProceedings.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); - newProceedings.save(); - - final ProceedingsBundle bundle = new ProceedingsBundle(newProceedings); - bundle.setContentSection(folder.getContentSection()); - bundle.setParent(folder); - bundle.save(); - - newProceedings.setYearOfPublication(year); - for(AuthorData author : authors) { - report.addAuthor(processAuthor(newProceedings, author)); - } - + report.setCreated(true); - proceedings = newProceedings; + } else { - collection.next(); - proceedings = new Proceedings(collection.getDataObject()); + if (!pretend) { + collection.next(); + final Proceedings proceedings = new Proceedings(collection.getDataObject()); + inProceedings.setProceedings(proceedings); + } report.setCreated(false); } - - inProceedings.setProceedings(proceedings); - + + collection.close(); return report; } - public JournalImportReport processJournal(final ArticleInJournal article, final String title) { + public JournalImportReport processJournal(final ArticleInJournal article, + final String title, + final boolean pretend) { final JournalImportReport report = new JournalImportReport(); - + final Session session = SessionManager.getSession(); final DataCollection collection = session.retrieve(Journal.BASE_DATA_OBJECT_TYPE); collection.addEqualsFilter("title", title); - final Journal journal; + report.setJournalTitle(title); if (collection.isEmpty()) { - final Integer folderId = Publication.getConfig().getDefaultJournalsFolder(); - final Folder folder = new Folder(new BigDecimal(folderId)); - if (folder == null) { - throw new IllegalArgumentException("Error getting folder for journals"); + if (!pretend) { + final Integer folderId = Publication.getConfig().getDefaultJournalsFolder(); + final Folder folder = new Folder(new BigDecimal(folderId)); + if (folder == null) { + throw new IllegalArgumentException("Error getting folder for journals"); + } + + final Journal newJournal = new Journal(); + newJournal.setTitle(title); + newJournal.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); + newJournal.setContentSection(folder.getContentSection()); + newJournal.save(); + + final JournalBundle bundle = new JournalBundle(newJournal); + bundle.setParent(folder); + bundle.setContentSection(folder.getContentSection()); + bundle.save(); + + article.setJournal(newJournal); } - - final Journal newJournal = new Journal(); - newJournal.setTitle(title); - newJournal.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); - newJournal.setContentSection(folder.getContentSection()); - newJournal.save(); - - final JournalBundle bundle = new JournalBundle(newJournal); - bundle.setParent(folder); - bundle.setContentSection(folder.getContentSection()); - bundle.save(); - report.setCreated(true); - journal = newJournal; } else { - collection.next(); - journal = new Journal(collection.getDataObject()); - report.setCreated(false); + if (!pretend) { + collection.next(); + final Journal journal = new Journal(collection.getDataObject()); + article.setJournal(journal); + } + report.setCreated(false); } - - article.setJournal(journal); - + + collection.close(); return report; } - + protected final String normalizeString(final String str) { if (str == null) { return "null"; diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/AbstractPublicationImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/AbstractPublicationImporter.java index a802dfafb..b61bffaf2 100644 --- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/AbstractPublicationImporter.java +++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/AbstractPublicationImporter.java @@ -31,11 +31,13 @@ abstract class AbstractPublicationImporter { private static final String EDITOR_STR = "(Hrsg.)"; private final CsvLine data; private final PublicationImportReport report; + private final boolean pretend; private final ImporterUtil importerUtil = new ImporterUtil(); - public AbstractPublicationImporter(final CsvLine data, final PublicationImportReport report) { + public AbstractPublicationImporter(final CsvLine data, final PublicationImportReport report, final boolean pretend) { this.data = data; this.report = report; + this.pretend = pretend; } protected CsvLine getData() { @@ -50,24 +52,31 @@ abstract class AbstractPublicationImporter { return report; } + protected boolean isPretend() { + return pretend; + } + /** * This method is called by {@link PublicationsImporter}. */ public final void doImport(final boolean publishNewItems) { final T publication = importPublication(); - publication.save(); + if (!pretend) { + publication.save(); - assignCategories(publication.getPublicationBundle()); + assignCategories(publication.getPublicationBundle()); - if (publishNewItems) { - final Calendar now = new GregorianCalendar(); - final LifecycleDefinitionCollection lifecycles = publication.getContentSection().getLifecycleDefinitions(); - lifecycles.next(); - final LifecycleDefinition lifecycleDef = lifecycles.getLifecycleDefinition(); - publication.publish(lifecycleDef, now.getTime()); + if (publishNewItems) { + final Calendar now = new GregorianCalendar(); + final LifecycleDefinitionCollection lifecycles = publication.getContentSection(). + getLifecycleDefinitions(); + lifecycles.next(); + final LifecycleDefinition lifecycleDef = lifecycles.getLifecycleDefinition(); + publication.publish(lifecycleDef, now.getTime()); + } } - + report.setSuccessful(true); } @@ -94,29 +103,32 @@ abstract class AbstractPublicationImporter { final T publication = createPublication(); processTitleAndName(publication); - - publication.save(); - - final Integer folderId = Publication.getConfig().getDefaultPublicationsFolder(); - final Folder folder = new Folder(new BigDecimal(folderId)); - publication.setContentSection(folder.getContentSection()); - publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); - - publication.save(); - - final PublicationBundle bundle = createBundle(publication); - bundle.setParent(folder); - bundle.setContentSection(folder.getContentSection()); - - bundle.save(); - - publication.setAbstract(data.getAbstract()); - publication.setMisc(data.getMisc()); processReviewed(publication); + + if (!pretend) { + publication.save(); + + final Integer folderId = Publication.getConfig().getDefaultPublicationsFolder(); + final Folder folder = new Folder(new BigDecimal(folderId)); + publication.setContentSection(folder.getContentSection()); + publication.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); + + publication.save(); + + final PublicationBundle bundle = createBundle(publication); + bundle.setParent(folder); + bundle.setContentSection(folder.getContentSection()); + + bundle.save(); + + publication.setAbstract(data.getAbstract()); + publication.setMisc(data.getMisc()); + + publication.save(); + } + processAuthors(publication); - publication.save(); - return publication; } @@ -130,9 +142,11 @@ abstract class AbstractPublicationImporter { protected abstract PublicationBundle createBundle(final T publication); private void processTitleAndName(final T publication) { - publication.setTitle(data.getTitle()); - publication.setName(normalizeString(data.getTitle())); - report.setTitle(publication.getTitle()); + if (!pretend) { + publication.setTitle(data.getTitle()); + publication.setName(normalizeString(data.getTitle())); + } + report.setTitle(data.getTitle()); } private void processReviewed(final T publication) { @@ -155,7 +169,9 @@ abstract class AbstractPublicationImporter { reviewed = false; } - publication.setReviewed(reviewed); + if (!pretend) { + publication.setReviewed(reviewed); + } report.addField(new FieldImportReport("reviewed", Boolean.toString(reviewed))); } @@ -164,7 +180,7 @@ abstract class AbstractPublicationImporter { AuthorImportReport authorReport; for (AuthorData authorData : authorsData) { - authorReport = importerUtil.processAuthor(publication, authorData); + authorReport = importerUtil.processAuthor(publication, authorData, pretend); report.addAuthor(authorReport); } } diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/AbstractPublicationWithPublisherImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/AbstractPublicationWithPublisherImporter.java index 68bef09ed..eb69fdc69 100644 --- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/AbstractPublicationWithPublisherImporter.java +++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/AbstractPublicationWithPublisherImporter.java @@ -13,8 +13,9 @@ abstract class AbstractPublicationWithPublisherImporter { public AbstractPublicationWithPublisherImporter(final CsvLine data, - final PublicationImportReport report) { - super(data, report); + final PublicationImportReport report, + final boolean pretend) { + super(data, report, pretend); } @Override @@ -23,7 +24,9 @@ abstract class AbstractPublicationWithPublisherImporter extends AbstractPublicationImporter { protected AbstractUnPublishedImporter(final CsvLine data, - final PublicationImportReport report) { - super(data, report); + final PublicationImportReport report, + final boolean pretend) { + super(data, report, pretend); } @Override @@ -23,12 +24,14 @@ abstract class AbstractUnPublishedImporter extends Abstra final PublicationImportReport report = getReport(); if ((data.getPlace() != null) && !data.getPlace().isEmpty()) { - publication.setPlace(data.getPlace()); + if (!isPretend()) { + publication.setPlace(data.getPlace()); + } report.addField(new FieldImportReport("place", data.getPlace())); } processNumberOfPages(publication); - + return publication; } @@ -36,7 +39,9 @@ abstract class AbstractUnPublishedImporter extends Abstra if ((getData().getNumberOfPages() != null) && !getData().getNumberOfPages().isEmpty()) { try { final int volume = Integer.parseInt(getData().getNumberOfPages()); - publication.setNumberOfPages(volume); + if (!isPretend()) { + publication.setNumberOfPages(volume); + } getReport().addField(new FieldImportReport("Number of pages", getData().getNumberOfPages())); } catch (NumberFormatException ex) { getReport().addMessage(String.format("Failed to parse numberOfPages data in line %d.", diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ArticleInCollectedVolumeImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ArticleInCollectedVolumeImporter.java index 38ae121d1..588feb19c 100644 --- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ArticleInCollectedVolumeImporter.java +++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ArticleInCollectedVolumeImporter.java @@ -14,8 +14,8 @@ import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; */ class ArticleInCollectedVolumeImporter extends AbstractPublicationImporter { - public ArticleInCollectedVolumeImporter(CsvLine data, PublicationImportReport report) { - super(data, report); + public ArticleInCollectedVolumeImporter(CsvLine data, PublicationImportReport report, final boolean pretend) { + super(data, report, pretend); } @Override @@ -27,26 +27,32 @@ class ArticleInCollectedVolumeImporter extends AbstractPublicationImporter { - protected ArticleInJournalImporter(final CsvLine data, final PublicationImportReport report) { - super(data, report); + protected ArticleInJournalImporter(final CsvLine data, + final PublicationImportReport report, + final boolean pretend) { + super(data, report, pretend); } @Override @@ -30,7 +32,9 @@ class ArticleInJournalImporter extends AbstractPublicationImporter { - protected CollectedVolumeImporter(final CsvLine data, final PublicationImportReport report) { - super(data, report); + protected CollectedVolumeImporter(final CsvLine data, + final PublicationImportReport report, + final boolean pretend) { + super(data, report, pretend); } @Override protected CollectedVolume createPublication() { - return new CollectedVolume(); + if (isPretend()) { + return null; + } else { + return new CollectedVolume(); + } } @Override protected PublicationBundle createBundle(final CollectedVolume collectedVolume) { - return new CollectedVolumeBundle(collectedVolume); + if (isPretend()) { + return null; + } else { + return new CollectedVolumeBundle(collectedVolume); + } } } diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ExpertiseImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ExpertiseImporter.java index 6fa5354ed..484a0cd0e 100644 --- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ExpertiseImporter.java +++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ExpertiseImporter.java @@ -12,8 +12,8 @@ import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport */ class ExpertiseImporter extends AbstractPublicationImporter { - protected ExpertiseImporter(final CsvLine data, final PublicationImportReport report) { - super(data, report); + protected ExpertiseImporter(final CsvLine data, final PublicationImportReport report, final boolean pretend) { + super(data, report, pretend); } @Override @@ -23,7 +23,9 @@ class ExpertiseImporter extends AbstractPublicationImporter { final PublicationImportReport report = getReport(); if ((data.getPlace() != null) && !data.getPlace().isEmpty()) { - expertise.setPlace(data.getPlace()); + if (!isPretend()) { + expertise.setPlace(data.getPlace()); + } report.addField(new FieldImportReport("Place", data.getPlace())); } @@ -36,7 +38,9 @@ class ExpertiseImporter extends AbstractPublicationImporter { if ((getData().getNumberOfPages() != null) && !getData().getNumberOfPages().isEmpty()) { try { final int volume = Integer.parseInt(getData().getNumberOfPages()); - publication.setNumberOfPages(volume); + if (!isPretend()) { + publication.setNumberOfPages(volume); + } getReport().addField(new FieldImportReport("Number of pages", getData().getNumberOfPages())); } catch (NumberFormatException ex) { getReport().addMessage(String.format("Failed to parse numberOfPages data in line %d.", @@ -47,12 +51,20 @@ class ExpertiseImporter extends AbstractPublicationImporter { @Override protected Expertise createPublication() { - return new Expertise(); + if (isPretend()) { + return null; + } else { + return new Expertise(); + } } @Override protected PublicationBundle createBundle(final Expertise expertise) { - return new PublicationBundle(expertise); + if (isPretend()) { + return null; + } else { + return new PublicationBundle(expertise); + } } } diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/GreyLiteratureImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/GreyLiteratureImporter.java index 904c0d909..b71c5d98e 100644 --- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/GreyLiteratureImporter.java +++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/GreyLiteratureImporter.java @@ -12,8 +12,8 @@ import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport */ class GreyLiteratureImporter extends AbstractUnPublishedImporter { - protected GreyLiteratureImporter(final CsvLine data, final PublicationImportReport report) { - super(data, report); + protected GreyLiteratureImporter(final CsvLine data, final PublicationImportReport report, final boolean pretend) { + super(data, report, pretend); } @Override @@ -30,7 +30,9 @@ class GreyLiteratureImporter extends AbstractUnPublishedImporter if ((getData().getPageFrom() != null) && !getData().getPageFrom().isEmpty()) { try { final int pagesFrom = Integer.parseInt(getData().getPageFrom()); - publication.setPagesFrom(pagesFrom); + if (!isPretend()) { + publication.setPagesFrom(pagesFrom); + } getReport().addField(new FieldImportReport("Pages from", getData().getPageFrom())); } catch (NumberFormatException ex) { getReport().addMessage(String.format("Failed to parse pageFrom data in line '%d'.", @@ -42,7 +44,9 @@ class GreyLiteratureImporter extends AbstractUnPublishedImporter private void processPagesTo(final GreyLiterature publication) { try { final int pagesTo = Integer.parseInt(getData().getPageTo()); - publication.setPagesFrom(pagesTo); + if (!isPretend()) { + publication.setPagesFrom(pagesTo); + } getReport().addField(new FieldImportReport("Pages to", getData().getPageFrom())); } catch (NumberFormatException ex) { getReport().addMessage(String.format("Failed to parse pageTo data in line '%d'.", @@ -52,12 +56,20 @@ class GreyLiteratureImporter extends AbstractUnPublishedImporter @Override protected GreyLiterature createPublication() { - return new GreyLiterature(); + if (isPretend()) { + return null; + } else { + return new GreyLiterature(); + } } @Override protected PublicationBundle createBundle(final GreyLiterature greyLiterature) { - return new PublicationBundle(greyLiterature); + if (isPretend()) { + return null; + } else { + return new PublicationBundle(greyLiterature); + } } } diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/InProceedingsImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/InProceedingsImporter.java index 0d33a22a6..f41e96a5d 100644 --- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/InProceedingsImporter.java +++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/InProceedingsImporter.java @@ -14,8 +14,8 @@ import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; */ class InProceedingsImporter extends AbstractPublicationImporter { - public InProceedingsImporter(final CsvLine data, final PublicationImportReport report) { - super(data, report); + public InProceedingsImporter(final CsvLine data, final PublicationImportReport report, final boolean pretend) { + super(data, report, pretend); } @Override @@ -28,11 +28,12 @@ class InProceedingsImporter extends AbstractPublicationImporter { processPagesFrom(inProceedings); processPagesTo(inProceedings); - importerUtil.processProceedings(inProceedings, - data.getCollectedVolume(), - inProceedings.getYearOfPublication(), - data.getConference(), - parseAuthors(data.getCollectedVolumeAuthors())); + report.setProceedings(importerUtil.processProceedings(inProceedings, + data.getCollectedVolume(), + inProceedings.getYearOfPublication(), + data.getConference(), + parseAuthors(data.getCollectedVolumeAuthors()), + isPretend())); return inProceedings; } @@ -41,7 +42,9 @@ class InProceedingsImporter extends AbstractPublicationImporter { if ((getData().getPageFrom() != null) && !getData().getPageFrom().isEmpty()) { try { final int pagesFrom = Integer.parseInt(getData().getPageFrom()); - publication.setPagesFrom(pagesFrom); + if (!isPretend()) { + publication.setPagesFrom(pagesFrom); + } getReport().addField(new FieldImportReport("Pages from", getData().getPageFrom())); } catch (NumberFormatException ex) { getReport().addMessage(String.format("Failed to parse pageFrom data in line '%d'.", @@ -53,7 +56,9 @@ class InProceedingsImporter extends AbstractPublicationImporter { private void processPagesTo(final InProceedings publication) { try { final int pagesTo = Integer.parseInt(getData().getPageTo()); - publication.setPagesFrom(pagesTo); + if (!isPretend()) { + publication.setPagesFrom(pagesTo); + } getReport().addField(new FieldImportReport("Pages to", getData().getPageFrom())); } catch (NumberFormatException ex) { getReport().addMessage(String.format("Failed to parse pageTo data in line '%d'.", @@ -63,13 +68,21 @@ class InProceedingsImporter extends AbstractPublicationImporter { @Override protected InProceedings createPublication() { - return new InProceedings(); + if (isPretend()) { + return null; + } else { + return new InProceedings(); + } } @Override protected PublicationBundle createBundle(final InProceedings inProceedings) { - return new InProceedingsBundle(inProceedings); + if (isPretend()) { + return null; + } else { + return new InProceedingsBundle(inProceedings); + } } } diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/InternetArticleImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/InternetArticleImporter.java index 8c63198e1..27b9066fb 100644 --- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/InternetArticleImporter.java +++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/InternetArticleImporter.java @@ -16,8 +16,8 @@ import java.util.Date; */ class InternetArticleImporter extends AbstractPublicationImporter { - public InternetArticleImporter(final CsvLine data, final PublicationImportReport report) { - super(data, report); + public InternetArticleImporter(final CsvLine data, final PublicationImportReport report, final boolean pretend) { + super(data, report, pretend); } @Override @@ -27,19 +27,25 @@ class InternetArticleImporter extends AbstractPublicationImporter { - protected MonographImporter(final CsvLine data, final PublicationImportReport report) { - super(data, report); + protected MonographImporter(final CsvLine data, final PublicationImportReport report, final boolean pretend) { + super(data, report, pretend); } @Override - protected Monograph createPublication() { - return new Monograph(); + protected Monograph createPublication() { + if (isPretend()) { + return null; + } else { + return new Monograph(); + } } - + @Override protected PublicationBundle createBundle(final Monograph monograph) { - return new PublicationWithPublisherBundle(monograph); - } + if (isPretend()) { + return null; + } else { + return new PublicationWithPublisherBundle(monograph); + } + } } diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ProceedingsImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ProceedingsImporter.java index 2997c2b94..2b65c22cd 100644 --- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ProceedingsImporter.java +++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ProceedingsImporter.java @@ -13,31 +13,42 @@ import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport */ class ProceedingsImporter extends AbstractPublicationWithPublisherImporter { - public ProceedingsImporter(final CsvLine data, final PublicationImportReport report) { - super(data, report); + public ProceedingsImporter(final CsvLine data, final PublicationImportReport report, final boolean pretend) { + super(data, report, pretend); } - + @Override public Proceedings importPublication() { final Proceedings proceedings = super.importPublication(); final CsvLine data = getData(); final PublicationImportReport report = getReport(); - + if ((data.getConference() != null) && !data.getConference().isEmpty()) { - proceedings.setNameOfConference(data.getConference()); + if (!isPretend()) { + proceedings.setNameOfConference(data.getConference()); + } report.addField(new FieldImportReport("Name of conference", data.getConference())); } - + return proceedings; - } - + } + @Override - protected Proceedings createPublication() { - return new Proceedings(); - } - + protected Proceedings createPublication() { + if (isPretend()) { + return null; + } else { + return new Proceedings(); + } + } + @Override protected PublicationBundle createBundle(final Proceedings proceedings) { - return new ProceedingsBundle(proceedings); + if (isPretend()) { + return null; + } else { + return new ProceedingsBundle(proceedings); + } } + } diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/PublicationsImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/PublicationsImporter.java index 1fceb5c88..6da7f6261 100644 --- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/PublicationsImporter.java +++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/PublicationsImporter.java @@ -100,7 +100,7 @@ public class PublicationsImporter implements SciPublicationsImporter { try { int lineNumber = 2; //Because we are starting at line 2 of the CSV file (line 1 contains the column headers) for (String line : lines) { - final PublicationImportReport result = importPublication(line, lineNumber, publishNewItems); + final PublicationImportReport result = importPublication(line, lineNumber, publishNewItems, pretend); report.addPublication(result); lineNumber++; } @@ -120,7 +120,8 @@ public class PublicationsImporter implements SciPublicationsImporter { private PublicationImportReport importPublication(final String line, final int lineNumber, - final boolean publishNewItems) { + final boolean publishNewItems, + final boolean pretend) { final PublicationImportReport report = new PublicationImportReport(); final String[] cols = line.split(COL_SEP, -30); @@ -139,28 +140,28 @@ public class PublicationsImporter implements SciPublicationsImporter { System.err.println("Calling importer..."); if (ArticleInCollectedVolume.class.getSimpleName().equals(data.getType())) { - processArticleInCollectedVolume(publishNewItems, data, report); + processArticleInCollectedVolume(publishNewItems, data, report, pretend); } else if (ArticleInCollectedVolume.class.getSimpleName().equals(data.getType())) { - processArticleInJournal(publishNewItems, data, report); + processArticleInJournal(publishNewItems, data, report, pretend); } else if (CollectedVolume.class.getSimpleName().equals(data.getType())) { - processCollectedVolume(publishNewItems, data, report); + processCollectedVolume(publishNewItems, data, report, pretend); } else if (Expertise.class.getSimpleName().equals(data.getType())) { - processExpertise(publishNewItems, data, report); + processExpertise(publishNewItems, data, report, pretend); } else if (GreyLiterature.class.getSimpleName().equals(data.getType())) { - processGreyLiterature(publishNewItems, data, report); + processGreyLiterature(publishNewItems, data, report, pretend); } else if (InProceedings.class.getSimpleName().equals(data.getType())) { - processInProceedings(publishNewItems, data, report); + processInProceedings(publishNewItems, data, report, pretend); } else if (InternetArticle.class.getSimpleName().equals(data.getType())) { - processInternetArticle(publishNewItems, data, report); + processInternetArticle(publishNewItems, data, report, pretend); } else if (Monograph.class.getSimpleName().equals(data.getType())) { System.err.println("CAlling monograph importer..."); - processMonograph(publishNewItems, data, report); + processMonograph(publishNewItems, data, report, pretend); } else if (Proceedings.class.getSimpleName().equals(data.getType())) { - processProceedings(publishNewItems, data, report); + processProceedings(publishNewItems, data, report, pretend); } else if (Review.class.getSimpleName().equals(data.getType())) { - processReview(publishNewItems, data, report); + processReview(publishNewItems, data, report, pretend); } else if (WorkingPaper.class.getSimpleName().equals(data.getType())) { - processWorkingPaper(publishNewItems, data, report); + processWorkingPaper(publishNewItems, data, report, pretend); } return report; @@ -168,123 +169,134 @@ public class PublicationsImporter implements SciPublicationsImporter { private void processArticleInCollectedVolume(final boolean publishNewItems, final CsvLine data, - final PublicationImportReport report) { + final PublicationImportReport report, + final boolean pretend) { if (isPublicationAlreadyInDatabase(data, ArticleInCollectedVolume.class.getSimpleName(), report)) { return; } - final ArticleInCollectedVolumeImporter importer = new ArticleInCollectedVolumeImporter(data, report); + final ArticleInCollectedVolumeImporter importer = new ArticleInCollectedVolumeImporter(data, report, pretend); importer.doImport(publishNewItems); } private void processArticleInJournal(final boolean publishNewItems, final CsvLine data, - final PublicationImportReport report) { + final PublicationImportReport report, + final boolean pretend) { if (isPublicationAlreadyInDatabase(data, ArticleInJournal.class.getSimpleName(), report)) { return; } - final ArticleInJournalImporter importer = new ArticleInJournalImporter(data, report); + final ArticleInJournalImporter importer = new ArticleInJournalImporter(data, report, pretend); importer.doImport(publishNewItems); } private void processCollectedVolume(final boolean publishNewItems, final CsvLine data, - final PublicationImportReport report) { + final PublicationImportReport report, + final boolean pretend) { if (isPublicationAlreadyInDatabase(data, CollectedVolume.class.getSimpleName(), report)) { return; } - final CollectedVolumeImporter importer = new CollectedVolumeImporter(data, report); + final CollectedVolumeImporter importer = new CollectedVolumeImporter(data, report, pretend); importer.doImport(publishNewItems); } private void processExpertise(final boolean publishNewItems, final CsvLine data, - final PublicationImportReport report) { + final PublicationImportReport report, + final boolean pretend) { if (isPublicationAlreadyInDatabase(data, Expertise.class.getSimpleName(), report)) { return; } - final ExpertiseImporter importer = new ExpertiseImporter(data, report); + final ExpertiseImporter importer = new ExpertiseImporter(data, report, pretend); importer.doImport(publishNewItems); } private void processGreyLiterature(final boolean publishNewItems, final CsvLine data, - final PublicationImportReport report) { + final PublicationImportReport report, + final boolean pretend) { if (isPublicationAlreadyInDatabase(data, GreyLiterature.class.getSimpleName(), report)) { return; } - final GreyLiteratureImporter importer = new GreyLiteratureImporter(data, report); + final GreyLiteratureImporter importer = new GreyLiteratureImporter(data, report, pretend); importer.doImport(publishNewItems); } private void processInProceedings(final boolean publishNewItems, final CsvLine data, - final PublicationImportReport report) { + final PublicationImportReport report, + final boolean pretend) { if (isPublicationAlreadyInDatabase(data, InProceedings.class.getSimpleName(), report)) { return; } - final InProceedingsImporter importer = new InProceedingsImporter(data, report); + final InProceedingsImporter importer = new InProceedingsImporter(data, report, pretend); importer.doImport(publishNewItems); } private void processInternetArticle(final boolean publishNewItems, final CsvLine data, - final PublicationImportReport report) { + final PublicationImportReport report, + final boolean pretend) { if (isPublicationAlreadyInDatabase(data, InternetArticle.class.getSimpleName(), report)) { return; } - final InternetArticleImporter importer = new InternetArticleImporter(data, report); + final InternetArticleImporter importer = new InternetArticleImporter(data, report, pretend); importer.doImport(publishNewItems); } private void processMonograph(final boolean publishNewItems, final CsvLine data, - final PublicationImportReport report) { + final PublicationImportReport report, + final boolean pretend) { if (isPublicationAlreadyInDatabase(data, Monograph.class.getSimpleName(), report)) { return; } - final MonographImporter importer = new MonographImporter(data, report); + final MonographImporter importer = new MonographImporter(data, report, pretend); importer.doImport(publishNewItems); } private void processProceedings(final boolean publishNewItems, final CsvLine data, - final PublicationImportReport report) { + final PublicationImportReport report, + final boolean pretend) { if (isPublicationAlreadyInDatabase(data, Proceedings.class.getSimpleName(), report)) { return; } System.err.println("Publication is not in database"); - final ProceedingsImporter importer = new ProceedingsImporter(data, report); + final ProceedingsImporter importer = new ProceedingsImporter(data, report, pretend); importer.doImport(publishNewItems); } private void processReview(final boolean publishNewItems, final CsvLine data, - final PublicationImportReport report) { + final PublicationImportReport report, + final boolean pretend) { if (isPublicationAlreadyInDatabase(data, Review.class.getSimpleName(), report)) { return; } - final ReviewImporter importer = new ReviewImporter(data, report); + final ReviewImporter importer = new ReviewImporter(data, report, pretend); importer.doImport(publishNewItems); } private void processWorkingPaper(final boolean publishNewItems, final CsvLine data, - final PublicationImportReport report) { + final PublicationImportReport report, + final boolean pretend) { if (isPublicationAlreadyInDatabase(data, WorkingPaper.class.getSimpleName(), report)) { return; } - final WorkingPaperImporter importer = new WorkingPaperImporter(data, report); + final WorkingPaperImporter importer = new WorkingPaperImporter(data, report, pretend); importer.doImport(publishNewItems); } diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ReviewImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ReviewImporter.java index ce24cb0a3..6d2668a26 100644 --- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ReviewImporter.java +++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ReviewImporter.java @@ -11,13 +11,17 @@ import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport */ class ReviewImporter extends ArticleInJournalImporter { - public ReviewImporter(final CsvLine data, final PublicationImportReport report) { - super(data, report); + public ReviewImporter(final CsvLine data, final PublicationImportReport report, final boolean pretend) { + super(data, report, pretend); } @Override protected ArticleInJournal createPublication() { - return new Review(); + if (isPretend()) { + return null; + } else { + return new Review(); + } } } diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/WorkingPaperImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/WorkingPaperImporter.java index 0d12b5aff..840721fa1 100644 --- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/WorkingPaperImporter.java +++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/WorkingPaperImporter.java @@ -11,17 +11,26 @@ import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport */ class WorkingPaperImporter extends AbstractUnPublishedImporter { - protected WorkingPaperImporter(final CsvLine data, final PublicationImportReport report) { - super(data, report); + protected WorkingPaperImporter(final CsvLine data, final PublicationImportReport report, final boolean pretend) { + super(data, report, pretend); } @Override - protected WorkingPaper createPublication() { - return new WorkingPaper(); + protected WorkingPaper createPublication() { + if (isPretend()) { + return null; + } else { + return new WorkingPaper(); + } } @Override protected PublicationBundle createBundle(final WorkingPaper workingPaper) { - return new PublicationBundle(workingPaper); + if (isPretend()) { + return null; + } else { + return new PublicationBundle(workingPaper); + } } + }