Aktueller Stand des CSV Importer.
git-svn-id: https://svn.libreccm.org/ccm/trunk@1938 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
53e796b724
commit
b17872d721
|
|
@ -71,7 +71,9 @@ public class ImporterUtil {
|
|||
|
||||
final DataCollection collection = session.retrieve(GenericPerson.BASE_DATA_OBJECT_TYPE);
|
||||
collection.addEqualsFilter("surname", authorData.getSurname());
|
||||
collection.addEqualsFilter("givenname", authorData.getGivenName());
|
||||
if ((authorData.getGivenName() != null) && !authorData.getGivenName().isEmpty()) {
|
||||
collection.addEqualsFilter("givenname", authorData.getGivenName());
|
||||
}
|
||||
|
||||
report.setSurname(authorData.getSurname());
|
||||
report.setGivenName(authorData.getGivenName());
|
||||
|
|
@ -140,7 +142,7 @@ public class ImporterUtil {
|
|||
|
||||
final Session session = SessionManager.getSession();
|
||||
final DataCollection collection = session.retrieve(Publisher.BASE_DATA_OBJECT_TYPE);
|
||||
collection.addEqualsFilter("title", publisherName);
|
||||
collection.addEqualsFilter("publisherName", publisherName);
|
||||
collection.addEqualsFilter("place", place);
|
||||
report.setPublisherName(publisherName);
|
||||
report.setPlace(place);
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@ 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.AuthorImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.FieldImportReport;
|
||||
import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport;
|
||||
|
|
@ -14,8 +12,6 @@ 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;
|
||||
|
||||
|
|
@ -28,7 +24,8 @@ abstract class AbstractPublicationImporter<T extends Publication> {
|
|||
|
||||
private static final String AUTHORS_SEP = ";";
|
||||
private static final String AUTHOR_NAME_SEP = ",";
|
||||
private static final String EDITOR_STR = "(Hrsg.)";
|
||||
//private static final String EDITOR_STR = "(Hrsg.)";
|
||||
private static final String[] EDITOR_STRS = {"(Hrsg.)", "(Hg.)", "(Ed.)", "(ed.)"};
|
||||
private final CsvLine data;
|
||||
private final PublicationImportReport report;
|
||||
private final boolean pretend;
|
||||
|
|
@ -109,6 +106,7 @@ abstract class AbstractPublicationImporter<T extends Publication> {
|
|||
final T publication = createPublication();
|
||||
|
||||
processTitleAndName(publication);
|
||||
processYear(publication);
|
||||
processReviewed(publication);
|
||||
|
||||
if (!pretend) {
|
||||
|
|
@ -169,6 +167,20 @@ abstract class AbstractPublicationImporter<T extends Publication> {
|
|||
report.setTitle(data.getTitle());
|
||||
}
|
||||
|
||||
private void processYear(final T publication) {
|
||||
if (!pretend) {
|
||||
final String year = data.getYear();
|
||||
|
||||
try {
|
||||
publication.setYearOfPublication(Integer.parseInt(year));
|
||||
} catch(NumberFormatException ex) {
|
||||
publication.setYearOfPublication(0);
|
||||
}
|
||||
}
|
||||
|
||||
report.addField(new FieldImportReport("year", data.getYear()));
|
||||
}
|
||||
|
||||
private void processReviewed(final T publication) {
|
||||
final String reviewedStr = data.getReviewed();
|
||||
final boolean reviewed;
|
||||
|
|
@ -233,29 +245,34 @@ abstract class AbstractPublicationImporter<T extends Publication> {
|
|||
|
||||
if (nameTokens.length == 1) {
|
||||
final AuthorData author = new AuthorData();
|
||||
author.setSurname(nameTokens[0]);
|
||||
author.setSurname(checkForEditor(author, nameTokens[0]));
|
||||
authors.add(author);
|
||||
} else if (nameTokens.length == 2) {
|
||||
final AuthorData author = new AuthorData();
|
||||
author.setSurname(nameTokens[0]);
|
||||
if (nameTokens[1].endsWith(EDITOR_STR)) {
|
||||
author.setEditor(true);
|
||||
author.setGivenName(nameTokens[1].substring(0, nameTokens[1].length() - EDITOR_STR.length()));
|
||||
} else {
|
||||
author.setGivenName(nameTokens[1]);
|
||||
}
|
||||
|
||||
author.setSurname(checkForEditor(author, nameTokens[0]));
|
||||
author.setGivenName(checkForEditor(author, nameTokens[1]));
|
||||
|
||||
authors.add(author);
|
||||
} else {
|
||||
final AuthorData author = new AuthorData();
|
||||
author.setSurname(nameTokens[0]);
|
||||
if (nameTokens[1].endsWith(EDITOR_STR)) {
|
||||
author.setEditor(true);
|
||||
author.setGivenName(nameTokens[1].substring(0, nameTokens[1].length() - EDITOR_STR.length()));
|
||||
} else {
|
||||
author.setGivenName(nameTokens[1]);
|
||||
}
|
||||
|
||||
author.setSurname(checkForEditor(author, nameTokens[0]));
|
||||
author.setGivenName(checkForEditor(author, nameTokens[1]));
|
||||
|
||||
authors.add(author);
|
||||
}
|
||||
}
|
||||
|
||||
private String checkForEditor(final AuthorData author, final String token) {
|
||||
for(String editorStr : EDITOR_STRS) {
|
||||
if (token.endsWith(editorStr)) {
|
||||
author.setEditor(true);
|
||||
return token.substring(0, token.length() - editorStr.length()).trim();
|
||||
}
|
||||
}
|
||||
|
||||
return token.trim();
|
||||
}
|
||||
|
||||
private void assignCategories(final PublicationBundle publicationBundle) {
|
||||
|
|
|
|||
|
|
@ -57,9 +57,9 @@ public class CsvImporterConfig extends AbstractConfig {
|
|||
|
||||
public Map<String, Category> getDepartmentCategories() {
|
||||
final String categoryIds = getDepartmentCategoryIds();
|
||||
|
||||
|
||||
final Map<String, Category> categories = new HashMap<String, Category>();
|
||||
|
||||
|
||||
if ((categoryIds == null) || categoryIds.isEmpty()) {
|
||||
return categories;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -178,6 +178,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
final boolean pretend,
|
||||
final ImporterUtil importerUtil) {
|
||||
if (isPublicationAlreadyInDatabase(data, ArticleInCollectedVolume.class.getSimpleName(), report)) {
|
||||
report.setSuccessful(true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -194,6 +195,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
final boolean pretend,
|
||||
final ImporterUtil importerUtil) {
|
||||
if (isPublicationAlreadyInDatabase(data, ArticleInJournal.class.getSimpleName(), report)) {
|
||||
report.setSuccessful(true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -207,6 +209,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
final boolean pretend,
|
||||
final ImporterUtil importerUtil) {
|
||||
if (isPublicationAlreadyInDatabase(data, CollectedVolume.class.getSimpleName(), report)) {
|
||||
report.setSuccessful(true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -219,6 +222,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
final boolean pretend,
|
||||
final ImporterUtil importerUtil) {
|
||||
if (isPublicationAlreadyInDatabase(data, Expertise.class.getSimpleName(), report)) {
|
||||
report.setSuccessful(true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -232,6 +236,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
final boolean pretend,
|
||||
final ImporterUtil importerUtil) {
|
||||
if (isPublicationAlreadyInDatabase(data, GreyLiterature.class.getSimpleName(), report)) {
|
||||
report.setSuccessful(true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -245,6 +250,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
final boolean pretend,
|
||||
final ImporterUtil importerUtil) {
|
||||
if (isPublicationAlreadyInDatabase(data, InProceedings.class.getSimpleName(), report)) {
|
||||
report.setSuccessful(true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -258,6 +264,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
final boolean pretend,
|
||||
final ImporterUtil importerUtil) {
|
||||
if (isPublicationAlreadyInDatabase(data, InternetArticle.class.getSimpleName(), report)) {
|
||||
report.setSuccessful(true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -271,6 +278,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
final boolean pretend,
|
||||
final ImporterUtil importerUtil) {
|
||||
if (isPublicationAlreadyInDatabase(data, Monograph.class.getSimpleName(), report)) {
|
||||
report.setSuccessful(true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -284,6 +292,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
final boolean pretend,
|
||||
final ImporterUtil importerUtil) {
|
||||
if (isPublicationAlreadyInDatabase(data, Proceedings.class.getSimpleName(), report)) {
|
||||
report.setSuccessful(true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -297,6 +306,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
final boolean pretend,
|
||||
final ImporterUtil importerUtil) {
|
||||
if (isPublicationAlreadyInDatabase(data, Review.class.getSimpleName(), report)) {
|
||||
report.setSuccessful(true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -311,6 +321,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
final boolean pretend,
|
||||
final ImporterUtil importerUtil) {
|
||||
if (isPublicationAlreadyInDatabase(data, ResearchReport.class.getSimpleName(), report)) {
|
||||
report.setSuccessful(true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -324,6 +335,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
final boolean pretend,
|
||||
final ImporterUtil importerUtil) {
|
||||
if (isPublicationAlreadyInDatabase(data, WorkingPaper.class.getSimpleName(), report)) {
|
||||
report.setSuccessful(true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -331,18 +343,6 @@ public class PublicationsImporter implements SciPublicationsImporter {
|
|||
importer.doImport(publishNewItems);
|
||||
}
|
||||
|
||||
// private List<AuthorData> parseAuthors(final boolean publishNewItems, final String authorsStr, final PublicationImportReport report) {
|
||||
// final List<AuthorData> authors = new ArrayList<AuthorData>();
|
||||
//
|
||||
// final String[] tokens = authorsStr.split(AUTHORS_SEP);
|
||||
// reportWriter.printf("Found %d authors...\n", tokens.length);
|
||||
//
|
||||
// for (String token : tokens) {
|
||||
// parseAuthor(token, authors, reportWriter);
|
||||
// }
|
||||
//
|
||||
// return authors;
|
||||
// }
|
||||
private boolean isPublicationAlreadyInDatabase(final CsvLine data,
|
||||
final String type,
|
||||
final PublicationImportReport report) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue