Small refactoring in java.util.logging.

Change-Id: I51929a976e2e6ed14d163565d728248e7ce4d9f9
diff --git a/user/super/com/google/gwt/emul/java/util/logging/Level.java b/user/super/com/google/gwt/emul/java/util/logging/Level.java
index d6a416c..72c5305 100644
--- a/user/super/com/google/gwt/emul/java/util/logging/Level.java
+++ b/user/super/com/google/gwt/emul/java/util/logging/Level.java
@@ -88,27 +88,38 @@
       return null;
     }
 
-    name = name.toUpperCase(Locale.ROOT);
-    if (name.equals("ALL")) {
-      return ALL;
-    } else if (name.equals("CONFIG")) {
-      return CONFIG;
-    } else if (name.equals("FINE")) {
-      return FINE;
-    } else if (name.equals("FINER")) {
-      return FINER;
-    } else if (name.equals("FINEST")) {
-      return FINEST;
-    } else if (name.equals("INFO")) {
-      return INFO;
-    } else if (name.equals("OFF")) {
-      return OFF;
-    } else if (name.equals("SEVERE")) {
-      return SEVERE;
-    } else if (name.equals("WARNING")) {
-      return WARNING;
+    String value = name.toUpperCase(Locale.ROOT);
+    switch (value) {
+      case "ALL":
+        return Level.ALL;
+
+      case "CONFIG":
+        return Level.CONFIG;
+
+      case "FINE":
+        return Level.FINE;
+
+      case "FINER":
+        return Level.FINER;
+
+      case "FINEST":
+        return Level.FINEST;
+
+      case "INFO":
+        return Level.INFO;
+
+      case "OFF":
+        return Level.OFF;
+
+      case "SEVERE":
+        return Level.SEVERE;
+
+      case "WARNING":
+        return Level.WARNING;
+
+      default:
+        throw new IllegalArgumentException("Invalid level \"" + name + "\"");
     }
-    throw new IllegalArgumentException("Invalid level \"" + name + "\"");
   }
 
   protected Level() { }
diff --git a/user/super/com/google/gwt/emul/java/util/logging/LogManager.java b/user/super/com/google/gwt/emul/java/util/logging/LogManager.java
index e5c3b68..b5374c2 100644
--- a/user/super/com/google/gwt/emul/java/util/logging/LogManager.java
+++ b/user/super/com/google/gwt/emul/java/util/logging/LogManager.java
@@ -70,7 +70,7 @@
   private void addLoggerAndEnsureParents(Logger logger) {
     String name = logger.getName();
     String parentName = name.substring(0, Math.max(0, name.lastIndexOf('.')));
-    logger.setParent(ensureLogger(parentName));
+    logger.setParent(ensureLogger(parentName, logger.getResourceBundleName()));
     addLoggerImpl(logger);
   }
 
@@ -88,10 +88,10 @@
    *  APIs for getLogger and addLogger make it difficult to use those functions
    *  for this.
    */
-  Logger ensureLogger(String name) {
+  Logger ensureLogger(String name, String resourceName) {
     Logger logger = getLogger(name);
     if (logger == null) {
-      Logger newLogger = new Logger(name, null);
+      Logger newLogger = new Logger(name, resourceName);
       addLoggerAndEnsureParents(newLogger);
       return newLogger;
     }
diff --git a/user/super/com/google/gwt/emul/java/util/logging/Logger.java b/user/super/com/google/gwt/emul/java/util/logging/Logger.java
index 8be53bb..dba7351 100644
--- a/user/super/com/google/gwt/emul/java/util/logging/Logger.java
+++ b/user/super/com/google/gwt/emul/java/util/logging/Logger.java
@@ -46,11 +46,15 @@
   }
 
   public static Logger getLogger(String name) {
+    return getLogger(name, null);
+  }
+
+  public static Logger getLogger(String name, String resourceName) {
     // Use shortcut if logging is disabled to avoid parent logger creations in LogManager
     if (LOGGING_FALSE) {
-      return new Logger(name, "");
+      return new Logger(name, resourceName);
     }
-    return LogManager.getLogManager().ensureLogger(name);
+    return LogManager.getLogManager().ensureLogger(name, resourceName);
   }
 
   static void assertLoggingValues() {
@@ -155,8 +159,12 @@
     return LOGGING_FALSE ? null : parent;
   }
 
+  public String getResourceBundleName() {
+    return null;
+  }
+
   public boolean getUseParentHandlers() {
-    return LOGGING_FALSE ? null : useParentHandlers;
+    return LOGGING_FALSE ? false : useParentHandlers;
   }
 
   public boolean isLoggable(Level messageLevel) {
@@ -276,9 +284,7 @@
   // public static Logger getAnonymousLogger() {
   // public static Logger getAnonymousLogger(String resourceBundleName) {}
   // public Filter getFilter() {}
-  // public static Logger getLogger(String name, String resourceBundleName) {}
   // public ResourceBundle getResourceBundle() {}
-  // public String getResourceBundleName() {}
   // public void setFilter(Filter newFilter) {}
   // public void entering(String sourceClass, String sourceMethod) {}
   // public void entering(String sourceClass, String sourceMethod, Object param1) {}