- 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-94f89814c4dfmaster
parent
4156e06a6f
commit
34aa8f72ec
|
|
@ -0,0 +1 @@
|
||||||
|
com.arsdigita.cms.scipublications.exporter.bibtex.BibTeXExporter
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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
|
||||||
|
|
@ -3,6 +3,7 @@ package com.arsdigita.cms.scipublications.exporter.bibtex.builders;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.ServiceLoader;
|
import java.util.ServiceLoader;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -10,6 +11,7 @@ import java.util.ServiceLoader;
|
||||||
*/
|
*/
|
||||||
public class BibTeXBuilders {
|
public class BibTeXBuilders {
|
||||||
|
|
||||||
|
private static final Logger logger = Logger.getLogger(BibTeXBuilders.class);
|
||||||
private Map<String, BibTeXBuilder> builders =
|
private Map<String, BibTeXBuilder> builders =
|
||||||
new HashMap<String, BibTeXBuilder>();
|
new HashMap<String, BibTeXBuilder>();
|
||||||
|
|
||||||
|
|
@ -33,6 +35,22 @@ public class BibTeXBuilders {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BibTeXBuilder getBibTeXBuilderForType(final String type) {
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.arsdigita.cms.scipublications.exporter.bibtex.converters;
|
||||||
import com.arsdigita.cms.contenttypes.AuthorshipCollection;
|
import com.arsdigita.cms.contenttypes.AuthorshipCollection;
|
||||||
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.SeriesCollection;
|
||||||
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.BibTeXBuilders;
|
import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXBuilders;
|
||||||
import com.arsdigita.cms.scipublications.exporter.bibtex.builders.BibTeXField;
|
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)
|
protected void convertPublisher(final PublicationWithPublisher publication)
|
||||||
throws UnsupportedFieldException {
|
throws UnsupportedFieldException {
|
||||||
if (publication.getPublisher() != null) {
|
if (publication.getPublisher() != null) {
|
||||||
getBibTeXBuilder().setField(BibTeXField.PUBLISHER,
|
if ((publication.getPublisher().getPlace() == null)
|
||||||
publication.getPublisher().getTitle());
|
&& 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());
|
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() {
|
protected BibTeXBuilder getBibTeXBuilder() {
|
||||||
if (bibTeXBuilder == null) {
|
if (bibTeXBuilder == null) {
|
||||||
bibTeXBuilder = BibTeXBuilders.getInstance().getBibTeXBuilderForType(
|
bibTeXBuilder = BibTeXBuilders.getInstance().
|
||||||
getBibTeXType());
|
getBibTeXBuilderForType(getBibTeXType());
|
||||||
}
|
}
|
||||||
|
|
||||||
return bibTeXBuilder;
|
return bibTeXBuilder;
|
||||||
|
|
|
||||||
|
|
@ -48,32 +48,36 @@ public class ArticleInCollectedVolumeConverter extends AbstractBibTeXConverter {
|
||||||
convertTitle(publication);
|
convertTitle(publication);
|
||||||
convertYear(publication);
|
convertYear(publication);
|
||||||
|
|
||||||
builder.setField(BibTeXField.BOOKTITLE,
|
if (article.getCollectedVolume() != null) {
|
||||||
article.getCollectedVolume().getTitle());
|
builder.setField(BibTeXField.BOOKTITLE,
|
||||||
if (article.getCollectedVolume().getPublisher() == null) {
|
article.getCollectedVolume().getTitle());
|
||||||
builder.setField(BibTeXField.PUBLISHER, "");
|
|
||||||
|
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 {
|
} else {
|
||||||
builder.setField(BibTeXField.PUBLISHER,
|
builder.setField(BibTeXField.PUBLISHER,
|
||||||
article.getCollectedVolume().getPublisher().
|
article.getCollectedVolume().getPublisher().
|
||||||
getTitle());
|
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) {
|
if (article.getChapter() != null) {
|
||||||
builder.setField(BibTeXField.CHAPTER, article.getChapter());
|
builder.setField(BibTeXField.CHAPTER, article.getChapter());
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1883,6 +1883,18 @@
|
||||||
<classpath refid="server.build.classpath"/>
|
<classpath refid="server.build.classpath"/>
|
||||||
<link href="http://java.sun.com/j2se/1.4/docs/api/"/>
|
<link href="http://java.sun.com/j2se/1.4/docs/api/"/>
|
||||||
<link href="http://java.sun.com/j2ee/tutorial/api/"/>
|
<link href="http://java.sun.com/j2ee/tutorial/api/"/>
|
||||||
|
<doclet name="org.umlgraph.doclet.UmlGraphDoc" path="tools-ng/devel/lib/UmlGraph.jar">
|
||||||
|
<param name="-inferrel"/>
|
||||||
|
<param name="-inferdep"/>
|
||||||
|
<param name="-hide" value="java.*"/>
|
||||||
|
<param name="-collpackages" value="java.util.*"/>
|
||||||
|
<param name="-qualify"/>
|
||||||
|
<param name="-postfixpackage"/>
|
||||||
|
<param name="-nodefontsize" value="9"/>
|
||||||
|
<param name="-nodefontpackagesize" value="7"/>
|
||||||
|
<param name="-link" value="http://java.sun.com/j2se/1.5.0/docs/guide/javadoc/doclet/spec"/>
|
||||||
|
<param name="-link" value="http://java.sun.com/j2se/1.5/docs/api"/>
|
||||||
|
</doclet>
|
||||||
</javadoc>
|
</javadoc>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Reference in New Issue