Changes for XML output and converters of proceedings content type necessary because the change from one organizer to multiple organizers

git-svn-id: https://svn.libreccm.org/ccm/trunk@3474 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2015-06-09 10:30:29 +00:00
parent a0e4ecab3e
commit f4c2d83332
6 changed files with 113 additions and 116 deletions

View File

@ -112,11 +112,6 @@ public class Proceedings extends PublicationWithPublisher {
set(DATE_TO_OF_CONFERENCE, dateTo); set(DATE_TO_OF_CONFERENCE, dateTo);
} }
//added by tosmers because of compiling failure
public GenericOrganizationalUnit getOrganizerOfConference() {
return getProceedingsBundle().getOrganizationalUnits().getOrganizationalUnit();
}
public ProceedingsOrganizerCollection getOrganizers() { public ProceedingsOrganizerCollection getOrganizers() {
return getProceedingsBundle().getOrganizersOfConference(); return getProceedingsBundle().getOrganizersOfConference();
} }

View File

@ -244,41 +244,4 @@ public class ProceedingsBundle extends PublicationWithPublisherBundle {
remove(ORGANIZER_OF_CONFERENCE, organizer.getGenericOrganizationalUnitBundle()); 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();
// }
// }
} }

View File

@ -26,6 +26,7 @@ import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
import com.arsdigita.cms.contenttypes.InProceedings; import com.arsdigita.cms.contenttypes.InProceedings;
import com.arsdigita.cms.contenttypes.InProceedingsCollection; import com.arsdigita.cms.contenttypes.InProceedingsCollection;
import com.arsdigita.cms.contenttypes.Proceedings; import com.arsdigita.cms.contenttypes.Proceedings;
import com.arsdigita.cms.contenttypes.ProceedingsOrganizerCollection;
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator; import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
import com.arsdigita.globalization.GlobalizationHelper; import com.arsdigita.globalization.GlobalizationHelper;
import com.arsdigita.xml.Element; import com.arsdigita.xml.Element;
@ -33,7 +34,8 @@ import com.arsdigita.xml.Element;
/** /**
* *
* @author Jens Pelzetter * @author Jens Pelzetter
* @version $Id$ * @version $Id: ProceedingsExtraXmlGenerator.java 3468 2015-06-08 11:09:07Z
* jensp $
*/ */
public class ProceedingsExtraXmlGenerator implements ExtraXMLGenerator { public class ProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
@ -50,24 +52,30 @@ public class ProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
} }
final Proceedings proceedings = (Proceedings) item; final Proceedings proceedings = (Proceedings) item;
createOrganizerXml(proceedings, element, state); createOrganizersXml(proceedings, element, state);
if (!listMode) { if (!listMode) {
createPapersXml(proceedings, element, state); createPapersXml(proceedings, element, state);
} }
} }
private void createOrganizerXml(final Proceedings proceedings, private void createOrganizersXml(final Proceedings proceedings,
final Element parent, final Element parent,
final PageState state) { final PageState state) {
// final GenericOrganizationalUnit organizer = final Element organiziersElem = parent.newChildElement("organizers");
// proceedings.getOrganizerOfConference(GlobalizationHelper.
// getNegotiatedLocale().getLanguage()); final ProceedingsOrganizerCollection organizers = proceedings.
// if (organizer != null) { getOrganizers();
// final XmlGenerator generator = new XmlGenerator(organizer);
// generator.setItemElemName("organizer", ""); while (organizers.next()) {
// generator.setListMode(true); final GenericOrganizationalUnit organizer = organizers.getOrganizer(
// generator.generateXML(state, parent, ""); 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, private void createPapersXml(final Proceedings proceedings,

View File

@ -31,6 +31,7 @@ import com.arsdigita.cms.contenttypes.InternetArticle;
import com.arsdigita.cms.contenttypes.Journal; import com.arsdigita.cms.contenttypes.Journal;
import com.arsdigita.cms.contenttypes.Monograph; import com.arsdigita.cms.contenttypes.Monograph;
import com.arsdigita.cms.contenttypes.Proceedings; import com.arsdigita.cms.contenttypes.Proceedings;
import com.arsdigita.cms.contenttypes.ProceedingsOrganizerCollection;
import com.arsdigita.cms.contenttypes.Publication; import com.arsdigita.cms.contenttypes.Publication;
import com.arsdigita.cms.contenttypes.PublicationWithPublisher; import com.arsdigita.cms.contenttypes.PublicationWithPublisher;
import com.arsdigita.cms.contenttypes.Publisher; import com.arsdigita.cms.contenttypes.Publisher;
@ -105,9 +106,8 @@ public class PublicationXmlHelper {
} }
/*if (publication instanceof Journal) { /*if (publication instanceof Journal) {
generateJournalXml(publicationElem); generateJournalXml(publicationElem);
}*/ }*/
if (publication instanceof Monograph) { if (publication instanceof Monograph) {
generateMonographXml(publicationElem); generateMonographXml(publicationElem);
} }
@ -217,8 +217,8 @@ public class PublicationXmlHelper {
private void generatePublicationWithPublisherXml( private void generatePublicationWithPublisherXml(
final Element publicationElem) { final Element publicationElem) {
PublicationWithPublisher pwp = PublicationWithPublisher pwp
(PublicationWithPublisher) publication; = (PublicationWithPublisher) publication;
generatePublisherXml(publicationElem, pwp); generatePublisherXml(publicationElem, pwp);
generateXmlElement(publicationElem, "isbn", pwp.getISBN()); generateXmlElement(publicationElem, "isbn", pwp.getISBN());
@ -252,13 +252,13 @@ public class PublicationXmlHelper {
private void generateSeriesCollXml(final Element publicationElem) { private void generateSeriesCollXml(final Element publicationElem) {
if ((publication.getSeries() == null) if ((publication.getSeries() == null)
|| publication.getSeries().isEmpty()) { || publication.getSeries().isEmpty()) {
return; return;
} }
final SeriesCollection series = publication.getSeries(); final SeriesCollection series = publication.getSeries();
while(series.next()) { while (series.next()) {
generateSeriesXml(publicationElem, series.getSeries()); generateSeriesXml(publicationElem, series.getSeries());
} }
} }
@ -274,8 +274,8 @@ public class PublicationXmlHelper {
private void generateArticleInCollectedVolumeXml( private void generateArticleInCollectedVolumeXml(
final Element publicationElem) { final Element publicationElem) {
final ArticleInCollectedVolume article = final ArticleInCollectedVolume article
(ArticleInCollectedVolume) publication; = (ArticleInCollectedVolume) publication;
generateXmlElement(publicationElem, "pagesFrom", article.getPagesFrom()); generateXmlElement(publicationElem, "pagesFrom", article.getPagesFrom());
generateXmlElement(publicationElem, "pagesTo", article.getPagesTo()); generateXmlElement(publicationElem, "pagesTo", article.getPagesTo());
@ -292,9 +292,9 @@ public class PublicationXmlHelper {
if (collectedVolume != null) { if (collectedVolume != null) {
Element collectedVolumeElem = publicationElem.newChildElement( Element collectedVolumeElem = publicationElem.newChildElement(
"collectedVolume"); "collectedVolume");
PublicationXmlHelper xmlHelper = PublicationXmlHelper xmlHelper
new PublicationXmlHelper(collectedVolumeElem, = new PublicationXmlHelper(collectedVolumeElem,
collectedVolume); collectedVolume);
xmlHelper.generateXml(false); xmlHelper.generateXml(false);
} }
} }
@ -316,7 +316,8 @@ public class PublicationXmlHelper {
final Journal journal = article.getJournal(); final Journal journal = article.getJournal();
if (journal != null) { if (journal != null) {
final Element journalElem = publicationElem.newChildElement("journal"); final Element journalElem = publicationElem.newChildElement(
"journal");
//PublicationXmlHelper xmlHelper = new PublicationXmlHelper( //PublicationXmlHelper xmlHelper = new PublicationXmlHelper(
// journalElem, // journalElem,
// journal); // journal);
@ -392,12 +393,11 @@ public class PublicationXmlHelper {
} }
/*private void generateJournalXml(final Element publicationElem) { /*private void generateJournalXml(final Element publicationElem) {
final Journal journal = (Journal) publication; final Journal journal = (Journal) publication;
generateXmlElement(publicationElem, "lastYear", journal.getLastYear());
generateXmlElement(publicationElem, "issn", journal.getISSN());
}*/
generateXmlElement(publicationElem, "lastYear", journal.getLastYear());
generateXmlElement(publicationElem, "issn", journal.getISSN());
}*/
private void generateMonographXml(final Element publicationElem) { private void generateMonographXml(final Element publicationElem) {
final Monograph monograph = (Monograph) publication; final Monograph monograph = (Monograph) publication;
@ -408,15 +408,15 @@ public class PublicationXmlHelper {
Proceedings proceedings = (Proceedings) publication; Proceedings proceedings = (Proceedings) publication;
generateXmlElement(publicationElem, generateXmlElement(publicationElem,
"nameOfConference", "nameOfConference",
proceedings.getNameOfConference()); proceedings.getNameOfConference());
generateXmlElement(publicationElem, generateXmlElement(publicationElem,
"placeOfConference", "placeOfConference",
proceedings.getPlaceOfConference()); proceedings.getPlaceOfConference());
generateOrganizationXml(publicationElem, generateOrganizersXml(publicationElem,
"organizer", "organizers",
proceedings.getOrganizerOfConference()); proceedings.getOrganizers());
} }
@ -446,6 +446,20 @@ public class PublicationXmlHelper {
workingPaper.getReviewed()); 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, private void generateOrganizationXml(final Element publicationElem,
final String elementName, final String elementName,
final GenericOrganizationalUnit orga) { final GenericOrganizationalUnit orga) {
@ -453,8 +467,8 @@ public class PublicationXmlHelper {
return; return;
} }
Element organizationElem = Element organizationElem
publicationElem.newChildElement(elementName); = publicationElem.newChildElement(elementName);
Element orgaTitleElem = organizationElem.newChildElement("title"); Element orgaTitleElem = organizationElem.newChildElement("title");
orgaTitleElem.setText(orga.getTitle()); orgaTitleElem.setText(orga.getTitle());

View File

@ -17,8 +17,10 @@
* *
*/package com.arsdigita.cms.scipublications.exporter.bibtex.converters; */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.InProceedings;
import com.arsdigita.cms.contenttypes.Proceedings; import com.arsdigita.cms.contenttypes.Proceedings;
import com.arsdigita.cms.contenttypes.ProceedingsOrganizerCollection;
import com.arsdigita.cms.contenttypes.Publication; import com.arsdigita.cms.contenttypes.Publication;
import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder; import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder;
import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXField; import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXField;
@ -48,14 +50,14 @@ public class InProceedingsConverter extends AbstractBibTeXConverter {
if (!(publication instanceof InProceedings)) { if (!(publication instanceof InProceedings)) {
throw new UnsupportedCcmTypeException( throw new UnsupportedCcmTypeException(
String.format("The InProceedingsConverter only " String.format("The InProceedingsConverter only "
+ "supports publication types which are of the" + "supports publication types which are of the"
+ "type InProceedings or which are " + "type InProceedings or which are "
+ "extending " + "extending "
+ "InProceedings. The " + "InProceedings. The "
+ "provided publication is of type '%s' which " + "provided publication is of type '%s' which "
+ "is not of type " + "is not of type "
+ "InProceedings and does not " + "InProceedings and does not "
+ "extends InProceedings.", + "extends InProceedings.",
publication.getClass().getName())); publication.getClass().getName()));
} }
@ -87,16 +89,23 @@ public class InProceedingsConverter extends AbstractBibTeXConverter {
convertVolume(proceedings); convertVolume(proceedings);
convertSeries(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, builder.setField(BibTeXField.ORGANIZATION,
proceedings.getOrganizerOfConference().getTitle()); organizer.getTitle());
} }
convertPublisher(proceedings); convertPublisher(proceedings);
} }
} catch (UnsupportedFieldException ex) { } catch (UnsupportedFieldException ex) {
logger.warn("Tried to set unsupported BibTeX field while " logger.warn("Tried to set unsupported BibTeX field while "
+ "converting a publication"); + "converting a publication");
} }
return builder.toBibTeX(); return builder.toBibTeX();

View File

@ -18,7 +18,9 @@
*/ */
package com.arsdigita.cms.scipublications.exporter.bibtex.converters; 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.Proceedings;
import com.arsdigita.cms.contenttypes.ProceedingsOrganizerCollection;
import com.arsdigita.cms.contenttypes.Publication; import com.arsdigita.cms.contenttypes.Publication;
import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder; import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder;
import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXField; import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXField;
@ -49,14 +51,14 @@ public class ProceedingsConverter extends AbstractBibTeXConverter {
if (!(publication instanceof Proceedings)) { if (!(publication instanceof Proceedings)) {
throw new UnsupportedCcmTypeException( throw new UnsupportedCcmTypeException(
String.format("The ProceedingsConverter only " String.format("The ProceedingsConverter only "
+ "supports publication types which are of the" + "supports publication types which are of the"
+ "type Proceedings or which are " + "type Proceedings or which are "
+ "extending " + "extending "
+ "Proceedings. The " + "Proceedings. The "
+ "provided publication is of type '%s' which " + "provided publication is of type '%s' which "
+ "is not of type " + "is not of type "
+ "Proceedings and does not " + "Proceedings and does not "
+ "extends Proceedings.", + "extends Proceedings.",
publication.getClass().getName())); publication.getClass().getName()));
} }
@ -71,17 +73,23 @@ public class ProceedingsConverter extends AbstractBibTeXConverter {
convertVolume(proceedings); convertVolume(proceedings);
convertSeries(publication); 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, builder.setField(BibTeXField.ORGANIZATION,
proceedings.getOrganizerOfConference(). organizer.getTitle());
getTitle());
} }
convertPublisher(proceedings); convertPublisher(proceedings);
} catch (UnsupportedFieldException ex) { } catch (UnsupportedFieldException ex) {
logger.warn("Tried to set unsupported BibTeX field while " logger.warn("Tried to set unsupported BibTeX field while "
+ "converting a publication"); + "converting a publication");
} }
return builder.toBibTeX(); return builder.toBibTeX();