From 81a4a4f63d8e7c3e53a0ae8ba523d9bdfa468a7a Mon Sep 17 00:00:00 2001 From: Joerg Lenhard Date: Thu, 24 Sep 2015 11:19:16 +0200 Subject: [PATCH] Use List instead of String[] for the cache --- .../logic/bibtex/BibtexEntryWriter.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/sf/jabref/logic/bibtex/BibtexEntryWriter.java b/src/main/java/net/sf/jabref/logic/bibtex/BibtexEntryWriter.java index 7e488b1ee14..770241a1a19 100644 --- a/src/main/java/net/sf/jabref/logic/bibtex/BibtexEntryWriter.java +++ b/src/main/java/net/sf/jabref/logic/bibtex/BibtexEntryWriter.java @@ -32,9 +32,9 @@ public class BibtexEntryWriter { BibtexEntryWriter.tagDisplayNameMap.put("UNKNOWN", "UNKNOWN"); } - private static final Map requiredFieldsSorted = new HashMap<>(); + private static final Map> requiredFieldsSorted = new HashMap<>(); - private static final Map optionalFieldsSorted = new HashMap<>(); + private static final Map> optionalFieldsSorted = new HashMap<>(); /** @@ -112,7 +112,7 @@ private void writeRequiredFieldsFirstOptionalFieldsSecondRemainingFieldsThird(Bi writtenFields.add("title"); if (entry.getRequiredFields() != null) { - String[] requiredFields = getRequiredFieldsSorted(entry); + List requiredFields = getRequiredFieldsSorted(entry); for (String value : requiredFields) { if (!writtenFields.contains(value)) { // If field appears both in req. and opt. don't repeat. hasWritten = hasWritten | writeField(entry, out, value, hasWritten); @@ -123,7 +123,7 @@ private void writeRequiredFieldsFirstOptionalFieldsSecondRemainingFieldsThird(Bi // Then optional fields if (entry.getOptionalFields() != null) { - String[] optionalFields = getOptionalFieldsSorted(entry); + List optionalFields = getOptionalFieldsSorted(entry); for (String value : optionalFields) { if (!writtenFields.contains(value)) { // If field appears both in req. and opt. don't repeat. hasWritten = hasWritten | writeField(entry, out, value, hasWritten); @@ -150,28 +150,28 @@ private void writeRequiredFieldsFirstOptionalFieldsSecondRemainingFieldsThird(Bi out.write((hasWritten ? Globals.NEWLINE : "") + '}' + Globals.NEWLINE); } - private String[] getRequiredFieldsSorted(BibtexEntry entry) { + private List getRequiredFieldsSorted(BibtexEntry entry) { String entryTypeName = entry.getType().getName(); - String[] sortedFields = requiredFieldsSorted.get(entryTypeName); + List sortedFields = requiredFieldsSorted.get(entryTypeName); // put into chache if necessary if (sortedFields == null) { - sortedFields = entry.getRequiredFields().stream().toArray(size -> new String[size]); - Arrays.sort(sortedFields); + sortedFields = new ArrayList(entry.getRequiredFields()); + Collections.sort(sortedFields); requiredFieldsSorted.put(entryTypeName, sortedFields); } return sortedFields; } - private String[] getOptionalFieldsSorted(BibtexEntry entry) { + private List getOptionalFieldsSorted(BibtexEntry entry) { String entryTypeName = entry.getType().getName(); - String[] sortedFields = optionalFieldsSorted.get(entryTypeName); + List sortedFields = optionalFieldsSorted.get(entryTypeName); // put into chache if necessary if (sortedFields == null) { - sortedFields = entry.getOptionalFields().stream().toArray(size -> new String[size]); - Arrays.sort(sortedFields); + sortedFields = new ArrayList(entry.getOptionalFields()); + Collections.sort(sortedFields); optionalFieldsSorted.put(entryTypeName, sortedFields); }