From dff8170849042cb113aadeec915e0b816e08a73a Mon Sep 17 00:00:00 2001 From: Stanley F Date: Mon, 9 Sep 2019 16:24:04 +0200 Subject: [PATCH] fix BibTeXML exporter to comply with unified month format --- .../jabref/logic/exporter/BibTeXMLExporter.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/org/jabref/logic/exporter/BibTeXMLExporter.java b/src/main/java/org/jabref/logic/exporter/BibTeXMLExporter.java index 2c0100b5f12..1e5b6b310ca 100644 --- a/src/main/java/org/jabref/logic/exporter/BibTeXMLExporter.java +++ b/src/main/java/org/jabref/logic/exporter/BibTeXMLExporter.java @@ -10,6 +10,7 @@ import java.util.Locale; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.stream.Collectors; import javax.xml.bind.JAXBContext; @@ -40,6 +41,7 @@ import org.jabref.logic.util.StandardFileType; import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.entry.BibEntry; +import org.jabref.model.entry.Month; import org.jabref.model.entry.field.Field; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.types.EntryType; @@ -153,6 +155,13 @@ private void parseInbook(Inbook inbook, BibEntry bibEntry, Entry entry) { JAXBElement number = new JAXBElement<>(new QName(BIBTEXML_NAMESPACE_URI, "number"), BigInteger.class, new BigInteger(value)); inbook.getContent().add(number); + } else if (StandardField.MONTH.equals(key)) { + Optional month = bibEntry.getMonth(); + if (month.isPresent()) { + JAXBElement element = new JAXBElement<>(new QName(BIBTEXML_NAMESPACE_URI, key.getName()), + String.class, month.get().getFullName()); + inbook.getContent().add(element); + } } else { JAXBElement element = new JAXBElement<>(new QName(BIBTEXML_NAMESPACE_URI, key.getName()), String.class, value); @@ -205,6 +214,12 @@ private void parse(T entryType, BibEntry bibEntry, Entry entry) { LOGGER.warn("The value %s of the 'number' field is not an integer and thus is ignored for the export", value); } break; + } else if (StandardField.MONTH.equals(key)) { + Optional month = bibEntry.getMonth(); + if (month.isPresent()) { + method.invoke(entryType, month.get().getFullName()); + } + break; } else { method.invoke(entryType, value); break;