package org.jabref.model.metadata;
import java.nio.file.InvalidPathException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Map;
import java.util.Optional;
import org.jabref.model.entry.FieldName;
public class FileDirectoryPreferences {
public static final String DIR_SUFFIX = "Directory";
private final String user;
private final Map<String, String> fieldFileDirectories;
private final boolean bibLocationAsPrimary;
public FileDirectoryPreferences(String user, Map<String, String> fieldFileDirectories, boolean bibLocationAsPrimary) {
this.user = user;
this.fieldFileDirectories = fieldFileDirectories;
this.bibLocationAsPrimary = bibLocationAsPrimary;
}
public String getUser() {
return user;
}
public Optional<Path> getFileDirectory(String field) {
try {
String value = fieldFileDirectories.get(field);
// filter empty paths
if ((value != null) && !value.isEmpty()) {
Path path = Paths.get(value);
return Optional.of(path);
}
return Optional.empty();
} catch (InvalidPathException ex) {
return Optional.empty();
}
}
public Optional<Path> getFileDirectory() {
return getFileDirectory(FieldName.FILE);
}
public boolean isBibLocationAsPrimary() {
return bibLocationAsPrimary;
}
}