diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/PublicationsConfig.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/PublicationsConfig.java index c224d40ab..9f55d7819 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/PublicationsConfig.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/PublicationsConfig.java @@ -1,7 +1,6 @@ package com.arsdigita.cms.contenttypes; import com.arsdigita.runtime.AbstractConfig; - import com.arsdigita.util.parameter.BooleanParameter; import com.arsdigita.util.parameter.IntegerParameter; import com.arsdigita.util.parameter.Parameter; diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ImporterCli.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ImporterCli.java index 1d30429cf..0fff6ab28 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ImporterCli.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ImporterCli.java @@ -69,16 +69,18 @@ public class ImporterCli extends Program { protected void doRun(final CommandLine cmdLine) { final PrintWriter writer = new PrintWriter(System.out); final PrintWriter errWriter = new PrintWriter(System.err); - + writer.printf("Publications Importer CLI tool.\n"); + writer.flush(); if (cmdLine.hasOption(LIST)) { final List formats = SciPublicationsImporters.getInstance().getSupportedFormats(); writer.printf("Supported formats:\n"); for (PublicationFormat format : formats) { writer.printf("%s, MIME type: %s, file extension: %s\n", format.getName(), - format.getMimeType().toString(), - format.getFileExtension()); + format.getMimeType().toString(), + format.getFileExtension()); } + writer.flush(); return; } @@ -87,6 +89,7 @@ public class ImporterCli extends Program { if (cmdLine.getArgs().length != 1) { errWriter.printf("Missing file/directory to import.\n"); + errWriter.flush(); help(System.err); return; } @@ -94,6 +97,9 @@ public class ImporterCli extends Program { final String sourceName = cmdLine.getArgs()[0]; final File source = new File(sourceName); importFile(source, pretend, publish); + + errWriter.flush(); + writer.flush(); } protected void importFile(final File file, final boolean pretend, final boolean publish) { @@ -111,12 +117,13 @@ public class ImporterCli extends Program { } } else if (file.isFile()) { final String fileName = file.getName(); - final String extension = fileName.substring(fileName.lastIndexOf('.')); + final String extension = fileName.substring(fileName.lastIndexOf('.') + 1); final PublicationFormat format = findFormatForExtension(extension); if (format == null) { errWriter.printf(String.format("No importer for publication format identified " + "by file extension '%s' available.\n", extension)); + errWriter.flush(); return; } @@ -127,15 +134,29 @@ public class ImporterCli extends Program { data = FileUtils.readFileToString(file); } catch (IOException ex) { errWriter.printf(String.format("Failed to read file '%s'.\n", file.getAbsolutePath()), ex); + errWriter.flush(); return; } writer.printf("Importing publications from file '%s'...\n", file.getAbsolutePath()); - final ImportReport report = importer.importPublications(data, pretend, publish); + writer.flush(); + final ImportReport report; + 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()); + ex.printStackTrace(errWriter); + errWriter.flush(); + writer.flush(); + return; + } writer.printf("Import finished. Report:\n\n"); writer.print(report.toString()); + writer.flush(); } else { errWriter.printf("File %s does not exist.\n", file.getAbsolutePath()); + errWriter.flush(); } } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/SciPublicationsImportException.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/SciPublicationsImportException.java new file mode 100644 index 000000000..0988a5202 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/SciPublicationsImportException.java @@ -0,0 +1,49 @@ +package com.arsdigita.cms.scipublications.importer; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class SciPublicationsImportException extends Exception { + + private static final long serialVersionUID = 1L; + + /** + * Creates a new instance of SciPublicationsImportException without detail message. + */ + public SciPublicationsImportException() { + super(); + } + + + /** + * Constructs an instance of SciPublicationsImportException with the specified detail message. + * + * @param msg The detail message. + */ + public SciPublicationsImportException(final String msg) { + super(msg); + } + + /** + * Constructs an instance of SciPublicationsImportException which wraps the + * specified exception. + * + * @param exception The exception to wrap. + */ + public SciPublicationsImportException(final Exception exception) { + super(exception); + } + + /** + * Constructs an instance of SciPublicationsImportException with the specified message which also wraps the + * specified exception. + * + * @param msg The detail message. + * @param exception The exception to wrap. + */ + public SciPublicationsImportException(final String msg, final Exception exception) { + super(msg, exception); + } +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/SciPublicationsImporter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/SciPublicationsImporter.java index 3cf3becbf..0874c92eb 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/SciPublicationsImporter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/SciPublicationsImporter.java @@ -42,7 +42,9 @@ public interface SciPublicationsImporter { * or to check an file containing publications. * @param publishNewItems If set to {@code true} the items created by the importer will also be published. * @return A report describing what the importer has done. + * @throws SciPublicationsImportException If a none recoverable error occurs */ - ImportReport importPublications(String publications, boolean pretend, boolean publishNewItems); + ImportReport importPublications(String publications, boolean pretend, boolean publishNewItems) + throws SciPublicationsImportException; } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/SciPublicationsImporters.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/SciPublicationsImporters.java index e731d04fb..36a36386f 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/SciPublicationsImporters.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/SciPublicationsImporters.java @@ -58,7 +58,7 @@ public class SciPublicationsImporters { * specified format. */ public SciPublicationsImporter getImporterForFormat(final String format) { - return importers.get(format); + return importers.get(format.toLowerCase()); } /** diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/report/ImportReport.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/report/ImportReport.java index 8ead4459c..1e5857176 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/report/ImportReport.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/report/ImportReport.java @@ -54,19 +54,21 @@ public class ImportReport { writer.printf("Number of publications imported: %d\n", publications.size()); writer.printf("Pretend mode: %b\n", pretend); if (pretend) { - writer.printf("Pretend mode is active. None of the publications in this report have been imported. The" - + "import only shown what would be done if the publications are truly imported."); + writer.printf("Pretend mode is active. None of the publications in this report have been imported. The " + + "report only shows what would be done if the publications are truly imported.\n"); } for(PublicationImportReport publication: publications) { for(int i = 0; i < 80; i++) { writer.append('-'); } + writer.append('\n'); writer.append(publication.toString()); for(int i = 0; i < 80; i++) { writer.append('-'); } + writer.append('\n'); } return strWriter.toString(); diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/report/PublicationImportReport.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/report/PublicationImportReport.java index 1c47e374a..883a4e720 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/report/PublicationImportReport.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/report/PublicationImportReport.java @@ -145,15 +145,15 @@ public class PublicationImportReport { writer.printf("%24s: %s\n", "title", title); writer.printf("%24s: %s\n", "type", type); - writer.printf("%24s: %b\n", successful); + writer.printf("%24s: %b\n", "Already in database", alreadyInDatabase); + writer.printf("%24s: %b\n", "successful", successful); if (!successful) { writer.printf("Import failed. Messages from importer:\n "); for(String message : messages) { writer.printf("%s\n", message); } return strWriter.toString(); - } - writer.printf("%24s: %b\n", "Already in database", alreadyInDatabase); + } writer.printf("Authors:"); for(AuthorImportReport author: authors) { writer.printf("%s\n", author.toString()); diff --git a/ccm-sci-publicationscsvimporter/src/ccm-sci-publicationscsvimporter.config b/ccm-sci-publicationscsvimporter/src/ccm-sci-publicationscsvimporter.config index f68f37732..2cc099ed8 100644 --- a/ccm-sci-publicationscsvimporter/src/ccm-sci-publicationscsvimporter.config +++ b/ccm-sci-publicationscsvimporter/src/ccm-sci-publicationscsvimporter.config @@ -1,4 +1,4 @@ - + \ No newline at end of file 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 e50ffb4e2..23850e8da 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 @@ -1,16 +1,22 @@ package com.arsdigita.cms.scipublications.importer.csv; +import com.arsdigita.categorization.Category; +import com.arsdigita.cms.Folder; import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.cms.contenttypes.PublicationBundle; import com.arsdigita.cms.lifecycle.LifecycleDefinition; import com.arsdigita.cms.lifecycle.LifecycleDefinitionCollection; import com.arsdigita.cms.scipublications.importer.report.FieldImportReport; import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; import com.arsdigita.cms.scipublications.importer.util.AuthorData; import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; +import com.arsdigita.kernel.Kernel; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.List; +import java.util.Map; /** * @@ -48,7 +54,11 @@ abstract class AbstractPublicationImporter { */ public final void doImport(final boolean publishNewItems) { final T publication = importPublication(); + publication.save(); + + assignCategories(publication.getPublicationBundle()); + if (publishNewItems) { final Calendar now = new GregorianCalendar(); final LifecycleDefinitionCollection lifecycles = publication.getContentSection().getLifecycleDefinitions(); @@ -56,6 +66,7 @@ abstract class AbstractPublicationImporter { final LifecycleDefinition lifecycleDef = lifecycles.getLifecycleDefinition(); publication.publish(lifecycleDef, now.getTime()); } + } /** @@ -80,11 +91,29 @@ 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); processAuthors(publication); + publication.save(); + return publication; } @@ -95,6 +124,8 @@ abstract class AbstractPublicationImporter { */ protected abstract T createPublication(); + protected abstract PublicationBundle createBundle(final T publication); + private void processTitleAndName(final T publication) { publication.setTitle(data.getTitle()); publication.setName(normalizeString(data.getTitle())); @@ -186,4 +217,27 @@ abstract class AbstractPublicationImporter { } } + private void assignCategories(final PublicationBundle publicationBundle) { + if ((data.getScope() != null) && "Persönlich".equals(data.getScope())) { + //Don't assign to a category, publications in only for personal profile + return; + } + + final String[] departments = data.getDepartment().split(","); + + final Category defaultCat = PublicationsImporter.getConfig().getDefaultCategory(); + if (defaultCat != null) { + defaultCat.addChild(publicationBundle); + } + + final Map depCats = PublicationsImporter.getConfig().getDepartmentCategories(); + Category category; + for (String department : departments) { + category = depCats.get(department); + if (category != null) { + category.addChild(publicationBundle); + } + } + } + } 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 736370068..38ae121d1 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 @@ -1,14 +1,11 @@ package com.arsdigita.cms.scipublications.importer.csv; -import com.arsdigita.cms.Folder; import com.arsdigita.cms.contenttypes.ArticleInCollectedVolume; import com.arsdigita.cms.contenttypes.ArticleInCollectedVolumeBundle; -import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.cms.contenttypes.PublicationBundle; import com.arsdigita.cms.scipublications.importer.report.FieldImportReport; import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; -import com.arsdigita.kernel.Kernel; -import java.math.BigDecimal; /** * @@ -70,18 +67,12 @@ class ArticleInCollectedVolumeImporter extends AbstractPublicationImporter + * @version $Id$ + */ +public class CsvImporterConfig extends AbstractConfig { + + private static final Logger LOGGER = Logger.getLogger(CsvImporterConfig.class); + private Parameter defaultCategoryId; + private Parameter departmentCategoryIds; + + public CsvImporterConfig() { + super(); + defaultCategoryId = new IntegerParameter("com.arsdigita.cms.scipublications.importer.csv.default_category_id", + Parameter.REQUIRED, + 0); + departmentCategoryIds = new StringParameter( + "com.arsdigita.cms.scipublications.importer.csv.department_category_ids", + Parameter.REQUIRED, + ""); + + register(defaultCategoryId); + register(departmentCategoryIds); + + loadInfo(); + } + + public Integer getDefaultCategoryId() { + return (Integer) get(defaultCategoryId); + } + + public Category getDefaultCategory() { + final Integer categoryId = getDefaultCategoryId(); + + if (categoryId == 0) { + return null; + } else { + return new Category(new BigDecimal(categoryId)); + } + } + + public String getDepartmentCategoryIds() { + return (String) get(departmentCategoryIds); + } + + public Map getDepartmentCategories() { + final String categoryIds = getDepartmentCategoryIds(); + + final Map categories = new HashMap(); + + final String[] departmentTokens = categoryIds.split(";"); + for (String departmentToken : departmentTokens) { + processDepartmentToken(departmentToken, categories); + } + + return categories; + } + + private void processDepartmentToken(final String departmentToken, final Map categories) { + final String[] tokens = departmentToken.split(":"); + + if (tokens.length != 2) { + LOGGER.warn("Failed to parse department categories id property. Invalid department token."); + return; + } + + final BigDecimal categoryId = new BigDecimal(tokens[1]); + final Category category = new Category(categoryId); + + categories.put(tokens[0], category); + } + +} diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/CsvImporterConfig_parameter.properties b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/CsvImporterConfig_parameter.properties new file mode 100644 index 000000000..5a6f8f5c4 --- /dev/null +++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/CsvImporterConfig_parameter.properties @@ -0,0 +1,10 @@ +com.arsdigita.cms.scipublications.importer.csv.default_category_id.title = Default category for imported publications +com.arsdigita.cms.scipublications.importer.csv.default_category_id.purpose = All publications which are created during the import will be assigned to this category. The category set using the id of the category. +com.arsdigita.cms.scipublications.importer.csv.default_category_id.example = 12345 +com.arsdigita.cms.scipublications.importer.csv.default_category_id.format = [Integer] + +com.arsdigita.cms.scipublications.importer.csv.department_category_ids.title = Department categories +com.arsdigita.cms.scipublications.importer.csv.department_category_ids.purpose = Categories for the departments provided in the CSV. This property is formated string with this format: DepartmentId1:CategoryId1;DepartmentId2:CategoryId2;... +com.arsdigita.cms.scipublications.importer.csv.department_category_ids.example = 1:12345;2:67890 +com.arsdigita.cms.scipublications.importer.csv.department_category_ids.format = [String] + 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 3c15d067a..6fa5354ed 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 @@ -1,13 +1,9 @@ package com.arsdigita.cms.scipublications.importer.csv; -import com.arsdigita.cms.Folder; import com.arsdigita.cms.contenttypes.Expertise; -import com.arsdigita.cms.contenttypes.Publication; import com.arsdigita.cms.contenttypes.PublicationBundle; import com.arsdigita.cms.scipublications.importer.report.FieldImportReport; import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; -import com.arsdigita.kernel.Kernel; -import java.math.BigDecimal; /** * @@ -22,37 +18,21 @@ class ExpertiseImporter extends AbstractPublicationImporter { @Override protected Expertise importPublication() { - final Expertise expertise = super.importPublication(); + final Expertise expertise = super.importPublication(); final CsvLine data = getData(); final PublicationImportReport report = getReport(); - + if ((data.getPlace() != null) && !data.getPlace().isEmpty()) { expertise.setPlace(data.getPlace()); report.addField(new FieldImportReport("Place", data.getPlace())); } - + processNumberOfPages(expertise); - - return expertise; - } - - @Override - protected Expertise createPublication() { - final Integer folderId = Publication.getConfig().getDefaultPublicationsFolder(); - final Folder folder = new Folder(new BigDecimal(folderId)); - - final Expertise expertise = new Expertise(); - expertise.setContentSection(folder.getContentSection()); - expertise.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); - - final PublicationBundle bundle = new PublicationBundle(expertise); - bundle.setParent(folder); - bundle.setContentSection(folder.getContentSection()); return expertise; } - private void processNumberOfPages(final Expertise publication) { + private void processNumberOfPages(final Expertise publication) { if ((getData().getNumberOfPages() != null) && !getData().getNumberOfPages().isEmpty()) { try { final int volume = Integer.parseInt(getData().getNumberOfPages()); @@ -64,4 +44,15 @@ class ExpertiseImporter extends AbstractPublicationImporter { } } } + + @Override + protected Expertise createPublication() { + return new Expertise(); + } + + @Override + protected PublicationBundle createBundle(final Expertise expertise) { + 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 ee80bf564..904c0d909 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 @@ -1,13 +1,9 @@ package com.arsdigita.cms.scipublications.importer.csv; -import com.arsdigita.cms.Folder; import com.arsdigita.cms.contenttypes.GreyLiterature; -import com.arsdigita.cms.contenttypes.Publication; import com.arsdigita.cms.contenttypes.PublicationBundle; import com.arsdigita.cms.scipublications.importer.report.FieldImportReport; import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; -import com.arsdigita.kernel.Kernel; -import java.math.BigDecimal; /** * @@ -30,22 +26,6 @@ class GreyLiteratureImporter extends AbstractUnPublishedImporter return publication; } - @Override - protected GreyLiterature createPublication() { - final Integer folderId = Publication.getConfig().getDefaultPublicationsFolder(); - final Folder folder = new Folder(new BigDecimal(folderId)); - - final GreyLiterature greyLiterature = new GreyLiterature(); - greyLiterature.setContentSection(folder.getContentSection()); - greyLiterature.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); - - final PublicationBundle bundle = new PublicationBundle(greyLiterature); - bundle.setParent(folder); - bundle.setContentSection(folder.getContentSection()); - - return greyLiterature; - } - private void processPagesFrom(final GreyLiterature publication) { if ((getData().getPageFrom() != null) && !getData().getPageFrom().isEmpty()) { try { @@ -70,4 +50,14 @@ class GreyLiteratureImporter extends AbstractUnPublishedImporter } } + @Override + protected GreyLiterature createPublication() { + return new GreyLiterature(); + } + + @Override + protected PublicationBundle createBundle(final GreyLiterature greyLiterature) { + 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 b8505edf5..0d33a22a6 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 @@ -1,14 +1,11 @@ package com.arsdigita.cms.scipublications.importer.csv; -import com.arsdigita.cms.Folder; import com.arsdigita.cms.contenttypes.InProceedings; import com.arsdigita.cms.contenttypes.InProceedingsBundle; -import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.cms.contenttypes.PublicationBundle; import com.arsdigita.cms.scipublications.importer.report.FieldImportReport; import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; -import com.arsdigita.kernel.Kernel; -import java.math.BigDecimal; /** * @@ -66,18 +63,13 @@ class InProceedingsImporter extends AbstractPublicationImporter { @Override protected InProceedings createPublication() { - final Integer folderId = Publication.getConfig().getDefaultPublicationsFolder(); - final Folder folder = new Folder(new BigDecimal(folderId)); + return new InProceedings(); - final InProceedings inProceedings = new InProceedings(); - inProceedings.setContentSection(folder.getContentSection()); - inProceedings.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); + } - final InProceedingsBundle bundle = new InProceedingsBundle(inProceedings); - bundle.setParent(folder); - bundle.setContentSection(folder.getContentSection()); - - return inProceedings; + @Override + protected PublicationBundle createBundle(final InProceedings inProceedings) { + 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 56bb7b501..8c63198e1 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 @@ -1,13 +1,10 @@ package com.arsdigita.cms.scipublications.importer.csv; -import com.arsdigita.cms.Folder; import com.arsdigita.cms.contenttypes.InternetArticle; import com.arsdigita.cms.contenttypes.InternetArticleBundle; -import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.cms.contenttypes.PublicationBundle; import com.arsdigita.cms.scipublications.importer.report.FieldImportReport; import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; -import com.arsdigita.kernel.Kernel; -import java.math.BigDecimal; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -109,19 +106,12 @@ class InternetArticleImporter extends AbstractPublicationImporter * @version $Id$ */ -class WorkingPaperImporter extends AbstractUnPublishedImporter { +class WorkingPaperImporter extends AbstractUnPublishedImporter { protected WorkingPaperImporter(final CsvLine data, final PublicationImportReport report) { super(data, report); } @Override - protected WorkingPaper createPublication() { - final Integer folderId = Publication.getConfig().getDefaultPublicationsFolder(); - final Folder folder = new Folder(new BigDecimal(folderId)); - - final WorkingPaper workingPaper = new WorkingPaper(); - workingPaper.setContentSection(folder.getContentSection()); - workingPaper.setLanguage(Kernel.getConfig().getLanguagesIndependentCode()); - - final PublicationBundle bundle = new PublicationBundle(workingPaper); - bundle.setParent(folder); - bundle.setContentSection(folder.getContentSection()); - - return workingPaper; + protected WorkingPaper createPublication() { + return new WorkingPaper(); } + @Override + protected PublicationBundle createBundle(final WorkingPaper workingPaper) { + return new PublicationBundle(workingPaper); + } }