Verified Owner
Top Description Fields Constructors Methods
org.jabref.model.openoffice.style

public Class CitationGroups

extends Object
Class Inheritance
Imports
java.util.ArrayList, .Comparator, .LinkedHashMap, .List, .Map, .Optional, java.util.function.Consumer, org.jabref.model.database.BibDatabase, org.jabref.model.entry.BibEntry, org.jabref.model.openoffice.util.OOListUtil, .OOPair, org.jspecify.annotations.NonNull, org.slf4j.Logger, .LoggerFactory

CitationGroups : the set of citation groups in the document.

This is the main input (as well as output) for creating citation markers and bibliography.

Field Summary

Modifier and TypeField and Description
private Optional<CitedReferences>
bibliography

This is going to be the bibliography

private final Map<CitationGroupId, CitationGroup>
private Optional<List<CitationGroupId>>
globalOrder

Provides order of appearance for the citation groups.

private static final Logger

Constructor Summary

AccessConstructor and Description
public
CitationGroups(Map<CitationGroupId, CitationGroup> citationGroups)

Constructor

Method Summary

Modifier and TypeMethod and Description
public void
public void
public boolean
citationGroupsProvideReferenceMarkNameForLinking()

Returns: true if all citation groups have referenceMarkNameForLinking

public void
createNumberedBibliographySortedByComparator(Comparator<BibEntry> entryComparator)

Precondition

database lookup already performed (otherwise we just sort citation keys)

public void
public void
createPlainBibliographySortedByComparator(Comparator<BibEntry> entryComparator)

Precondition

database lookup already performed (otherwise we just sort citation keys)

public <T> void
distributeToCitations(List<CitationPath> where, Consumer<OOPair<Citation, T>> fun, T value)

For each citation in where call fun.accept(new Pair(citation, value));

public Optional<CitedReferences>
public Optional<CitationGroup>
public List<CitationGroup>
getCitationGroupsInGlobalOrder()

Citation groups in globalOrder

public List<CitationGroup>
public CitedReferences
getCitedReferencesSortedInOrderOfAppearance()

CitedReferences created iterating citations in (globalOrder,localOrder)

public CitedReferences
getCitedReferencesUnordered()

Collect citations into a list of cited sources using neither CitationGroup.globalOrder or Citation.localOrder

public List<String>
getUnresolvedKeys()

Returns: Citation keys where lookupCitations() failed.

public boolean
public void
imposeLocalOrder(Comparator<BibEntry> entryComparator)

Impose an order for citations within each group.

public void
public int
public void
setGlobalOrder(@NonNull List<CitationGroupId> globalOrder)

Impose an order of citation groups by providing the order of their citation group idendifiers.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

bibliographyback to summary
private Optional<CitedReferences> bibliography

This is going to be the bibliography

citationGroupsUnorderedback to summary
private final Map<CitationGroupId, CitationGroup> citationGroupsUnordered
globalOrderback to summary
private Optional<List<CitationGroupId>> globalOrder

Provides order of appearance for the citation groups.

LOGGERback to summary
private static final Logger LOGGER

Constructor Detail

CitationGroupsback to summary
public CitationGroups(Map<CitationGroupId, CitationGroup> citationGroups)

Constructor

Method Detail

afterCreateCitationGroupback to summary
public void afterCreateCitationGroup(CitationGroup group)
afterRemoveCitationGroupback to summary
public void afterRemoveCitationGroup(CitationGroup group)
citationGroupsProvideReferenceMarkNameForLinkingback to summary
public boolean citationGroupsProvideReferenceMarkNameForLinking()
Returns:boolean

true if all citation groups have referenceMarkNameForLinking

createNumberedBibliographySortedByComparatorback to summary
public void createNumberedBibliographySortedByComparator(Comparator<BibEntry> entryComparator)

Precondition

database lookup already performed (otherwise we just sort citation keys)

createNumberedBibliographySortedInOrderOfAppearanceback to summary
public void createNumberedBibliographySortedInOrderOfAppearance()
createPlainBibliographySortedByComparatorback to summary
public void createPlainBibliographySortedByComparator(Comparator<BibEntry> entryComparator)

Precondition

database lookup already performed (otherwise we just sort citation keys)

distributeToCitationsback to summary
public <T> void distributeToCitations(List<CitationPath> where, Consumer<OOPair<Citation, T>> fun, T value)

For each citation in where call fun.accept(new Pair(citation, value));

getBibliographyback to summary
public Optional<CitedReferences> getBibliography()
getCitationGroupback to summary
public Optional<CitationGroup> getCitationGroup(CitationGroupId groupId)
getCitationGroupsInGlobalOrderback to summary
public List<CitationGroup> getCitationGroupsInGlobalOrder()

Citation groups in globalOrder

getCitationGroupsUnorderedback to summary
public List<CitationGroup> getCitationGroupsUnordered()
getCitedReferencesSortedInOrderOfAppearanceback to summary
public CitedReferences getCitedReferencesSortedInOrderOfAppearance()

CitedReferences created iterating citations in (globalOrder,localOrder)

getCitedReferencesUnorderedback to summary
public CitedReferences getCitedReferencesUnordered()

Collect citations into a list of cited sources using neither CitationGroup.globalOrder or Citation.localOrder

getUnresolvedKeysback to summary
public List<String> getUnresolvedKeys()
Returns:List<String>

Citation keys where lookupCitations() failed.

hasGlobalOrderback to summary
public boolean hasGlobalOrder()
imposeLocalOrderback to summary
public void imposeLocalOrder(Comparator<BibEntry> entryComparator)

Impose an order for citations within each group.

lookupCitationsback to summary
public void lookupCitations(List<BibDatabase> databases)
numberOfCitationGroupsback to summary
public int numberOfCitationGroups()
setGlobalOrderback to summary
public void setGlobalOrder(@NonNull List<CitationGroupId> globalOrder)

Impose an order of citation groups by providing the order of their citation group idendifiers.

Also set indexInGlobalOrder for each citation group.