Config: Add helper method to check for empty value
Rename MAGIC_EMPTY_VALUE to MISSING_ENTRY, make it private, and add a helper method to check if a given string is that value. This avoids that callers trigger the "reference equality" warning from Error Prone. Change-Id: Idc76f78c0cf1828aa48d02ee33911a4b5df50355 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
This commit is contained in:
parent
8bd0ba0f15
commit
fd8d779b5e
|
@ -107,7 +107,7 @@ public class Config {
|
|||
* must ensure it is a special copy of the empty string. It also must
|
||||
* be treated like the empty string.
|
||||
*/
|
||||
static final String MAGIC_EMPTY_VALUE = new String();
|
||||
private static final String MISSING_ENTRY = new String();
|
||||
|
||||
/**
|
||||
* Create a configuration with no default fallback.
|
||||
|
@ -128,6 +128,17 @@ public Config(Config defaultConfig) {
|
|||
state = new AtomicReference<>(newState());
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a given string is the "missing" value.
|
||||
*
|
||||
* @param value
|
||||
* @return true if the given string is the "missing" value.
|
||||
* @since 5.4
|
||||
*/
|
||||
public static boolean isMissing(String value) {
|
||||
return value == MISSING_ENTRY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Globally sets a {@link org.eclipse.jgit.lib.TypedConfigGetter} that is
|
||||
* subsequently used to read typed values from all git configs.
|
||||
|
@ -1041,7 +1052,7 @@ public String toText() {
|
|||
if (e.prefix == null || "".equals(e.prefix)) //$NON-NLS-1$
|
||||
out.append('\t');
|
||||
out.append(e.name);
|
||||
if (MAGIC_EMPTY_VALUE != e.value) {
|
||||
if (MISSING_ENTRY != e.value) {
|
||||
out.append(" ="); //$NON-NLS-1$
|
||||
if (e.value != null) {
|
||||
out.append(' ');
|
||||
|
@ -1132,7 +1143,7 @@ private List<ConfigLine> fromTextRecurse(String text, int depth,
|
|||
e.name = readKeyName(in);
|
||||
if (e.name.endsWith("\n")) { //$NON-NLS-1$
|
||||
e.name = e.name.substring(0, e.name.length() - 1);
|
||||
e.value = MAGIC_EMPTY_VALUE;
|
||||
e.value = MISSING_ENTRY;
|
||||
} else
|
||||
e.value = readValue(in);
|
||||
|
||||
|
@ -1165,7 +1176,7 @@ protected byte[] readIncludedConfig(String relPath)
|
|||
private void addIncludedConfig(final List<ConfigLine> newEntries,
|
||||
ConfigLine line, int depth) throws ConfigInvalidException {
|
||||
if (!line.name.equalsIgnoreCase("path") || //$NON-NLS-1$
|
||||
line.value == null || line.value.equals(MAGIC_EMPTY_VALUE)) {
|
||||
line.value == null || line.value.equals(MISSING_ENTRY)) {
|
||||
throw new ConfigInvalidException(MessageFormat.format(
|
||||
JGitText.get().invalidLineInConfigFileWithParam, line));
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ public boolean getBoolean(Config config, String section, String subsection,
|
|||
if (n == null) {
|
||||
return defaultValue;
|
||||
}
|
||||
if (Config.MAGIC_EMPTY_VALUE == n) {
|
||||
if (Config.isMissing(n)) {
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
|
|
Loading…
Reference in New Issue