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:
David Pursehouse 2019-06-08 15:01:44 +09:00
parent 8bd0ba0f15
commit fd8d779b5e
2 changed files with 16 additions and 5 deletions

View File

@ -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));
}

View File

@ -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 {