]> source.dussan.org Git - jgit.git/commitdiff
Config: Add helper method to check for empty value 75/143575/4
authorDavid Pursehouse <david.pursehouse@gmail.com>
Sat, 8 Jun 2019 06:01:44 +0000 (15:01 +0900)
committerDavid Pursehouse <david.pursehouse@gmail.com>
Tue, 11 Jun 2019 01:51:40 +0000 (10:51 +0900)
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>
org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/DefaultTypedConfigGetter.java

index 2c01d603816905374cc3afb8958bd3e104266943..1032fd0df16a6a852e8f991f0890f12084b3d712 100644 (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 class Config {
                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 class Config {
                                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 @@ public class Config {
                                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 @@ public class Config {
        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));
                }
index 6a66cf682f22e70bd73ca92043a4b8cb0ad7e104..4c70d20d6c1243f6b3595ba50a62dac90c941c81 100644 (file)
@@ -72,7 +72,7 @@ public class DefaultTypedConfigGetter implements TypedConfigGetter {
                if (n == null) {
                        return defaultValue;
                }
-               if (Config.MAGIC_EMPTY_VALUE == n) {
+               if (Config.isMissing(n)) {
                        return true;
                }
                try {