Skip to content

Commit ad20fc4

Browse files
Do not map bibtex fields to more than one CSL field
Fixes #111
1 parent 6e9eceb commit ad20fc4

File tree

3 files changed

+8
-22
lines changed

3 files changed

+8
-22
lines changed

citeproc-java/src/main/java/de/undercouch/citeproc/bibtex/BibTeXConverter.java

+1-9
Original file line numberDiff line numberDiff line change
@@ -217,15 +217,11 @@ public CSLItemData toItemData(BibTeXEntry e) {
217217
// map journal/journaltitle, booktitle, series
218218
if (entries.containsKey(FIELD_JOURNAL)) {
219219
builder.containerTitle(entries.get(FIELD_JOURNAL));
220-
builder.collectionTitle(entries.get(FIELD_JOURNAL));
221220
} else if (entries.containsKey(FIELD_JOURNALTITLE)) {
222221
builder.containerTitle(entries.get(FIELD_JOURNALTITLE));
223-
builder.collectionTitle(entries.get(FIELD_JOURNALTITLE));
224222
} else if (entries.containsKey(FIELD_BOOKTITLE)) {
225223
builder.containerTitle(entries.get(FIELD_BOOKTITLE));
226-
builder.collectionTitle(entries.get(FIELD_BOOKTITLE));
227224
} else {
228-
builder.containerTitle(entries.get(FIELD_SERIES));
229225
builder.collectionTitle(entries.get(FIELD_SERIES));
230226
}
231227
if (entries.containsKey(FIELD_SERIES)) {
@@ -243,11 +239,7 @@ public CSLItemData toItemData(BibTeXEntry e) {
243239

244240
// map number and issue
245241
builder.number(entries.get(FIELD_NUMBER));
246-
if (entries.containsKey(FIELD_ISSUE)) {
247-
builder.issue(entries.get(FIELD_ISSUE));
248-
} else {
249-
builder.issue(entries.get(FIELD_NUMBER));
250-
}
242+
builder.issue(entries.get(FIELD_ISSUE));
251243

252244
// map publisher, institution, school, organisation
253245
if (type == CSLType.REPORT) {

citeproc-java/src/test/java/de/undercouch/citeproc/bibtex/BibTeXConverterTest.java

-6
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,8 @@ public void singleEntry() throws Exception {
4343
assertEquals("Dennis W.", cid.getAuthor()[0].getGiven());
4444
assertEquals("Thompson", cid.getAuthor()[1].getFamily());
4545
assertEquals("Ken", cid.getAuthor()[1].getGiven());
46-
assertEquals("Communications of the Association for Computing Machinery", cid.getCollectionTitle());
4746
assertEquals("Communications of the Association for Computing Machinery", cid.getContainerTitle());
4847
assertEquals("17", cid.getVolume());
49-
assertEquals("7", cid.getIssue());
5048
assertEquals("7", cid.getNumber());
5149
assertEquals("11", cid.getNumberOfPages());
5250
assertEquals("365-375", cid.getPage());
@@ -72,10 +70,8 @@ public void singleEntryWithDateRange() throws Exception {
7270
assertEquals(1, cid.getAuthor().length);
7371
assertEquals("Lycklama", cid.getAuthor()[0].getFamily());
7472
assertEquals("H.", cid.getAuthor()[0].getGiven());
75-
assertEquals("The Bell System Technical Journal", cid.getCollectionTitle());
7673
assertEquals("The Bell System Technical Journal", cid.getContainerTitle());
7774
assertEquals("57", cid.getVolume());
78-
assertEquals("6", cid.getIssue());
7975
assertEquals("6", cid.getNumber());
8076
assertEquals("15", cid.getNumberOfPages());
8177
assertEquals("2087-2101", cid.getPage());
@@ -103,10 +99,8 @@ public void allEntries() throws Exception {
10399
assertEquals("Dennis W.", cid.getAuthor()[0].getGiven());
104100
assertEquals("Thompson", cid.getAuthor()[1].getFamily());
105101
assertEquals("Ken", cid.getAuthor()[1].getGiven());
106-
assertEquals("Communications of the Association for Computing Machinery", cid.getCollectionTitle());
107102
assertEquals("Communications of the Association for Computing Machinery", cid.getContainerTitle());
108103
assertEquals("17", cid.getVolume());
109-
assertEquals("7", cid.getIssue());
110104
assertEquals("7", cid.getNumber());
111105
assertEquals("11", cid.getNumberOfPages());
112106
assertEquals("365-375", cid.getPage());

citeproc-java/src/test/java/de/undercouch/citeproc/bibtex/BibTeXItemDataProviderTest.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,14 @@ public void bibliography() throws Exception {
7575
assertEquals("[1]S. C. Johnson and B. W. Kernighan, \u201cThe Programming Language B,\u201d "
7676
+ "Bell Laboratories, Murray Hill, NJ, USA, Technical report 8, 1973.\n", b.getEntries()[0]);
7777
assertEquals("[2]D. M. Ritchie and K. Thompson, \u201cThe UNIX time-sharing system,\u201d "
78-
+ "Operating Systems Review, vol. 7, no. 4, Art. no. 4, Oct. 1973.\n", b.getEntries()[1]);
78+
+ "Operating Systems Review, vol. 7, Art. no. 4, Oct. 1973.\n", b.getEntries()[1]);
7979
assertEquals("[3]D. W. Ritchie and K. Thompson, \u201cThe UNIX Time-Sharing System,\u201d "
80-
+ "Communications of the Association for Computing Machinery, vol. 17, no. 7, Art. no. 7, "
80+
+ "Communications of the Association for Computing Machinery, vol. 17, Art. no. 7, "
8181
+ "Jul. 1974.\n", b.getEntries()[2]);
8282
assertEquals("[4]H. Lycklama, \u201cUNIX Time-Sharing System: UNIX on a Microprocessor,\u201d "
83-
+ "The Bell System Technical Journal, vol. 57, no. 6, Art. no. 6, "
83+
+ "The Bell System Technical Journal, vol. 57, Art. no. 6, "
8484
+ "Jul.\u2013Aug. 1978, [Online]. Available: "
85-
+ "http://bstj.bell-labs.com/BSTJ/images/Vol57/bstj57-6-2087.pdf.\n", b.getEntries()[3]);
85+
+ "http://bstj.bell-labs.com/BSTJ/images/Vol57/bstj57-6-2087.pdf\n", b.getEntries()[3]);
8686
}
8787

8888
/**
@@ -179,7 +179,7 @@ public void noCollectionAuthor() throws Exception {
179179

180180
Bibliography b = citeproc.makeBibliography();
181181
assertEquals(1, b.getEntries().length);
182-
assertEquals("Sterling, T. L. (Ed.). (2001). Beowulf Cluster Computing with Linux "
182+
assertEquals("Sterling, T. L. (2001). Beowulf Cluster Computing with Linux "
183183
+ "(p. xxxiii + 496). MIT Press.\n", b.getEntries()[0]);
184184

185185
// compare with another item from the unix database
@@ -200,13 +200,13 @@ public void noCollectionAuthor() throws Exception {
200200
BibTeXItemDataProvider sys = new BibTeXItemDataProvider();
201201
sys.addDatabase(db);
202202

203-
citeproc.reset();
203+
citeproc = new CSL(sys, "apa");
204204
citeproc.setOutputFormat("text");
205205
sys.registerCitationItems(citeproc);
206206

207207
Bibliography b2 = citeproc.makeBibliography();
208208
assertEquals(1, b2.getEntries().length);
209-
assertEquals("Rice, J. (Ed.). (1993). Five steps to HP-UX. OnWord Press.\n", b2.getEntries()[0]);
209+
assertEquals("Rice, J. (1993). Five steps to HP-UX. OnWord Press.\n", b2.getEntries()[0]);
210210
}
211211

212212
/**

0 commit comments

Comments
 (0)