From 34aa8f72ec8ef4c6905b2cea4b6d9874ebf60880 Mon Sep 17 00:00:00 2001 From: jensp Date: Fri, 4 Feb 2011 19:19:08 +0000 Subject: [PATCH] - Integrated UMLGraph (http://www.umlgraph.org) into the JavaDoc build target - Progress on the BibTeXExporter for SciPublications module. git-svn-id: https://svn.libreccm.org/ccm/trunk@733 8810af33-2d31-482b-a856-94f89814c4df --- ...lications.exporter.SciPublicationsExporter | 1 + ...ons.exporter.bibtex.builders.BibTeXBuilder | 7 ++ ...exporter.bibtex.converters.BibTeXConverter | 13 +++ .../bibtex/builders/BibTeXBuilders.java | 20 +++- .../converters/AbstractBibTeXConverter.java | 38 +++++++- .../ArticleInCollectedVolumeConverter.java | 44 +++++---- .../converters/ArticleInJournalConverter.java | 84 ++++++++++++++++ .../converters/CollectedVolumeConverter.java | 57 +++++++++++ .../bibtex/converters/ExpertiseConverter.java | 59 ++++++++++++ .../converters/GreyLiteratureConverter.java | 59 ++++++++++++ .../converters/InProceedingsConverter.java | 90 ++++++++++++++++++ .../converters/InternetArticleConverter.java | 60 ++++++++++++ .../converters/ProceedingsConverter.java | 72 ++++++++++++++ .../bibtex/converters/ReviewConverter.java | 16 ++++ .../converters/WorkingPaperConverter.java | 59 ++++++++++++ tools-ng/common/xsl/build-template.xsl | 12 +++ tools-ng/devel/lib/UmlGraph.jar | Bin 0 -> 65705 bytes 17 files changed, 665 insertions(+), 26 deletions(-) create mode 100644 ccm-sci-publications/META-INF/services/com.arsdigita.cms.scipublications.exporter.SciPublicationsExporter create mode 100644 ccm-sci-publications/META-INF/services/com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder create mode 100644 ccm-sci-publications/META-INF/services/com.arsdigita.cms.scipublications.exporter.bibtex.converters.BibTeXConverter create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ArticleInJournalConverter.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/CollectedVolumeConverter.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ExpertiseConverter.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/GreyLiteratureConverter.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/InProceedingsConverter.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/InternetArticleConverter.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ProceedingsConverter.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ReviewConverter.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/WorkingPaperConverter.java create mode 100644 tools-ng/devel/lib/UmlGraph.jar diff --git a/ccm-sci-publications/META-INF/services/com.arsdigita.cms.scipublications.exporter.SciPublicationsExporter b/ccm-sci-publications/META-INF/services/com.arsdigita.cms.scipublications.exporter.SciPublicationsExporter new file mode 100644 index 000000000..eb234126a --- /dev/null +++ b/ccm-sci-publications/META-INF/services/com.arsdigita.cms.scipublications.exporter.SciPublicationsExporter @@ -0,0 +1 @@ + com.arsdigita.cms.scipublications.exporter.bibtex.BibTeXExporter \ No newline at end of file diff --git a/ccm-sci-publications/META-INF/services/com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder b/ccm-sci-publications/META-INF/services/com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder new file mode 100644 index 000000000..b2e8fbe37 --- /dev/null +++ b/ccm-sci-publications/META-INF/services/com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder @@ -0,0 +1,7 @@ +com.arsdigita.cms.scipublications.exporter.bibtex.builders.ArticleBuilder +com.arsdigita.cms.scipublications.exporter.bibtex.builders.BookBuilder +com.arsdigita.cms.scipublications.exporter.bibtex.builders.InCollectionBuilder +com.arsdigita.cms.scipublications.exporter.bibtex.builders.InProceedingsBuilder +com.arsdigita.cms.scipublications.exporter.bibtex.builders.MiscBuilder +com.arsdigita.cms.scipublications.exporter.bibtex.builders.ProceedingsBuilder +com.arsdigita.cms.scipublications.exporter.bibtex.builders.UnPublishedBuilder \ No newline at end of file diff --git a/ccm-sci-publications/META-INF/services/com.arsdigita.cms.scipublications.exporter.bibtex.converters.BibTeXConverter b/ccm-sci-publications/META-INF/services/com.arsdigita.cms.scipublications.exporter.bibtex.converters.BibTeXConverter new file mode 100644 index 000000000..08bff0e5c --- /dev/null +++ b/ccm-sci-publications/META-INF/services/com.arsdigita.cms.scipublications.exporter.bibtex.converters.BibTeXConverter @@ -0,0 +1,13 @@ +com.arsdigita.cms.scipublications.exporter.bibtex.converters.ArticleInCollectedVolumeConverter +com.arsdigita.cms.scipublications.exporter.bibtex.converters.ArticleInJournalConverter +com.arsdigita.cms.scipublications.exporter.bibtex.converters.CollectedVolumeConverter +com.arsdigita.cms.scipublications.exporter.bibtex.converters.ExpertiseConverter +com.arsdigita.cms.scipublications.exporter.bibtex.converters.GreyLiteratureConverter +com.arsdigita.cms.scipublications.exporter.bibtex.converters.InProceedingsConverter +com.arsdigita.cms.scipublications.exporter.bibtex.converters.InternetArticleConverter +com.arsdigita.cms.scipublications.exporter.bibtex.converters.MonographConverter +com.arsdigita.cms.scipublications.exporter.bibtex.converters.ProceedingsConverter +com.arsdigita.cms.scipublications.exporter.bibtex.converters.PublicationConverter +com.arsdigita.cms.scipublications.exporter.bibtex.converters.PublicationWithPublisherConverter +com.arsdigita.cms.scipublications.exporter.bibtex.converters.ReviewConverter +com.arsdigita.cms.scipublications.exporter.bibtex.converters.WorkingPaperConverter \ No newline at end of file diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/builders/BibTeXBuilders.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/builders/BibTeXBuilders.java index 717e021f6..49ff4bf48 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/builders/BibTeXBuilders.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/builders/BibTeXBuilders.java @@ -3,6 +3,7 @@ package com.arsdigita.cms.scipublications.exporter.bibtex.builders; import java.util.HashMap; import java.util.Map; import java.util.ServiceLoader; +import org.apache.log4j.Logger; /** * @@ -10,6 +11,7 @@ import java.util.ServiceLoader; */ public class BibTeXBuilders { + private static final Logger logger = Logger.getLogger(BibTeXBuilders.class); private Map builders = new HashMap(); @@ -33,6 +35,22 @@ public class BibTeXBuilders { } public BibTeXBuilder getBibTeXBuilderForType(final String type) { - return builders.get(type); + if (builders.containsKey(type)) { + try { + return builders.get(type).getClass().newInstance(); + } catch (InstantiationException ex) { + logger.warn(String.format("Failed to create BibTeXBuilder " + + "for type '%s'.", type), + ex); + return null; + } catch (IllegalAccessException ex) { + logger.warn(String.format("Failed to create BibTeXBuilder " + + "for type '%s'.", type), + ex); + return null; + } + } else { + return null; + } } } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/AbstractBibTeXConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/AbstractBibTeXConverter.java index d0578163e..90727178a 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/AbstractBibTeXConverter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/AbstractBibTeXConverter.java @@ -3,6 +3,7 @@ package com.arsdigita.cms.scipublications.exporter.bibtex.converters; import com.arsdigita.cms.contenttypes.AuthorshipCollection; import com.arsdigita.cms.contenttypes.Publication; import com.arsdigita.cms.contenttypes.PublicationWithPublisher; +import com.arsdigita.cms.contenttypes.SeriesCollection; import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder; import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilders; import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXField; @@ -48,8 +49,20 @@ public abstract class AbstractBibTeXConverter implements BibTeXConverter { protected void convertPublisher(final PublicationWithPublisher publication) throws UnsupportedFieldException { if (publication.getPublisher() != null) { - getBibTeXBuilder().setField(BibTeXField.PUBLISHER, - publication.getPublisher().getTitle()); + if ((publication.getPublisher().getPlace() == null) + && publication.getPublisher().getPlace().isEmpty()) { + getBibTeXBuilder().setField(BibTeXField.PUBLISHER, + publication.getPublisher().getTitle()); + } else { + getBibTeXBuilder().setField(BibTeXField.PUBLISHER, + String.format("%s, %s", + publication. + getPublisher(). + getTitle(), + publication. + getPublisher(). + getPlace())); + } } } @@ -76,11 +89,26 @@ public abstract class AbstractBibTeXConverter implements BibTeXConverter { publication.getEdition()); } } - + + protected void convertSeries(final Publication publication) + throws UnsupportedFieldException { + SeriesCollection seriesColl = + publication.getSeries(); + if ((seriesColl != null) && (seriesColl.size() > 0)) { + + seriesColl.next(); + + getBibTeXBuilder().setField(BibTeXField.SERIES, + seriesColl.getSeries().getTitle()); + + seriesColl.close(); + } + } + protected BibTeXBuilder getBibTeXBuilder() { if (bibTeXBuilder == null) { - bibTeXBuilder = BibTeXBuilders.getInstance().getBibTeXBuilderForType( - getBibTeXType()); + bibTeXBuilder = BibTeXBuilders.getInstance(). + getBibTeXBuilderForType(getBibTeXType()); } return bibTeXBuilder; diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ArticleInCollectedVolumeConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ArticleInCollectedVolumeConverter.java index bb7b0066a..b5f5b5592 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ArticleInCollectedVolumeConverter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ArticleInCollectedVolumeConverter.java @@ -48,32 +48,36 @@ public class ArticleInCollectedVolumeConverter extends AbstractBibTeXConverter { convertTitle(publication); convertYear(publication); - builder.setField(BibTeXField.BOOKTITLE, - article.getCollectedVolume().getTitle()); - if (article.getCollectedVolume().getPublisher() == null) { - builder.setField(BibTeXField.PUBLISHER, ""); + if (article.getCollectedVolume() != null) { + builder.setField(BibTeXField.BOOKTITLE, + article.getCollectedVolume().getTitle()); + + if (article.getCollectedVolume().getPublisher() == null) { + builder.setField(BibTeXField.PUBLISHER, ""); + } + + if (article.getCollectedVolume().getVolume() != null) { + builder.setField(BibTeXField.VOLUME, + article.getCollectedVolume().getVolume(). + toString()); + } + SeriesCollection seriesColl = + article.getCollectedVolume().getSeries(); + if ((seriesColl != null) && (seriesColl.size() > 0)) { + + seriesColl.next(); + + builder.setField(BibTeXField.SERIES, + seriesColl.getSeries().getTitle()); + + seriesColl.close(); + } } else { builder.setField(BibTeXField.PUBLISHER, article.getCollectedVolume().getPublisher(). getTitle()); } - if (article.getCollectedVolume().getVolume() != null) { - builder.setField(BibTeXField.VOLUME, - article.getCollectedVolume().getVolume(). - toString()); - } - SeriesCollection seriesColl = - article.getCollectedVolume().getSeries(); - if ((seriesColl != null) && (seriesColl.size() > 0)) { - - seriesColl.next(); - - builder.setField(BibTeXField.SERIES, - seriesColl.getSeries().getTitle()); - - seriesColl.close(); - } if (article.getChapter() != null) { builder.setField(BibTeXField.CHAPTER, article.getChapter()); diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ArticleInJournalConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ArticleInJournalConverter.java new file mode 100644 index 000000000..c6b092e43 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ArticleInJournalConverter.java @@ -0,0 +1,84 @@ +package com.arsdigita.cms.scipublications.exporter.bibtex.converters; + +import com.arsdigita.cms.contenttypes.ArticleInJournal; +import com.arsdigita.cms.contenttypes.Publication; +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.UnsupportedFieldException; +import org.apache.log4j.Logger; + +/** + * + * @author jensp + */ +public class ArticleInJournalConverter extends AbstractBibTeXConverter { + + private static final Logger logger = Logger.getLogger( + ArticleInJournalConverter.class); + + @Override + protected String getBibTeXType() { + return "article"; + } + + public String convert(final Publication publication) { + ArticleInJournal article; + BibTeXBuilder builder; + + if (!(publication instanceof ArticleInJournal)) { + throw new UnsupportedCcmTypeException( + String.format("The ArticleInJournalConverter only " + + "supports publication types which are of the" + + "type ArticleInJournal or which are " + + "extending " + + "ArticleInJournal. The " + + "provided publication is of type '%s' which " + + "is not of type " + + "ArticleInJournal and does not " + + "extends ArticleInJournal.", + publication.getClass().getName())); + } + + article = (ArticleInJournal) publication; + + convertAuthors(publication); + builder = getBibTeXBuilder(); + try { + convertTitle(publication); + convertYear(publication); + + if (article.getJournal() == null) { + builder.setField(BibTeXField.JOURNAL, ""); + } else { + builder.setField(BibTeXField.JOURNAL, + article.getJournal().getTitle()); + } + + if (article.getVolume() != null) { + builder.setField(BibTeXField.VOLUME, + article.getVolume().toString()); + } + + if (article.getIssue() != null) { + builder.setField(BibTeXField.NUMBER, + article.getIssue()); + } + + if (article.getPagesFrom() != null) { + builder.setField(BibTeXField.PAGES, + String.format("%s - %s", + article.getPagesFrom(), + article.getPagesTo())); + } + } catch (UnsupportedFieldException ex) { + logger.warn("Tried to set unsupported BibTeX field while " + + "converting a publication"); + } + + return builder.toBibTeX(); + } + + public String getCcmType() { + return ArticleInJournal.class.getName(); + } +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/CollectedVolumeConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/CollectedVolumeConverter.java new file mode 100644 index 000000000..148642a8e --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/CollectedVolumeConverter.java @@ -0,0 +1,57 @@ +package com.arsdigita.cms.scipublications.exporter.bibtex.converters; + +import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.cms.contenttypes.CollectedVolume; +import com.arsdigita.cms.scipublications.exporter.bibtex.builders.UnsupportedFieldException; +import org.apache.log4j.Logger; + +/** + * + * @author jensp + */ +public class CollectedVolumeConverter extends AbstractBibTeXConverter { + + private static final Logger logger = Logger.getLogger( + CollectedVolumeConverter.class); + + @Override + protected String getBibTeXType() { + return "book"; + } + + public String convert(final Publication publication) { + CollectedVolume collectedVolume; + + if (!(publication instanceof CollectedVolume)) { + throw new UnsupportedCcmTypeException( + String.format("The PublicationWithPublicationConverter only " + + "supports publication types which are " + + "extending CollectedVolume. The " + + "provided publication is of type '%s' which " + + "does not extends " + + "CollectedVolume.", + publication.getClass().getName())); + } + + collectedVolume = (CollectedVolume) publication; + + convertAuthors(publication); + try { + convertTitle(publication); + convertYear(publication); + + convertPublisher(collectedVolume); + convertISBN(collectedVolume); + convertEdition(collectedVolume); + } catch (UnsupportedFieldException ex) { + logger.warn("Tried to set unsupported BibTeX field while " + + "converting a publication"); + } + + return getBibTeXBuilder().toBibTeX(); + } + + public String getCcmType() { + return CollectedVolume.class.getName(); + } +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ExpertiseConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ExpertiseConverter.java new file mode 100644 index 000000000..5773d96d7 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ExpertiseConverter.java @@ -0,0 +1,59 @@ +package com.arsdigita.cms.scipublications.exporter.bibtex.converters; + +import com.arsdigita.cms.contenttypes.Expertise; +import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder; +import com.arsdigita.cms.scipublications.exporter.bibtex.builders.UnsupportedFieldException; +import org.apache.log4j.Logger; + +/** + * + * @author jensp + */ +public class ExpertiseConverter extends AbstractBibTeXConverter { + + private static final Logger logger = Logger.getLogger(ExpertiseConverter.class); + + @Override + protected String getBibTeXType() { + return "misc"; + } + + public String convert(Publication publication) { + BibTeXBuilder builder; + Expertise expertise; + + if (!(publication instanceof Expertise)) { + throw new UnsupportedCcmTypeException( + String.format("The ExpertiseConverter only " + + "supports publication types which are of the" + + "type Expertise or which are " + + "extending " + + "Expertise. The " + + "provided publication is of type '%s' which " + + "is not of type " + + "Expertise and does not " + + "extends Expertise.", + publication.getClass().getName())); + } + + expertise = (Expertise) publication; + + convertAuthors(publication); + builder = getBibTeXBuilder(); + try { + convertTitle(publication); + convertYear(publication); + } catch (UnsupportedFieldException ex) { + logger.warn("Tried to set unsupported BibTeX field while " + + "converting a publication"); + } + + return builder.toBibTeX(); + } + + public String getCcmType() { + return Expertise.class.getName(); + } + +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/GreyLiteratureConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/GreyLiteratureConverter.java new file mode 100644 index 000000000..76f63c95a --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/GreyLiteratureConverter.java @@ -0,0 +1,59 @@ +package com.arsdigita.cms.scipublications.exporter.bibtex.converters; + +import com.arsdigita.cms.contenttypes.GreyLiterature; +import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder; +import com.arsdigita.cms.scipublications.exporter.bibtex.builders.UnsupportedFieldException; +import org.apache.log4j.Logger; + +/** + * + * @author jensp + */ +public class GreyLiteratureConverter extends AbstractBibTeXConverter { + + private static final Logger logger = Logger.getLogger(GreyLiteratureConverter.class); + + @Override + protected String getBibTeXType() { + return "misc"; + } + + public String convert(Publication publication) { + BibTeXBuilder builder; + GreyLiterature greyLiterature; + + if (!(publication instanceof GreyLiterature)) { + throw new UnsupportedCcmTypeException( + String.format("The GreyLiteratureConverter only " + + "supports publication types which are of the" + + "type GreyLiterature or which are " + + "extending " + + "GreyLiterature. The " + + "provided publication is of type '%s' which " + + "is not of type " + + "GreyLiterature and does not " + + "extends GreyLiterature.", + publication.getClass().getName())); + } + + greyLiterature = (GreyLiterature) publication; + + convertAuthors(publication); + builder = getBibTeXBuilder(); + try { + convertTitle(publication); + convertYear(publication); + } catch (UnsupportedFieldException ex) { + logger.warn("Tried to set unsupported BibTeX field while " + + "converting a publication"); + } + + return builder.toBibTeX(); + } + + public String getCcmType() { + return GreyLiterature.class.getName(); + } + +} 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 new file mode 100644 index 000000000..1d807bba6 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/InProceedingsConverter.java @@ -0,0 +1,90 @@ +package com.arsdigita.cms.scipublications.exporter.bibtex.converters; + +import com.arsdigita.cms.contenttypes.InProceedings; +import com.arsdigita.cms.contenttypes.Proceedings; +import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.cms.contenttypes.SeriesCollection; +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.UnsupportedFieldException; +import org.apache.log4j.Logger; + +/** + * + * @author jensp + */ +public class InProceedingsConverter extends AbstractBibTeXConverter { + + private static final Logger logger = Logger.getLogger( + InProceedingsConverter.class); + + @Override + protected String getBibTeXType() { + return "inproceedings"; + } + + public String convert(final Publication publication) { + BibTeXBuilder builder; + InProceedings inProceedings; + + if (!(publication instanceof InProceedings)) { + throw new UnsupportedCcmTypeException( + String.format("The InProceedingsConverter only " + + "supports publication types which are of the" + + "type InProceedings or which are " + + "extending " + + "InProceedings. The " + + "provided publication is of type '%s' which " + + "is not of type " + + "InProceedings and does not " + + "extends InProceedings.", + publication.getClass().getName())); + } + + inProceedings = (InProceedings) publication; + + convertAuthors(publication); + builder = getBibTeXBuilder(); + try { + convertTitle(publication); + convertYear(publication); + + if (inProceedings.getPagesFrom() != null) { + builder.setField(BibTeXField.PAGES, + String.format("%s - %s", + inProceedings.getPagesFrom(), + inProceedings.getPagesTo())); + } + + if (inProceedings.getProceedings() == null) { + builder.setField(BibTeXField.BOOKTITLE, ""); + } else { + Proceedings proceedings; + + proceedings = inProceedings.getProceedings(); + + builder.setField(BibTeXField.BOOKTITLE, + proceedings.getTitle()); + + convertVolume(proceedings); + convertSeries(publication); + + if (proceedings.getOrganizerOfConference() != null) { + builder.setField(BibTeXField.ORGANIZATION, + proceedings.getOrganizerOfConference().getTitle()); + } + + convertPublisher(proceedings); + } + } catch (UnsupportedFieldException ex) { + logger.warn("Tried to set unsupported BibTeX field while " + + "converting a publication"); + } + + return builder.toBibTeX(); + } + + public String getCcmType() { + return InProceedings.class.getName(); + } +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/InternetArticleConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/InternetArticleConverter.java new file mode 100644 index 000000000..5352fb796 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/InternetArticleConverter.java @@ -0,0 +1,60 @@ +package com.arsdigita.cms.scipublications.exporter.bibtex.converters; + +import com.arsdigita.cms.contenttypes.InternetArticle; +import com.arsdigita.cms.contenttypes.Publication; +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.UnsupportedFieldException; +import org.apache.log4j.Logger; + +/** + * + * @author jensp + */ +public class InternetArticleConverter extends AbstractBibTeXConverter { + + private static final Logger logger = Logger.getLogger( + InternetArticleConverter.class); + + @Override + protected String getBibTeXType() { + return "misc"; + } + + public String convert(final Publication publication) { + BibTeXBuilder builder; + InternetArticle article; + + if (!(publication instanceof InternetArticle)) { + throw new UnsupportedCcmTypeException( + String.format("The InternetArticleConverter only " + + "supports publication types which are of the" + + "type InternetArticle or which are " + + "extending " + + "InternetArticle. The " + + "provided publication is of type '%s' which " + + "is not of type " + + "InternetArticle and does not " + + "extends InternetArticle.", + publication.getClass().getName())); + } + + article = (InternetArticle) publication; + + convertAuthors(publication); + builder = getBibTeXBuilder(); + try { + convertTitle(publication); + convertYear(publication); + } catch (UnsupportedFieldException ex) { + logger.warn("Tried to set unsupported BibTeX field while " + + "converting a publication"); + } + + return builder.toBibTeX(); + } + + public String getCcmType() { + return InternetArticle.class.getName(); + } +} 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 new file mode 100644 index 000000000..47383912d --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ProceedingsConverter.java @@ -0,0 +1,72 @@ +package com.arsdigita.cms.scipublications.exporter.bibtex.converters; + +import com.arsdigita.cms.contenttypes.Proceedings; +import com.arsdigita.cms.contenttypes.Publication; +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.UnsupportedFieldException; +import org.apache.log4j.Logger; + +/** + * + * @author jensp + */ +public class ProceedingsConverter extends AbstractBibTeXConverter { + + private static final Logger logger = Logger.getLogger( + ProceedingsConverter.class); + + @Override + protected String getBibTeXType() { + return "proceedings"; + } + + public String convert(final Publication publication) { + BibTeXBuilder builder; + Proceedings proceedings; + + if (!(publication instanceof Proceedings)) { + throw new UnsupportedCcmTypeException( + String.format("The ProceedingsConverter only " + + "supports publication types which are of the" + + "type Proceedings or which are " + + "extending " + + "Proceedings. The " + + "provided publication is of type '%s' which " + + "is not of type " + + "Proceedings and does not " + + "extends Proceedings.", + publication.getClass().getName())); + } + + proceedings = (Proceedings) publication; + + convertAuthors(publication); + builder = getBibTeXBuilder(); + try { + convertTitle(publication); + convertYear(publication); + + convertVolume(proceedings); + convertSeries(publication); + + if (proceedings.getOrganizerOfConference() != null) { + builder.setField(BibTeXField.ORGANIZATION, + proceedings.getOrganizerOfConference(). + getTitle()); + } + + convertPublisher(proceedings); + + } catch (UnsupportedFieldException ex) { + logger.warn("Tried to set unsupported BibTeX field while " + + "converting a publication"); + } + + return builder.toBibTeX(); + } + + public String getCcmType() { + return Proceedings.class.getName(); + } +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ReviewConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ReviewConverter.java new file mode 100644 index 000000000..9ef00eaa5 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/ReviewConverter.java @@ -0,0 +1,16 @@ +package com.arsdigita.cms.scipublications.exporter.bibtex.converters; + +import com.arsdigita.cms.contenttypes.Review; + +/** + * + * @author jensp + */ +public class ReviewConverter extends ArticleInJournalConverter { + + @Override + public String getCcmType() { + return Review.class.getName(); + } + +} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/WorkingPaperConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/WorkingPaperConverter.java new file mode 100644 index 000000000..4f7d09ef0 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/exporter/bibtex/converters/WorkingPaperConverter.java @@ -0,0 +1,59 @@ +package com.arsdigita.cms.scipublications.exporter.bibtex.converters; + +import com.arsdigita.cms.contenttypes.WorkingPaper; +import com.arsdigita.cms.contenttypes.Publication; +import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilder; +import com.arsdigita.cms.scipublications.exporter.bibtex.builders.UnsupportedFieldException; +import org.apache.log4j.Logger; + +/** + * + * @author jensp + */ +public class WorkingPaperConverter extends AbstractBibTeXConverter { + + private static final Logger logger = Logger.getLogger( + WorkingPaperConverter.class); + + @Override + protected String getBibTeXType() { + return "misc"; + } + + public String convert(Publication publication) { + BibTeXBuilder builder; + WorkingPaper workingPaper; + + if (!(publication instanceof WorkingPaper)) { + throw new UnsupportedCcmTypeException( + String.format("The WorkingPaperConverter only " + + "supports publication types which are of the" + + "type WorkingPaper or which are " + + "extending " + + "WorkingPaper. The " + + "provided publication is of type '%s' which " + + "is not of type " + + "WorkingPaper and does not " + + "extends WorkingPaper.", + publication.getClass().getName())); + } + + workingPaper = (WorkingPaper) publication; + + convertAuthors(publication); + builder = getBibTeXBuilder(); + try { + convertTitle(publication); + convertYear(publication); + } catch (UnsupportedFieldException ex) { + logger.warn("Tried to set unsupported BibTeX field while " + + "converting a publication"); + } + + return builder.toBibTeX(); + } + + public String getCcmType() { + return WorkingPaper.class.getName(); + } +} diff --git a/tools-ng/common/xsl/build-template.xsl b/tools-ng/common/xsl/build-template.xsl index a6eef7b90..f2020bca5 100755 --- a/tools-ng/common/xsl/build-template.xsl +++ b/tools-ng/common/xsl/build-template.xsl @@ -1883,6 +1883,18 @@ + + + + + + + + + + + + diff --git a/tools-ng/devel/lib/UmlGraph.jar b/tools-ng/devel/lib/UmlGraph.jar new file mode 100644 index 0000000000000000000000000000000000000000..19d27ae71ae377b40ae362aa345f15eb912a2c70 GIT binary patch literal 65705 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ϛ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

PAW6QiP?UgH?wD{Jx--8{-RjzV9Vd# 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 literal 0 HcmV?d00001