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