Top Description Fields Constructors Methods
org.jabref.logic.importer.fileformat

public Class ModsImporter

extends Importer
implements Parser
Class Inheritance
All Implemented Interfaces
org.jabref.logic.importer.Parser
Imports
java.io.BufferedReader, .IOException, .InputStream, .InputStreamReader, java.nio.charset.StandardCharsets, java.util.ArrayList, .Collections, .HashMap, .List, .Locale, .Map, .Objects, .Optional, .Set, java.util.regex.Pattern, java.util.stream.Collectors, javax.xml.stream.XMLInputFactory, .XMLStreamException, .XMLStreamReader, javax.xml.stream.events.XMLEvent, org.jabref.logic.importer.ImportFormatPreferences, .Importer, .ParseException, .Parser, .ParserResult, org.jabref.logic.importer.fileformat.mods.Identifier, .Name, .RecordInfo, org.jabref.logic.util.StandardFileType, org.jabref.model.entry.BibEntry, .Date, org.jabref.model.entry.field.Field, .FieldFactory, .StandardField, .UnknownField, org.jabref.model.entry.types.EntryTypeFactory, com.google.common.base.Joiner, org.slf4j.Logger, .LoggerFactory

Importer for the MODS format.
More details about the format can be found here http://www.loc.gov/standards/mods/.
The newest xml schema can also be found here www.loc.gov/standards/mods/mods-schemas.html..

Field Summary

Modifier and TypeField and Description
private final String
private static final Logger
private static final Pattern
private final XMLInputFactory

Constructor Summary

AccessConstructor and Description
public
ModsImporter(ImportFormatPreferences importFormatPreferences)

Method Summary

Modifier and TypeMethod and Description
private void
public String
getDescription()

Implements abstract org.jabref.logic.importer.Importer.getDescription.

Returns the description of the import format.

public StandardFileType
getFileType()

Implements abstract org.jabref.logic.importer.Importer.getFileType.

Returns the type of files that this importer can read

public String
getName()

Implements abstract org.jabref.logic.importer.Importer.getName.

Returns the name of this import format.

private void
private void
private void
public ParserResult
importDatabase(BufferedReader
the input to read from
input
)

Implements abstract org.jabref.logic.importer.Importer.importDatabase.

Parse the database in the source.

private boolean
private boolean
public boolean
isRecognizedFormat(BufferedReader input)

Implements abstract org.jabref.logic.importer.Importer.isRecognizedFormat.

Check whether the source is in the correct format for this importer.

private boolean
private String
public List<BibEntry>
private void
parseIdentifier(Map<Field, String> fields, Identifier identifier, BibEntry entry)

private void
private void
private void
private void
private void
parseName(XMLStreamReader reader, Map<Field, String> fields, List<String> authors)

private void
private void
private void
parseRelatedItem(XMLStreamReader reader, Map<Field, String> fields)

Parses information from the RelatedModsGroup.

private void
parseSubject(XMLStreamReader reader, Map<Field, String> fields, List<String> keywords)

private void
private void
putDate(Map<Field, String> fields, String elementName, String date)

private void
putIfListIsNotEmpty(Map<Field, String> fields, List<String> list, Field key, String separator)

private void
putIfValueNotNull(Map<Field, String> fields, Field field, String value)

Inherited from org.jabref.logic.importer.Importer:
compareToequalsgetCharsetgetIdgetReadergetReaderhashCodeimportDatabaseimportDatabaseisRecognizedFormatisRecognizedFormattoString

Field Detail

keywordSeparatorback to summary
private final String keywordSeparator
LOGGERback to summary
private static final Logger LOGGER

Hides org.jabref.logic.importer.Importer.LOGGER.

MODS_PATTERNback to summary
private static final Pattern MODS_PATTERN
xmlInputFactoryback to summary
private final XMLInputFactory xmlInputFactory

Constructor Detail

ModsImporterback to summary
public ModsImporter(ImportFormatPreferences importFormatPreferences)

Method Detail

appendIfValueNotNullOrBlankback to summary
private void appendIfValueNotNullOrBlank(List<String> list, String value)
getDescriptionback to summary
public String getDescription()

Implements abstract org.jabref.logic.importer.Importer.getDescription.

Doc from org.jabref.logic.importer.Importer.getDescription.

Returns the description of the import format.

The description should specify

  • what kind of entries from what sources and based on what specification it is able to import
  • by what criteria it recognizes an import format
Returns:String

description of the import format

Annotations
@Override
getFileTypeback to summary
public StandardFileType getFileType()

Implements abstract org.jabref.logic.importer.Importer.getFileType.

Doc from org.jabref.logic.importer.Importer.getFileType.

Returns the type of files that this importer can read

Returns:StandardFileType

FileType corresponding to the importer

Annotations
@Override
getNameback to summary
public String getName()

Implements abstract org.jabref.logic.importer.Importer.getName.

Doc from org.jabref.logic.importer.Importer.getName.

Returns the name of this import format.

The name must be unique.

Returns:String

format name, must be unique and not null

Annotations
@Override
handleAuthorsInNamePartback to summary
private void handleAuthorsInNamePart(List<Name> names, List<String> authors)
handleDetailback to summary
private void handleDetail(XMLStreamReader reader, Map<Field, String> fields) throws XMLStreamException
handleExtentback to summary
private void handleExtent(XMLStreamReader reader, Map<Field, String> fields) throws XMLStreamException
importDatabaseback to summary
public ParserResult importDatabase(BufferedReader input) throws IOException

Implements abstract org.jabref.logic.importer.Importer.importDatabase.

Doc from org.jabref.logic.importer.Importer.importDatabase.

Parse the database in the source.

This method can be called in two different contexts - either when importing in a specified format, or when importing in unknown format. In the latter case, JabRef cycles through all available import formats. No error messages or feedback is displayed from individual import formats in this case.

If importing in a specified format and an empty library is returned, JabRef reports that no entries were found.

This method should never return null.

Parameters
input:BufferedReader

the input to read from

Annotations
@Override
isCharacterXMLEventback to summary
private boolean isCharacterXMLEvent(XMLStreamReader reader)
isEndXMLEventback to summary
private boolean isEndXMLEvent(XMLStreamReader reader)
isRecognizedFormatback to summary
public boolean isRecognizedFormat(BufferedReader input) throws IOException

Implements abstract org.jabref.logic.importer.Importer.isRecognizedFormat.

Doc from org.jabref.logic.importer.Importer.isRecognizedFormat.

Check whether the source is in the correct format for this importer.

The effect of this method is primarily to avoid unnecessary processing of files when searching for a suitable import format. If this method returns false, the import routine will move on to the next import format.

Thus, the correct behaviour is to return false if it is certain that the file is not of the suitable type, and true otherwise. Returning true is the safe choice if not certain.

Annotations
@Override
isStartXMLEventback to summary
private boolean isStartXMLEvent(XMLStreamReader reader)
mapGenreback to summary
private String mapGenre(String genre)
parseEntriesback to summary
public List<BibEntry> parseEntries(InputStream inputStream) throws ParseException

Implements org.jabref.logic.importer.Parser.parseEntries.

Annotations
@Override
parseIdentifierback to summary
private void parseIdentifier(Map<Field, String> fields, Identifier identifier, BibEntry entry)
parseLanguageback to summary
private void parseLanguage(XMLStreamReader reader, Map<Field, String> fields) throws XMLStreamException
parseLocationAndUrlback to summary
private void parseLocationAndUrl(XMLStreamReader reader, Map<Field, String> fields) throws XMLStreamException
parseModsCollectionback to summary
private void parseModsCollection(List<BibEntry> bibItems, XMLStreamReader reader) throws XMLStreamException
parseModsGroupback to summary
private void parseModsGroup(Map<Field, String> fields, XMLStreamReader reader, BibEntry entry) throws XMLStreamException
parseNameback to summary
private void parseName(XMLStreamReader reader, Map<Field, String> fields, List<String> authors) throws XMLStreamException
parseOriginInfoback to summary
private void parseOriginInfo(XMLStreamReader reader, Map<Field, String> fields) throws XMLStreamException
parseRecordInfoback to summary
private void parseRecordInfo(XMLStreamReader reader, Map<Field, String> fields) throws XMLStreamException
parseRelatedItemback to summary
private void parseRelatedItem(XMLStreamReader reader, Map<Field, String> fields) throws XMLStreamException

Parses information from the RelatedModsGroup. It has the same elements as ModsGroup. But information like volume, issue and the pages appear here instead of in the ModsGroup. Also, if there appears a title field, then this indicates that is the name of the journal which the article belongs to.

parseSubjectback to summary
private void parseSubject(XMLStreamReader reader, Map<Field, String> fields, List<String> keywords) throws XMLStreamException
parseTitleback to summary
private void parseTitle(XMLStreamReader reader, Map<Field, String> fields) throws XMLStreamException
putDateback to summary
private void putDate(Map<Field, String> fields, String elementName, String date)
putIfListIsNotEmptyback to summary
private void putIfListIsNotEmpty(Map<Field, String> fields, List<String> list, Field key, String separator)
putIfValueNotNullback to summary
private void putIfValueNotNull(Map<Field, String> fields, Field field, String value)