diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/Proceedings.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/Proceedings.java
index 070321c06..1cff285ad 100644
--- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/Proceedings.java
+++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/Proceedings.java
@@ -111,11 +111,6 @@ public class Proceedings extends PublicationWithPublisher {
public void setDateToOfConference(Date dateTo) {
set(DATE_TO_OF_CONFERENCE, dateTo);
}
-
- //added by tosmers because of compiling failure
- public GenericOrganizationalUnit getOrganizerOfConference() {
- return getProceedingsBundle().getOrganizationalUnits().getOrganizationalUnit();
- }
public ProceedingsOrganizerCollection getOrganizers() {
return getProceedingsBundle().getOrganizersOfConference();
diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ProceedingsBundle.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ProceedingsBundle.java
index 4a14cd6cc..a83d2cf16 100644
--- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ProceedingsBundle.java
+++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ProceedingsBundle.java
@@ -244,41 +244,4 @@ public class ProceedingsBundle extends PublicationWithPublisherBundle {
remove(ORGANIZER_OF_CONFERENCE, organizer.getGenericOrganizationalUnitBundle());
}
-// public GenericOrganizationalUnitBundle getOrganizerOfConference() {
-// DataCollection collection;
-//
-// collection = (DataCollection) get(ORGANIZER_OF_CONFERENCE);
-//
-// if (0 == collection.size()) {
-// return null;
-// } else {
-// DataObject dobj;
-//
-// collection.next();
-// dobj = collection.getDataObject();
-// collection.close();
-//
-// return (GenericOrganizationalUnitBundle) DomainObjectFactory
-// .newInstance(
-// dobj);
-// }
-// }
-//
-// public void setOrganizerOfConference(GenericOrganizationalUnit organizer) {
-// final GenericOrganizationalUnitBundle oldOrga
-// = getOrganizerOfConference();
-//
-// if (oldOrga != null) {
-// remove(ORGANIZER_OF_CONFERENCE, oldOrga);
-// }
-//
-// if (null != organizer) {
-// Assert.exists(organizer, GenericOrganizationalUnit.class);
-// DataObject link = add(ORGANIZER_OF_CONFERENCE,
-// organizer.getGenericOrganizationalUnitBundle());
-// link.set("organizerOrder", 1);
-// link.save();
-// }
-// }
-
}
diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/ProceedingsExtraXmlGenerator.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/ProceedingsExtraXmlGenerator.java
index 010ee2742..3d5013b23 100644
--- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/ProceedingsExtraXmlGenerator.java
+++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/ProceedingsExtraXmlGenerator.java
@@ -26,14 +26,16 @@ import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
import com.arsdigita.cms.contenttypes.InProceedings;
import com.arsdigita.cms.contenttypes.InProceedingsCollection;
import com.arsdigita.cms.contenttypes.Proceedings;
+import com.arsdigita.cms.contenttypes.ProceedingsOrganizerCollection;
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
import com.arsdigita.globalization.GlobalizationHelper;
import com.arsdigita.xml.Element;
/**
*
- * @author Jens Pelzetter
- * @version $Id$
+ * @author Jens Pelzetter
+ * @version $Id: ProceedingsExtraXmlGenerator.java 3468 2015-06-08 11:09:07Z
+ * jensp $
*/
public class ProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
@@ -50,24 +52,30 @@ public class ProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
}
final Proceedings proceedings = (Proceedings) item;
- createOrganizerXml(proceedings, element, state);
+ createOrganizersXml(proceedings, element, state);
if (!listMode) {
createPapersXml(proceedings, element, state);
}
}
- private void createOrganizerXml(final Proceedings proceedings,
- final Element parent,
- final PageState state) {
-// final GenericOrganizationalUnit organizer =
-// proceedings.getOrganizerOfConference(GlobalizationHelper.
-// getNegotiatedLocale().getLanguage());
-// if (organizer != null) {
-// final XmlGenerator generator = new XmlGenerator(organizer);
-// generator.setItemElemName("organizer", "");
-// generator.setListMode(true);
-// generator.generateXML(state, parent, "");
-// }
+ private void createOrganizersXml(final Proceedings proceedings,
+ final Element parent,
+ final PageState state) {
+ final Element organiziersElem = parent.newChildElement("organizers");
+
+ final ProceedingsOrganizerCollection organizers = proceedings.
+ getOrganizers();
+
+ while (organizers.next()) {
+ final GenericOrganizationalUnit organizer = organizers.getOrganizer(
+ GlobalizationHelper.getNegotiatedLocale().getLanguage());
+ if (organizer != null) {
+ final XmlGenerator generator = new XmlGenerator(organizer);
+ generator.setItemElemName("organizer", "");
+ generator.setListMode(true);
+ generator.generateXML(state, organiziersElem, "");
+ }
+ }
}
private void createPapersXml(final Proceedings proceedings,
diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationXmlHelper.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationXmlHelper.java
index 9a7112ae6..b9742a0fa 100644
--- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationXmlHelper.java
+++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/PublicationXmlHelper.java
@@ -31,6 +31,7 @@ import com.arsdigita.cms.contenttypes.InternetArticle;
import com.arsdigita.cms.contenttypes.Journal;
import com.arsdigita.cms.contenttypes.Monograph;
import com.arsdigita.cms.contenttypes.Proceedings;
+import com.arsdigita.cms.contenttypes.ProceedingsOrganizerCollection;
import com.arsdigita.cms.contenttypes.Publication;
import com.arsdigita.cms.contenttypes.PublicationWithPublisher;
import com.arsdigita.cms.contenttypes.Publisher;
@@ -43,7 +44,7 @@ import com.arsdigita.xml.Element;
/**
*
- * @author Jens Pelzetter
+ * @author Jens Pelzetter
*/
public class PublicationXmlHelper {
@@ -59,7 +60,7 @@ public class PublicationXmlHelper {
public void generateXml() {
generateXml(true);
}
-
+
public void generateXml(boolean wrap) {
Element publicationElem;
if (wrap) {
@@ -105,9 +106,8 @@ public class PublicationXmlHelper {
}
/*if (publication instanceof Journal) {
- generateJournalXml(publicationElem);
- }*/
-
+ generateJournalXml(publicationElem);
+ }*/
if (publication instanceof Monograph) {
generateMonographXml(publicationElem);
}
@@ -217,8 +217,8 @@ public class PublicationXmlHelper {
private void generatePublicationWithPublisherXml(
final Element publicationElem) {
- PublicationWithPublisher pwp =
- (PublicationWithPublisher) publication;
+ PublicationWithPublisher pwp
+ = (PublicationWithPublisher) publication;
generatePublisherXml(publicationElem, pwp);
generateXmlElement(publicationElem, "isbn", pwp.getISBN());
@@ -251,31 +251,31 @@ public class PublicationXmlHelper {
}
private void generateSeriesCollXml(final Element publicationElem) {
- if ((publication.getSeries() == null)
- || publication.getSeries().isEmpty()) {
+ if ((publication.getSeries() == null)
+ || publication.getSeries().isEmpty()) {
return;
}
-
+
final SeriesCollection series = publication.getSeries();
-
- while(series.next()) {
+
+ while (series.next()) {
generateSeriesXml(publicationElem, series.getSeries());
}
}
-
+
private void generateSeriesXml(final Element publicationElem,
final Series series) {
final Element seriesElem = publicationElem.newChildElement("series");
-
+
final Element title = seriesElem.newChildElement("title");
-
+
title.setText(series.getTitle());
}
-
+
private void generateArticleInCollectedVolumeXml(
final Element publicationElem) {
- final ArticleInCollectedVolume article =
- (ArticleInCollectedVolume) publication;
+ final ArticleInCollectedVolume article
+ = (ArticleInCollectedVolume) publication;
generateXmlElement(publicationElem, "pagesFrom", article.getPagesFrom());
generateXmlElement(publicationElem, "pagesTo", article.getPagesTo());
@@ -292,9 +292,9 @@ public class PublicationXmlHelper {
if (collectedVolume != null) {
Element collectedVolumeElem = publicationElem.newChildElement(
"collectedVolume");
- PublicationXmlHelper xmlHelper =
- new PublicationXmlHelper(collectedVolumeElem,
- collectedVolume);
+ PublicationXmlHelper xmlHelper
+ = new PublicationXmlHelper(collectedVolumeElem,
+ collectedVolume);
xmlHelper.generateXml(false);
}
}
@@ -316,7 +316,8 @@ public class PublicationXmlHelper {
final Journal journal = article.getJournal();
if (journal != null) {
- final Element journalElem = publicationElem.newChildElement("journal");
+ final Element journalElem = publicationElem.newChildElement(
+ "journal");
//PublicationXmlHelper xmlHelper = new PublicationXmlHelper(
// journalElem,
// journal);
@@ -392,12 +393,11 @@ public class PublicationXmlHelper {
}
/*private void generateJournalXml(final Element publicationElem) {
- final Journal journal = (Journal) publication;
-
- generateXmlElement(publicationElem, "lastYear", journal.getLastYear());
- generateXmlElement(publicationElem, "issn", journal.getISSN());
- }*/
+ final Journal journal = (Journal) publication;
+ generateXmlElement(publicationElem, "lastYear", journal.getLastYear());
+ generateXmlElement(publicationElem, "issn", journal.getISSN());
+ }*/
private void generateMonographXml(final Element publicationElem) {
final Monograph monograph = (Monograph) publication;
@@ -408,16 +408,16 @@ public class PublicationXmlHelper {
Proceedings proceedings = (Proceedings) publication;
generateXmlElement(publicationElem,
- "nameOfConference",
- proceedings.getNameOfConference());
+ "nameOfConference",
+ proceedings.getNameOfConference());
generateXmlElement(publicationElem,
- "placeOfConference",
- proceedings.getPlaceOfConference());
+ "placeOfConference",
+ proceedings.getPlaceOfConference());
+
+ generateOrganizersXml(publicationElem,
+ "organizers",
+ proceedings.getOrganizers());
- generateOrganizationXml(publicationElem,
- "organizer",
- proceedings.getOrganizerOfConference());
-
}
private void generateReviewXml(final Element publicationElem) {
@@ -446,6 +446,20 @@ public class PublicationXmlHelper {
workingPaper.getReviewed());
}
+ private void generateOrganizersXml(
+ final Element publicationElem,
+ final String elementName,
+ final ProceedingsOrganizerCollection organizers) {
+
+ final Element elem = publicationElem.newChildElement(elementName);
+
+ while(organizers.next()) {
+ final GenericOrganizationalUnit orgaUnit = organizers.getOrganizer();
+
+ generateOrganizationXml(elem, "organizer", orgaUnit);
+ }
+ }
+
private void generateOrganizationXml(final Element publicationElem,
final String elementName,
final GenericOrganizationalUnit orga) {
@@ -453,8 +467,8 @@ public class PublicationXmlHelper {
return;
}
- Element organizationElem =
- publicationElem.newChildElement(elementName);
+ Element organizationElem
+ = publicationElem.newChildElement(elementName);
Element orgaTitleElem = organizationElem.newChildElement("title");
orgaTitleElem.setText(orga.getTitle());
diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/InProceedingsConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/InProceedingsConverter.java
index 16b92bf77..14dd7857e 100644
--- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/InProceedingsConverter.java
+++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/InProceedingsConverter.java
@@ -17,8 +17,10 @@
*
*/package com.arsdigita.cms.scipublications.exporter.bibtex.converters;
+import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
import com.arsdigita.cms.contenttypes.InProceedings;
import com.arsdigita.cms.contenttypes.Proceedings;
+import com.arsdigita.cms.contenttypes.ProceedingsOrganizerCollection;
import com.arsdigita.cms.contenttypes.Publication;
import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder;
import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXField;
@@ -26,7 +28,7 @@ import com.arsdigita.cms.scipublications.exporter.bibtex.builders.UnsupportedFie
import org.apache.log4j.Logger;
/**
- * Converts an {@link InProceedings} item to an BibTeX
+ * Converts an {@link InProceedings} item to an BibTeX
* inproceedings reference.
*
* @author Jens Pelzetter
@@ -48,14 +50,14 @@ public class InProceedingsConverter extends AbstractBibTeXConverter {
if (!(publication instanceof InProceedings)) {
throw new UnsupportedCcmTypeException(
String.format("The InProceedingsConverter only "
- + "supports publication types which are of the"
+ + "supports publication types which are of the"
+ "type InProceedings or which are "
- + "extending "
- + "InProceedings. The "
- + "provided publication is of type '%s' which "
+ + "extending "
+ + "InProceedings. The "
+ + "provided publication is of type '%s' which "
+ "is not of type "
- + "InProceedings and does not "
- + "extends InProceedings.",
+ + "InProceedings and does not "
+ + "extends InProceedings.",
publication.getClass().getName()));
}
@@ -87,16 +89,23 @@ public class InProceedingsConverter extends AbstractBibTeXConverter {
convertVolume(proceedings);
convertSeries(proceedings);
- if (proceedings.getOrganizerOfConference() != null) {
+ if (proceedings.getOrganizers() != null
+ && !proceedings.getOrganizers().isEmpty()) {
+ final ProceedingsOrganizerCollection organizers = proceedings.
+ getOrganizers();
+ organizers.next();
+ final GenericOrganizationalUnit organizer = organizers.
+ getOrganizer();
+ organizers.close();
builder.setField(BibTeXField.ORGANIZATION,
- proceedings.getOrganizerOfConference().getTitle());
+ organizer.getTitle());
}
convertPublisher(proceedings);
- }
+ }
} catch (UnsupportedFieldException ex) {
logger.warn("Tried to set unsupported BibTeX field while "
- + "converting a publication");
+ + "converting a publication");
}
return builder.toBibTeX();
diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ProceedingsConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ProceedingsConverter.java
index 91cb0d454..c8696f09d 100644
--- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ProceedingsConverter.java
+++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ProceedingsConverter.java
@@ -18,7 +18,9 @@
*/
package com.arsdigita.cms.scipublications.exporter.bibtex.converters;
+import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
import com.arsdigita.cms.contenttypes.Proceedings;
+import com.arsdigita.cms.contenttypes.ProceedingsOrganizerCollection;
import com.arsdigita.cms.contenttypes.Publication;
import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder;
import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXField;
@@ -26,7 +28,7 @@ import com.arsdigita.cms.scipublications.exporter.bibtex.builders.UnsupportedFie
import org.apache.log4j.Logger;
/**
- * Converts a {@link Proceedings} publication to a BibTeX
+ * Converts a {@link Proceedings} publication to a BibTeX
* proceedings reference.
*
* @author Jens Pelzetter
@@ -49,14 +51,14 @@ public class ProceedingsConverter extends AbstractBibTeXConverter {
if (!(publication instanceof Proceedings)) {
throw new UnsupportedCcmTypeException(
String.format("The ProceedingsConverter only "
- + "supports publication types which are of the"
+ + "supports publication types which are of the"
+ "type Proceedings or which are "
- + "extending "
- + "Proceedings. The "
- + "provided publication is of type '%s' which "
+ + "extending "
+ + "Proceedings. The "
+ + "provided publication is of type '%s' which "
+ "is not of type "
- + "Proceedings and does not "
- + "extends Proceedings.",
+ + "Proceedings and does not "
+ + "extends Proceedings.",
publication.getClass().getName()));
}
@@ -71,17 +73,23 @@ public class ProceedingsConverter extends AbstractBibTeXConverter {
convertVolume(proceedings);
convertSeries(publication);
- if (proceedings.getOrganizerOfConference() != null) {
+ if (proceedings.getOrganizers() != null
+ && !proceedings.getOrganizers().isEmpty()) {
+ final ProceedingsOrganizerCollection organizers = proceedings.
+ getOrganizers();
+ organizers.next();
+ final GenericOrganizationalUnit organizer = organizers.
+ getOrganizer();
+ organizers.close();
builder.setField(BibTeXField.ORGANIZATION,
- proceedings.getOrganizerOfConference().
- getTitle());
+ organizer.getTitle());
}
convertPublisher(proceedings);
} catch (UnsupportedFieldException ex) {
logger.warn("Tried to set unsupported BibTeX field while "
- + "converting a publication");
+ + "converting a publication");
}
return builder.toBibTeX();