Change visibility of qualifiesForSerialization followed by a sort and format in preparation for nested visibility fix.

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2871 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java b/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java
index 7198abd..6478697 100644
--- a/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java
+++ b/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java
@@ -521,6 +521,8 @@
    */
   private final JClassType isSerializableClass;
 
+  private OutputStream logOutputStream;
+
   /**
    * Cache of the {@link JClassType} for {@link Map}.
    */
@@ -547,8 +549,6 @@
    */
   private final Map<JType, TypeInfoComputed> typeToTypeInfoComputed = new HashMap<JType, TypeInfoComputed>();
 
-  private OutputStream logOutputStream;
-
   /**
    * Constructs a builder.
    * 
@@ -954,6 +954,105 @@
   }
 
   /**
+   * Returns <code>true</code> if the type qualifies for serialization.
+   */
+  boolean qualifiesForSerialization(TreeLogger logger, JClassType type,
+      boolean isSpeculative, Path parent) {
+    TypeInfoComputed typeInfo = getTypeInfoComputed(type, parent);
+
+    if (!isAllowedByFilter(logger, type, isSpeculative)) {
+      return false;
+    }
+
+    if (!typeInfo.isDeclaredSerializable()) {
+      logger.branch(TreeLogger.DEBUG, "Type '"
+          + type.getParameterizedQualifiedSourceName()
+          + "' is not assignable to '" + IsSerializable.class.getName()
+          + "' or '" + Serializable.class.getName()
+          + "' nor does it have a custom field serializer", null);
+      return false;
+    }
+
+    if (typeInfo.isManuallySerializable()) {
+      List<String> problems = CustomFieldSerializerValidator.validate(
+          typeInfo.getManualSerializer(), type);
+      if (!problems.isEmpty()) {
+        for (String problem : problems) {
+          logger.branch(getLogLevel(isSpeculative), problem, null);
+        }
+        return false;
+      }
+    } else {
+      assert (typeInfo.isAutoSerializable());
+
+      if (type.isEnum() != null) {
+        if (type.isLocalType()) {
+          /*
+           * Quietly ignore local enum types.
+           */
+          return false;
+        } else {
+          /*
+           * Enumerated types are serializable by default, but they do not have
+           * their state automatically or manually serialized. So, consider it
+           * serializable but do not check its fields.
+           */
+          return !type.isPrivate();
+        }
+      }
+
+      if (type.isPrivate()) {
+        /*
+         * Quietly ignore private types since these cannot be instantiated from
+         * the generated field serializers.
+         */
+        return false;
+      }
+
+      /*
+       * Speculative paths log at DEBUG level, non-speculative ones log at WARN
+       * level.
+       */
+      TreeLogger.Type logLevel = isSpeculative ? TreeLogger.DEBUG
+          : TreeLogger.WARN;
+
+      if (type.isLocalType()) {
+        logger.branch(
+            logLevel,
+            type.getParameterizedQualifiedSourceName()
+                + " is a local type; it will be excluded from the set of serializable types",
+            null);
+        return false;
+      }
+
+      if (type.isMemberType() && !type.isStatic()) {
+        logger.branch(
+            logLevel,
+            type.getParameterizedQualifiedSourceName()
+                + " is nested but not static; it will be excluded from the set of serializable types",
+            null);
+        return false;
+      }
+
+      if (type.isAbstract()) {
+        // Abstract types will be picked up if there is an instantiable subtype.
+        return false;
+      }
+
+      if (!type.isDefaultInstantiable()) {
+        // Warn and return false.
+        logger.log(
+            logLevel,
+            "Was not default instantiable (it must have a zero-argument constructor or no constructors at all)",
+            null);
+        return false;
+      }
+    }
+
+    return true;
+  }
+
+  /**
    * Consider any subtype of java.lang.Object which qualifies for serialization.
    * 
    * @param logger
@@ -1243,105 +1342,6 @@
   }
 
   /**
-   * Returns <code>true</code> if the type qualifies for serialization.
-   */
-  private boolean qualifiesForSerialization(TreeLogger logger, JClassType type,
-      boolean isSpeculative, Path parent) {
-    TypeInfoComputed typeInfo = getTypeInfoComputed(type, parent);
-
-    if (!isAllowedByFilter(logger, type, isSpeculative)) {
-      return false;
-    }
-
-    if (!typeInfo.isDeclaredSerializable()) {
-      logger.branch(TreeLogger.DEBUG, "Type '"
-          + type.getParameterizedQualifiedSourceName()
-          + "' is not assignable to '" + IsSerializable.class.getName()
-          + "' or '" + Serializable.class.getName()
-          + "' nor does it have a custom field serializer", null);
-      return false;
-    }
-
-    if (typeInfo.isManuallySerializable()) {
-      List<String> problems = CustomFieldSerializerValidator.validate(
-          typeInfo.getManualSerializer(), type);
-      if (!problems.isEmpty()) {
-        for (String problem : problems) {
-          logger.branch(getLogLevel(isSpeculative), problem, null);
-        }
-        return false;
-      }
-    } else {
-      assert (typeInfo.isAutoSerializable());
-
-      if (type.isEnum() != null) {
-        if (type.isLocalType()) {
-          /*
-           * Quietly ignore local enum types.
-           */
-          return false;
-        } else {
-          /*
-           * Enumerated types are serializable by default, but they do not have
-           * their state automatically or manually serialized. So, consider it
-           * serializable but do not check its fields.
-           */
-          return !type.isPrivate();
-        }
-      }
-
-      if (type.isPrivate()) {
-        /*
-         * Quietly ignore private types since these cannot be instantiated from
-         * the generated field serializers.
-         */
-        return false;
-      }
-
-      /*
-       * Speculative paths log at DEBUG level, non-speculative ones log at WARN
-       * level.
-       */
-      TreeLogger.Type logLevel = isSpeculative ? TreeLogger.DEBUG
-          : TreeLogger.WARN;
-
-      if (type.isLocalType()) {
-        logger.branch(
-            logLevel,
-            type.getParameterizedQualifiedSourceName()
-                + " is a local type; it will be excluded from the set of serializable types",
-            null);
-        return false;
-      }
-
-      if (type.isMemberType() && !type.isStatic()) {
-        logger.branch(
-            logLevel,
-            type.getParameterizedQualifiedSourceName()
-                + " is nested but not static; it will be excluded from the set of serializable types",
-            null);
-        return false;
-      }
-
-      if (type.isAbstract()) {
-        // Abstract types will be picked up if there is an instantiable subtype.
-        return false;
-      }
-
-      if (!type.isDefaultInstantiable()) {
-        // Warn and return false.
-        logger.log(
-            logLevel,
-            "Was not default instantiable (it must have a zero-argument constructor or no constructors at all)",
-            null);
-        return false;
-      }
-    }
-
-    return true;
-  }
-
-  /**
    * 
    * Returns a map from each parameter in the subtype to the set of parameters,
    * if any, in the supertype which constrain that parameter.