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

public Class BstStyle

extends Object
implements OOStyle
Class Inheritance
All Implemented Interfaces
org.jabref.logic.openoffice.style.OOStyle
Annotations
@NullMarked
Imports
java.io.IOException, .InputStream, java.nio.charset.StandardCharsets, java.nio.file.Files, .Path, org.jabref.logic.bst.BstVM, org.antlr.v4.runtime.misc.ParseCancellationException, org.jspecify.annotations.NullMarked, .Nullable

An OOStyle backed by a .bst file - either an internal (classpath) style bundled with JabRef or an external (filesystem) style supplied by the user.

Field Summary

Modifier and TypeField and Description
private final BstVM
bstVM

Parsed executable program for this specific .bst style.

private final @Nullable Path
filePath

Filesystem path for external styles; null for internal styles.

private final boolean
private final boolean
public static final String
public static final String
public static final String
INTERNAL_IEEETRAN_PATH

Classpath resource paths for the built-in BST styles.

private final String
private final @Nullable String
resourcePath

Classpath resource path for internal styles; null for external styles.

private final String

Constructor Summary

AccessConstructor and Description
private
BstStyle(@Nullable String resourcePath, @Nullable Path filePath, boolean internal, String source, BstVM bstVM)

Method Summary

Modifier and TypeMethod and Description
public BstVM
createBstVM()

Returns the parsed BstVM for this style.

public static BstStyle
createInternal(String resourcePath)

Creates an internal style loaded from a classpath resource (e.g. /resource/openoffice/IEEEtran.bst).

public boolean
equals(Object o)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

public @Nullable Path
getFilePath()

Returns the filesystem Path for external styles, or null for internal styles.

public String
public String
getPath()

Implements org.jabref.logic.openoffice.style.OOStyle.getPath.

For external styles returns the absolute filesystem path.

public String
public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.

public boolean
public boolean
public static BstStyle
loadExternal(Path path)

Creates an external (user-supplied) style backed by a filesystem path.

private static String
public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

bstVMback to summary
private final BstVM bstVM

Parsed executable program for this specific .bst style.

BstVM is not style-agnostic: it represents the parsed program of one concrete .bst file. We keep it on the style so repeated preview/citation/bibliography operations can reuse the parsed program and avoid reparsing and reallocating a new BstVM on each operation.

filePathback to summary
private final @Nullable Path filePath

Filesystem path for external styles; null for internal styles.

hasSortCommandback to summary
private final boolean hasSortCommand
internalback to summary
private final boolean internal
INTERNAL_ABBRV_PATHback to summary
public static final String INTERNAL_ABBRV_PATH
INTERNAL_APA_PATHback to summary
public static final String INTERNAL_APA_PATH
INTERNAL_IEEETRAN_PATHback to summary
public static final String INTERNAL_IEEETRAN_PATH

Classpath resource paths for the built-in BST styles.

nameback to summary
private final String name
resourcePathback to summary
private final @Nullable String resourcePath

Classpath resource path for internal styles; null for external styles.

sourceback to summary
private final String source

Constructor Detail

BstStyleback to summary
private BstStyle(@Nullable String resourcePath, @Nullable Path filePath, boolean internal, String source, BstVM bstVM)

Method Detail

createBstVMback to summary
public BstVM createBstVM()

Returns the parsed BstVM for this style.

createInternalback to summary
public static BstStyle createInternal(String resourcePath) throws IOException

Creates an internal style loaded from a classpath resource (e.g. /resource/openoffice/IEEEtran.bst).

equalsback to summary
public boolean equals(Object o)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Annotations
@Override
getFilePathback to summary
public @Nullable Path getFilePath()

Returns the filesystem Path for external styles, or null for internal styles.

getNameback to summary
public String getName()

Implements org.jabref.logic.openoffice.style.OOStyle.getName.

Annotations
@Override
getPathback to summary
public String getPath()

Implements org.jabref.logic.openoffice.style.OOStyle.getPath.

For external styles returns the absolute filesystem path. For internal styles returns the classpath resource path (starts with /resource/openoffice/). This value is persisted by JabRefCliPreferences and used to reconstruct the style on startup.

Annotations
@Override
getSourceback to summary
public String getSource()
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Annotations
@Override
hasSortCommandback to summary
public boolean hasSortCommand()
isInternalStyleback to summary
public boolean isInternalStyle()

Implements org.jabref.logic.openoffice.style.OOStyle.isInternalStyle.

Annotations
@Override
loadExternalback to summary
public static BstStyle loadExternal(Path path) throws IOException

Creates an external (user-supplied) style backed by a filesystem path.

stripBstExtensionback to summary
private static String stripBstExtension(String filename)
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Annotations
@Override