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>
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java
index 2c01d60..1032fd0 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java
@@ -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.
@@ -129,6 +129,17 @@ public Config(Config defaultConfig) {
 	}
 
 	/**
+	 * 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 @@ private List<ConfigLine> fromTextRecurse(String text, int depth,
 	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));
 		}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/DefaultTypedConfigGetter.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/DefaultTypedConfigGetter.java
index 6a66cf6..4c70d20 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/DefaultTypedConfigGetter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/DefaultTypedConfigGetter.java
@@ -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 {