Korrekturen am DaBinImporter

git-svn-id: https://svn.libreccm.org/ccm/trunk@868 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2011-04-20 08:55:44 +00:00
parent 481211fe25
commit 792ed56915
1 changed files with 66 additions and 43 deletions

View File

@ -20,6 +20,7 @@
package com.arsdigita.cms.dabin;
import com.arsdigita.cms.ContentBundle;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.cms.ContentSection;
import com.arsdigita.cms.FileAsset;
import com.arsdigita.cms.Folder;
@ -1602,18 +1603,22 @@ public class DaBInImporter extends Program {
GenericPerson personDe = null;
GenericPerson personEn = null;
Folder folder = null;
switch (type) {
case MEMBER:
personDe = new SciMember();
personEn = new SciMember();
folder = members;
break;
case AUTHOR:
personDe = new SciAuthor();
personEn = new SciAuthor();
folder = authors;
break;
case OTHER:
personDe = new Person();
personEn = new Person();
folder = persons;
break;
}
personDe.setSurname(personData.getSurname());
@ -1646,6 +1651,10 @@ public class DaBInImporter extends Program {
personEn.save();
personEn.setLanguage("en");
resolveDuplicateNameAndTitle(personDe, folder);
resolveDuplicateNameAndTitle(personEn, folder);
ContentBundle person;
person = new ContentBundle(personDe);
person.addInstance(personEn);
@ -1657,19 +1666,6 @@ public class DaBInImporter extends Program {
personDe.setContentSection(section);
personEn.setContentSection(section);
Folder folder = null;
switch (type) {
case MEMBER:
folder = members;
break;
case AUTHOR:
folder = authors;
break;
case OTHER:
folder = persons;
break;
}
folder.addItem(person);
StringTokenizer contactData = new StringTokenizer(
@ -1765,6 +1761,7 @@ public class DaBInImporter extends Program {
homepage = value;
homepage = value;
}
}
contactDe.setContentSection(personsSection);
contactDe.setLifecycle(createLifecycle(personsLifecycle));
@ -1798,7 +1795,7 @@ public class DaBInImporter extends Program {
homepageLinkEn.setLinkListName("");
homepageLinkEn.setLinkOwner(personDe);
homepageLinkEn.save();
}
}
personsMap.put(personData.getDabinId(), person);
@ -2023,10 +2020,12 @@ public class DaBInImporter extends Program {
project.setDefaultLanguage("de");
if (projectDe != null) {
resolveDuplicateNameAndTitle(projectDe, projects);
projectDe.setContentSection(projectsSection);
}
if (projectEn != null) {
resolveDuplicateNameAndTitle(projectEn, projects);
projectEn.setContentSection(projectsSection);
}
@ -2541,6 +2540,9 @@ public class DaBInImporter extends Program {
createLifecycle(publicationsLifecycle));
publicationEn.setContentSection(publicationsSection);
resolveDuplicateNameAndTitle(publicationDe, publications);
resolveDuplicateNameAndTitle(publicationEn, publications);
System.out.println("\tAssigning authors...\n");
int i = 1;
for (Authorship authorship : publicationData.getAuthors()) {
@ -3036,6 +3038,10 @@ public class DaBInImporter extends Program {
"%s %s", publisherData.getName(), publisherData.
getPlace())));
}
resolveDuplicateNameAndTitle(publisherDe, publishers);
resolveDuplicateNameAndTitle(publisherEn, publishers);
publisherEn.setPublisherName(publisherData.getName());
publisherEn.setPlace(publisherData.getPlace());
publisherEn.setLanguage("en");
@ -3375,6 +3381,23 @@ public class DaBInImporter extends Program {
replaceAll("[^a-zA-Z0-9\\-]", "").toLowerCase().trim();
}
private void resolveDuplicateNameAndTitle(final ContentPage page,
final Folder folder) {
String resolvedName = page.getName();
String resolvedTitle = page.getTitle();
int i = 0;
while (folder.getItem(resolvedName, false) != null) {
i++;
resolvedName = String.format("%s-%d", page.getName(), i);
resolvedTitle = String.format("%s (%d)", page.getTitle(), i);
}
page.setName(resolvedName);
page.setTitle(resolvedTitle);
}
public static void main(String[] args) {
new DaBInImporter().run(args);
}