mirror of
https://github.com/bisq-network/bisq.git
synced 2024-11-19 09:52:23 +01:00
Introduce and document static Config.appDataDir()
See Javadoc added in this change and the previous commit message for further detail and context.
This commit is contained in:
parent
42a037e19f
commit
4ea3290608
@ -30,6 +30,7 @@ import java.util.Optional;
|
|||||||
|
|
||||||
import ch.qos.logback.classic.Level;
|
import ch.qos.logback.classic.Level;
|
||||||
|
|
||||||
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
import static java.lang.String.format;
|
import static java.lang.String.format;
|
||||||
import static java.util.stream.Collectors.toList;
|
import static java.util.stream.Collectors.toList;
|
||||||
|
|
||||||
@ -90,10 +91,7 @@ public class Config {
|
|||||||
public static final boolean DEFAULT_FULL_DAO_NODE = false;
|
public static final boolean DEFAULT_FULL_DAO_NODE = false;
|
||||||
static final String DEFAULT_CONFIG_FILE_NAME = "bisq.properties";
|
static final String DEFAULT_CONFIG_FILE_NAME = "bisq.properties";
|
||||||
|
|
||||||
// legacy mutable static field used to support opening bisq.log from
|
private static File APP_DATA_DIR_VALUE;
|
||||||
// Overlay.addReportErrorButtons. avoids the need to inject config into all Overlay
|
|
||||||
// subclasses. TODO: do the injection anyway
|
|
||||||
public static File CURRENT_APP_DATA_DIR;
|
|
||||||
private static BaseCurrencyNetwork BASE_CURRENCY_NETWORK_VALUE = BaseCurrencyNetwork.BTC_MAINNET;
|
private static BaseCurrencyNetwork BASE_CURRENCY_NETWORK_VALUE = BaseCurrencyNetwork.BTC_MAINNET;
|
||||||
|
|
||||||
// default data dir properties
|
// default data dir properties
|
||||||
@ -239,6 +237,7 @@ public class Config {
|
|||||||
.withValuesSeparatedBy(',')
|
.withValuesSeparatedBy(',')
|
||||||
.describedAs("host:port[,...]");
|
.describedAs("host:port[,...]");
|
||||||
|
|
||||||
|
//noinspection rawtypes
|
||||||
ArgumentAcceptingOptionSpec<Enum> baseCurrencyNetworkOpt =
|
ArgumentAcceptingOptionSpec<Enum> baseCurrencyNetworkOpt =
|
||||||
parser.accepts(BASE_CURRENCY_NETWORK, "Base currency network")
|
parser.accepts(BASE_CURRENCY_NETWORK, "Base currency network")
|
||||||
.withRequiredArg()
|
.withRequiredArg()
|
||||||
@ -638,8 +637,7 @@ public class Config {
|
|||||||
this.torDir = mkdir(btcNetworkDir, "tor");
|
this.torDir = mkdir(btcNetworkDir, "tor");
|
||||||
this.walletDir = mkdir(btcNetworkDir, "wallet");
|
this.walletDir = mkdir(btcNetworkDir, "wallet");
|
||||||
|
|
||||||
// assign values to legacy mutable static fields
|
APP_DATA_DIR_VALUE = appDataDir;
|
||||||
CURRENT_APP_DATA_DIR = appDataDir;
|
|
||||||
BASE_CURRENCY_NETWORK_VALUE = baseCurrencyNetwork;
|
BASE_CURRENCY_NETWORK_VALUE = baseCurrencyNetwork;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -739,6 +737,23 @@ public class Config {
|
|||||||
|
|
||||||
// == STATIC ACCESSORS ======================================================================
|
// == STATIC ACCESSORS ======================================================================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Static accessor that returns the same value as the non-static
|
||||||
|
* {@link #getAppDataDir()} method. For use only in the {@code Overlay} class, where
|
||||||
|
* because of its large number of subclasses, injecting the Guice-managed
|
||||||
|
* {@link Config} class is not worth the effort. {@link #getAppDataDir()} should be
|
||||||
|
* favored in all other cases.
|
||||||
|
* @throws NullPointerException if the static value has not yet been assigned, i.e. if
|
||||||
|
* the Guice-managed {@link Config} class has not yet been instantiated elsewhere.
|
||||||
|
* This should never be the case, as Guice wiring always happens before any
|
||||||
|
* {@code Overlay} class is instantiated.
|
||||||
|
*/
|
||||||
|
public static File appDataDir() {
|
||||||
|
return checkNotNull(APP_DATA_DIR_VALUE, "The static appDataDir has not yet " +
|
||||||
|
"been assigned. A Config instance must be instantiated (usually by " +
|
||||||
|
"Guice) before calling this method.");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Static accessor that returns either the default base currency network value of
|
* Static accessor that returns either the default base currency network value of
|
||||||
* {@link BaseCurrencyNetwork#BTC_MAINNET} or the value assigned via the
|
* {@link BaseCurrencyNetwork#BTC_MAINNET} or the value assigned via the
|
||||||
@ -764,6 +779,7 @@ public class Config {
|
|||||||
return BASE_CURRENCY_NETWORK_VALUE.getParameters();
|
return BASE_CURRENCY_NETWORK_VALUE.getParameters();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// == ACCESSORS ======================================================================
|
// == ACCESSORS ======================================================================
|
||||||
|
|
||||||
public String getDefaultAppName() {
|
public String getDefaultAppName() {
|
||||||
|
@ -843,7 +843,7 @@ public abstract class Overlay<T extends Overlay<T>> {
|
|||||||
gridPane.getChildren().add(logButton);
|
gridPane.getChildren().add(logButton);
|
||||||
logButton.setOnAction(event -> {
|
logButton.setOnAction(event -> {
|
||||||
try {
|
try {
|
||||||
File dataDir = Config.CURRENT_APP_DATA_DIR;
|
File dataDir = Config.appDataDir();
|
||||||
File logFile = new File(dataDir, "bisq.log");
|
File logFile = new File(dataDir, "bisq.log");
|
||||||
Utilities.openFile(logFile);
|
Utilities.openFile(logFile);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
Loading…
Reference in New Issue
Block a user