/*
* Copyright (c) 2002-2019, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
*
* https://opensource.org/licenses/BSD-3-Clause
*/
package jdk.internal.org.jline.reader;
import java.io.IOException;
import java.nio.file.Path;
public class ConfigurationPath {
private Path appConfig;
private Path userConfig;
Configuration class constructor.
Params: - appConfig – Application configuration directory
- userConfig – User private configuration directory
/**
* Configuration class constructor.
* @param appConfig Application configuration directory
* @param userConfig User private configuration directory
*/
public ConfigurationPath(Path appConfig, Path userConfig) {
this.appConfig = appConfig;
this.userConfig = userConfig;
}
Search configuration file first from userConfig and then appConfig directory. Returns null if file is not found.
Params: - name – Configuration file name.
Returns: Configuration file.
/**
* Search configuration file first from userConfig and then appConfig directory. Returns null if file is not found.
* @param name Configuration file name.
* @return Configuration file.
*
*/
public Path getConfig(String name) {
Path out = null;
if (userConfig != null && userConfig.resolve(name).toFile().exists()) {
out = userConfig.resolve(name);
} else if (appConfig != null && appConfig.resolve(name).toFile().exists()) {
out = appConfig.resolve(name);
}
return out;
}
Search configuration file from userConfig directory. Returns null if file is not found.
Params: - name – Configuration file name.
Throws: - IOException – When we do not have read access to the file or directory.
Returns: Configuration file.
/**
* Search configuration file from userConfig directory. Returns null if file is not found.
* @param name Configuration file name.
* @return Configuration file.
* @throws IOException When we do not have read access to the file or directory.
*
*/
public Path getUserConfig(String name) throws IOException {
return getUserConfig(name, false);
}
Search configuration file from userConfig directory. Returns null if file is not found.
Params: - name – Configuration file name
- create – When true configuration file is created if not found.
Throws: - IOException – When we do not have read/write access to the file or directory.
Returns: Configuration file.
/**
* Search configuration file from userConfig directory. Returns null if file is not found.
* @param name Configuration file name
* @param create When true configuration file is created if not found.
* @return Configuration file.
* @throws IOException When we do not have read/write access to the file or directory.
*/
public Path getUserConfig(String name, boolean create) throws IOException {
Path out = null;
if (userConfig != null) {
if (!userConfig.resolve(name).toFile().exists() && create) {
userConfig.resolve(name).toFile().createNewFile();
}
if (userConfig.resolve(name).toFile().exists()) {
out = userConfig.resolve(name);
}
}
return out;
}
}