package org.jabref.model.entry;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
/**
* Converts Entry models from BibTex to biblatex and back.
*/
public class EntryConverter {
// BibTeX to biblatex
public static Map<String, String> FIELD_ALIASES_TEX_TO_LTX;
// biblatex to BibTeX
public static Map<String, String> FIELD_ALIASES_LTX_TO_TEX;
// All aliases
public static Map<String, String> FIELD_ALIASES;
static {
EntryConverter.FIELD_ALIASES_TEX_TO_LTX = new HashMap<>();
EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(FieldName.ADDRESS, FieldName.LOCATION);
EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(FieldName.ANNOTE, FieldName.ANNOTATION);
EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put("archiveprefix", FieldName.EPRINTTYPE);
EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(FieldName.JOURNAL, FieldName.JOURNALTITLE);
EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(FieldName.KEY, "sortkey");
EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(FieldName.PDF, FieldName.FILE);
EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put("primaryclass", FieldName.EPRINTCLASS);
EntryConverter.FIELD_ALIASES_TEX_TO_LTX.put(FieldName.SCHOOL, FieldName.INSTITUTION);
// inverse map
EntryConverter.FIELD_ALIASES_LTX_TO_TEX = EntryConverter.FIELD_ALIASES_TEX_TO_LTX.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey));
// all aliases
FIELD_ALIASES = new HashMap<>();
FIELD_ALIASES.putAll(EntryConverter.FIELD_ALIASES_TEX_TO_LTX);
FIELD_ALIASES.putAll(EntryConverter.FIELD_ALIASES_LTX_TO_TEX);
}
private EntryConverter() {
}
}