Verified Owner
Top Fields Constructors Methods
org.jabref.model.entry.field

public Class FieldFactory

extends Object
Class Inheritance
Annotations
@AllowedToUseLogic:Uses StringUtil temporarily
@NullMarked
Imports
java.util.Arrays, .Collection, .Collections, .Comparator, .EnumSet, .HashSet, .LinkedHashSet, .List, .SequencedSet, .Set, .TreeSet, java.util.function.Predicate, java.util.regex.Matcher, .Pattern, java.util.stream.Collectors, org.jabref.architecture.AllowedToUseLogic, org.jabref.logic.util.strings.StringUtil, org.jabref.model.entry.types.EntryType, org.jabref.model.util.OptionalUtil, org.jspecify.annotations.NullMarked, .Nullable

Field Summary

Modifier and TypeField and Description
private static final String
private static final String
private static final String
FIELD_OR_SEPARATOR

Character separating field names that are to be used in sequence as fallbacks for a single column (e.g. "author/editor" to use editor where author is not set):

private static final String
private static final Pattern

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static Set<Field>
public static Set<Field>
getAllFieldsWithOutInternal()

Returns an alphabetically sorted Set of Fields with all fields without internal ones

public static Set<Field>
public static Set<Field>
getCommonFields()

Returns a Set with all standard fields and including some common internal fields

public static Set<Field>

Returns:

Set of fields
getDateFields
()

Gets all fields with FieldProperty#DATE.

private static Set<Field>
public static Set<Field>
public static Collection<Field>
getNotTextFields()

Returns a collection of StandardFields where the content should not be interpreted as "plain" text, but something else (such as links to other fields, numbers, ...)

public static Set<Field>
public static SequencedSet<Field>
getStandardFieldsWithCitationKey()

Returns a list with all standard fields and the citation key field

public static boolean
public static boolean
isLatexField(Field field)

Checks whether the given field contains LaTeX code or something else

public static boolean
isMultiLineField(final Field field, List<Field>
This comes from the preferences - and introduces user configuration.
nonWrappableFields
)

Note

User configurability is discussed at #9840.

public static Field
parseField(String fieldName)

public static <T extends EntryType> Field
parseField(@Nullable T type, String fieldName)

Type T is an entry type and is used to direct the mapping to the Java field class.

public static SequencedSet<Field>
parseFieldList(String fieldNames)

public static OrFields
parseOrFields(String fieldNames)

public static SequencedSet<OrFields>
public static String
public static String
public static String
public static String
public static String
public static String
public static String
private static String
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

DELIMITERback to summary
private static final String DELIMITER
FIELD_NAME_PROPERTY_SEPARATORback to summary
private static final String FIELD_NAME_PROPERTY_SEPARATOR
FIELD_OR_SEPARATORback to summary
private static final String FIELD_OR_SEPARATOR

Character separating field names that are to be used in sequence as fallbacks for a single column (e.g. "author/editor" to use editor where author is not set):

FIELD_PROPERTY_SEPARATORback to summary
private static final String FIELD_PROPERTY_SEPARATOR
UNKNOWNFIELD_PATTERNback to summary
private static final Pattern UNKNOWNFIELD_PATTERN

Constructor Detail

FieldFactoryback to summary
public FieldFactory()

Method Detail

getAllFieldsback to summary
private static Set<Field> getAllFields()
getAllFieldsWithOutInternalback to summary
public static Set<Field> getAllFieldsWithOutInternal()

Returns an alphabetically sorted Set of Fields with all fields without internal ones

getBookNameFieldsback to summary
public static Set<Field> getBookNameFields()
getCommonFieldsback to summary
public static Set<Field> getCommonFields()

Returns a Set with all standard fields and including some common internal fields

getDateFieldsback to summary
public static Set<Field> getDateFields()

Gets all fields with FieldProperty#DATE. Also includes StandardField#YEAR.

Returns:Set<Field>

Set of fields

getFieldsFilteredback to summary
private static Set<Field> getFieldsFiltered(Predicate<Field> selector)
getJournalNameFieldsback to summary
public static Set<Field> getJournalNameFields()
getNotTextFieldsback to summary
public static Collection<Field> getNotTextFields()

Returns a collection of StandardFields where the content should not be interpreted as "plain" text, but something else (such as links to other fields, numbers, ...)

getPersonNameFieldsback to summary
public static Set<Field> getPersonNameFields()
getStandardFieldsWithCitationKeyback to summary
public static SequencedSet<Field> getStandardFieldsWithCitationKey()

Returns a list with all standard fields and the citation key field

isInternalFieldback to summary
public static boolean isInternalField(Field field)
isLatexFieldback to summary
public static boolean isLatexField(Field field)

Checks whether the given field contains LaTeX code or something else

isMultiLineFieldback to summary
public static boolean isMultiLineField(final Field field, List<Field> nonWrappableFields)

Note

User configurability is discussed at #9840.

Parameters
nonWrappableFields:List<Field>

This comes from the preferences - and introduces user configuration.

parseFieldback to summary
public static Field parseField(String fieldName)
parseFieldback to summary
public static <T extends EntryType> Field parseField(@Nullable T type, String fieldName)

Type T is an entry type and is used to direct the mapping to the Java field class. This somehow acts as filter, BibLaTeX "APA" entry type has field "article", but we want to have StandardField (if not explicitly requested otherwise)

Supports also parsing of "UnknownField{name='rights'}" as field name (written by JabRef 5.x)

parseFieldListback to summary
public static SequencedSet<Field> parseFieldList(String fieldNames)
parseOrFieldsback to summary
public static OrFields parseOrFields(String fieldNames)
parseOrFieldsListback to summary
public static SequencedSet<OrFields> parseOrFieldsList(String fieldNames)
serializeFieldsListback to summary
public static String serializeFieldsList(Collection<Field> fields)
serializeFieldsListV2back to summary
public static String serializeFieldsListV2(Collection<Field> fields)
serializeOrFieldsback to summary
public static String serializeOrFields(Field... fields)
serializeOrFieldsback to summary
public static String serializeOrFields(OrFields fields)
serializeOrFieldsListback to summary
public static String serializeOrFieldsList(Set<OrFields> fields)
serializeOrFieldsListV2back to summary
public static String serializeOrFieldsListV2(Set<OrFields> fields)
serializeOrFieldsV2back to summary
public static String serializeOrFieldsV2(OrFields fields)
serializeUnknownFieldback to summary
private static String serializeUnknownField(UnknownField unknownField)