Revision: 5858
Author: [email protected]
Date: Fri Jul 31 13:28:49 2009
Log: Copy changes from Name review to ease future merge, fix WANT_BINARIES
inverted from desired test.

http://code.google.com/p/google-web-toolkit/source/detail?r=5858

Modified:
   
/changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/CompilationState.java
   
/changes/jat/ihm/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java
  /changes/jat/ihm/dev/core/src/com/google/gwt/dev/util/Name.java
  /changes/jat/ihm/dev/core/test/com/google/gwt/dev/util/NameTest.java

=======================================
---  
/changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/CompilationState.java    
 
Fri Jul 31 10:13:46 2009
+++  
/changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/CompilationState.java    
 
Fri Jul 31 13:28:49 2009
@@ -44,7 +44,7 @@
     * True if we want to use binaries (.class/etc files).
     */
    private static final boolean WANT_BINARIES = System.getProperty(
-      "gwt.typeOracle.noUseClasses") != null;
+      "gwt.typeOracle.noUseClasses") == null;

    private static Set<CompilationUnit>  
concatSet(Collection<CompilationUnit> a,
        Collection<CompilationUnit> b) {
=======================================
---  
/changes/jat/ihm/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java
         
Wed Jul 29 15:12:22 2009
+++  
/changes/jat/ihm/dev/core/src/com/google/gwt/dev/shell/CompilingClassLoader.java
         
Fri Jul 31 13:28:49 2009
@@ -36,7 +36,7 @@
  import com.google.gwt.dev.shell.rewrite.HostedModeClassRewriter;
  import  
com.google.gwt.dev.shell.rewrite.HostedModeClassRewriter.InstanceMethodOracle;
  import com.google.gwt.dev.util.JsniRef;
-import com.google.gwt.dev.util.Name.DottedName;
+import com.google.gwt.dev.util.Name.SourceOrBinaryName;
  import com.google.gwt.dev.util.Name.InternalName;
  import com.google.gwt.dev.util.Util;
  import com.google.gwt.util.tools.Utility;
@@ -254,7 +254,7 @@
       */
      private Class<?> getClassFromBinaryOrSourceName(String className) {
        // Try the type oracle first
-      JClassType type =  
typeOracle.findType(DottedName.toSourceName(className));
+      JClassType type =  
typeOracle.findType(SourceOrBinaryName.toSourceName(className));
        if (type != null) {
          // Use the type oracle to compute the exact binary name
          String jniSig = type.getJNISignature();
=======================================
--- /changes/jat/ihm/dev/core/src/com/google/gwt/dev/util/Name.java     Fri Jul 
 
31 10:13:46 2009
+++ /changes/jat/ihm/dev/core/src/com/google/gwt/dev/util/Name.java     Fri Jul 
 
31 13:28:49 2009
@@ -37,10 +37,18 @@
        return binaryName.substring(lastDot + 1);
      }

-    public static String getInnerClassName(String binaryName,
-        String innerClassName) {
-      assert isBinaryName(binaryName);
-      return binaryName + '$' + innerClassName;
+    /**
+     * Construct the fully qualified name of an inner class.
+     *
+     * @param outerClassBinaryName binary name of outer class, ie
+     *     {...@code org.test.Foo}
+     * @param innerClassShortName short name of inner class, ie {...@code Bar}
+     * @return fully qualified binary name of the inner class
+     */
+    public static String getInnerClassName(String outerClassBinaryName,
+        String innerClassShortName) {
+      assert isBinaryName(outerClassBinaryName);
+      return outerClassBinaryName + '$' + innerClassShortName;
      }

      public static String getOuterClassName(String binaryName) {
@@ -81,114 +89,137 @@
        // don't change a trailing $ to a .
        return binaryName.replaceAll("[$](\\w)", ".$1");
      }
-  }
-
-  /**
-   * Represents a Java class name in either source or binary form, for  
example:
-   * {...@code org.example.Foo.Bar or org.example.Foo$Bar}.
-   *
-   * See  
{...@link 
"http://java.sun.com/docs/books/jls/third_edition/html/binaryComp.html#59892"}
-   */
-  public static class DottedName {
-
-    public static String toSourceName(String dottedName) {
-      // don't change a trailing $ to a .
-      return dottedName.replaceAll("[$](\\w)", ".$1");
+
+    private BinaryName() {
      }
    }

- /**
-   * Represents a Java class name in internal form, for example:
-   * {...@code org/example/Foo$Bar}.
-   *
-   * See  
{...@link 
"http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#14757"}
-   */
-  public static class InternalName {
-
-    public static String getClassName(String name) {
-      assert isInternalName(name);
-      int lastSlash = name.lastIndexOf('/');
-      if (lastSlash < 0) {
-        return name;
-      }
-      return name.substring(lastSlash + 1);
-    }
-
-    public static String getInnerClassName(String internalName, String  
innerClassName) {
-      assert isInternalName(internalName);
-      return internalName + '$' + innerClassName;
-    }
-
-    /**
-     * Return the outer class name of an inner class, or null if this is  
not
-     * an inner class.
+  /**
+     * Represents a Java class name in internal form, for example:
+     * {...@code org/example/Foo$Bar}.
       *
-     * @param name internal name which might be an inner class
-     * @return an internal name of the enclosing class or null if none
+     * See  
{...@link 
"http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#14757"}
       */
-    public static String getOuterClassName(String name) {
-      int lastDollar = name.lastIndexOf('$');
-      if (lastDollar < 0) {
-        return null;
-      }
-      return name.substring(0, lastDollar);
-    }
-
-    public static String getPackageName(String name) {
-      assert isInternalName(name);
-      int lastSlash = name.lastIndexOf('/');
-      if (lastSlash < 0) {
-        return "";
-      }
-      return name.substring(0, lastSlash);
-    }
-
-    public static String getShortClassName(String internalName) {
-      assert isInternalName(internalName);
-      String className = getClassName(internalName);
-      int lastDollar = className.lastIndexOf('$', className.length() - 2);
-      if (lastDollar < 0) {
-        return className;
-      }
-      return className.substring(lastDollar + 1);
+    public static class InternalName {
+
+      public static String getClassName(String name) {
+        assert isInternalName(name);
+        int lastSlash = name.lastIndexOf('/');
+        if (lastSlash < 0) {
+          return name;
+        }
+        return name.substring(lastSlash + 1);
+      }
+
+      /**
+       * Construct the fully qualified name of an inner class.
+       *
+       * @param outerClassInternalName internal name of outer class,
+       *     ie {...@code org.test.Foo}
+       * @param innerClassShortName short name of inner class, ie {...@code  
Bar}
+       * @return fully qualified internal name of the inner class
+       */
+      public static String getInnerClassName(String outerClassInternalName,
+          String innerClassShortName) {
+        assert isInternalName(outerClassInternalName);
+        return outerClassInternalName + '$' + innerClassShortName;
+      }
+
+      /**
+       * Return the outer class name of an inner class, or null if this is  
not
+       * an inner class.
+       *
+       * @param name internal name which might be an inner class
+       * @return an internal name of the enclosing class or null if none
+       */
+      public static String getOuterClassName(String name) {
+        int lastDollar = name.lastIndexOf('$');
+        if (lastDollar < 0) {
+          return null;
+        }
+        return name.substring(0, lastDollar);
+      }
+
+      public static String getPackageName(String name) {
+        assert isInternalName(name);
+        int lastSlash = name.lastIndexOf('/');
+        if (lastSlash < 0) {
+          return "";
+        }
+        return name.substring(0, lastSlash);
+      }
+
+      public static String getShortClassName(String internalName) {
+        assert isInternalName(internalName);
+        String className = getClassName(internalName);
+        int lastDollar = className.lastIndexOf('$', className.length() -  
2);
+        if (lastDollar < 0) {
+          return className;
+        }
+        return className.substring(lastDollar + 1);
+      }
+
+      public static String toBinaryName(String internalName) {
+        assert isInternalName(internalName);
+        return internalName.replace('/', '.');
+      }
+
+      public static String toSourceName(String internalName) {
+        assert isInternalName(internalName);
+        // don't change a trailing $ or slash to a .
+        return internalName.replaceAll("[$/](\\w)", ".$1");
+      }
+
+      private InternalName() {
+      }
      }

-    public static String toBinaryName(String internalName) {
-      assert isInternalName(internalName);
-      return internalName.replace('/', '.');
-    }
-
-    public static String toSourceName(String internalName) {
-      assert isInternalName(internalName);
-      // don't change a trailing $ or slash to a .
-      return internalName.replaceAll("[$/](\\w)", ".$1");
-    }
-
-    private InternalName() {
-    }
-  }
+ /**
+ * Represents a Java class name in source form, for example:
+ * {...@code org.example.Foo.Bar}.
+ *
+ * See  
{...@link 
"http://java.sun.com/docs/books/jvms/second_edition/html/Concepts.doc.html#20207"}
+ */
+public static class SourceName {
+
+  /**
+   * Construct the fully qualified name of an inner class.
+   *
+   * @param outerClassSourceName source name of outer class, ie
+   *     {...@code org.test.Foo}
+   * @param innerClassShortName short name of inner class, ie {...@code Bar}
+   * @return fully qualified source name of the inner class
+   */
+  public static String getInnerClassName(String outerClassSourceName,
+      String innerClassShortName) {
+    assert isSourceName(outerClassSourceName);
+    return outerClassSourceName + '.' + innerClassShortName;
+  }
+
+  public static String getShortClassName(String sourceName) {
+    assert isSourceName(sourceName);
+    int lastDollar = sourceName.lastIndexOf('.');
+    if (lastDollar < 0) {
+      return sourceName;
+    }
+    return sourceName.substring(lastDollar + 1);
+  }
+
+  private SourceName() {
+  }
+}

    /**
-   * Represents a Java class name in source form, for example:
-   * {...@code org.example.Foo.Bar}.
+   * Represents a Java class name in either source or binary form, for  
example:
+   * {...@code org.example.Foo.Bar or org.example.Foo$Bar}.
     *
-   * See  
{...@link 
"http://java.sun.com/docs/books/jvms/second_edition/html/Concepts.doc.html#20207"}
+   * See  
{...@link 
"http://java.sun.com/docs/books/jls/third_edition/html/binaryComp.html#59892"}
     */
-  public static class SourceName {
-
-    public static String getInnerClassName(String sourceName,
-        String innerClassName) {
-      assert isSourceName(sourceName);
-      return sourceName + '.' + innerClassName;
-    }
-
-    public static String getShortClassName(String sourceName) {
-      assert isSourceName(sourceName);
-      int lastDollar = sourceName.lastIndexOf('.');
-      if (lastDollar < 0) {
-        return sourceName;
-      }
-      return sourceName.substring(lastDollar + 1);
+  public static class SourceOrBinaryName {
+
+    public static String toSourceName(String dottedName) {
+      // don't change a trailing $ to a .
+      return dottedName.replaceAll("[$](\\w)", ".$1");
      }
    }

@@ -232,7 +263,6 @@
     * @param name class name to test
     */
    public static boolean isBinaryName(String name) {
-    assert isBinaryName(name);
      return name == null || !name.contains("/");
    }

@@ -261,4 +291,18 @@
      int dollar = name.indexOf('$');
      return !name.contains("/") && (dollar < 0 || dollar == name.length() -  
1);
    }
-}
+
+  /**
+   * @return true if name could be a valid source or binary name.
+   *
+   * Note that many invalid names might pass this test.
+   *
+   * @param name class name to test
+   */
+  public static boolean isSourceOrBinaryName(String name) {
+    return name == null || !name.contains("/");
+  }
+
+  private Name() {
+  }
+}
=======================================
--- /changes/jat/ihm/dev/core/test/com/google/gwt/dev/util/NameTest.java        
 
Fri Jul 31 10:13:46 2009
+++ /changes/jat/ihm/dev/core/test/com/google/gwt/dev/util/NameTest.java        
 
Fri Jul 31 13:28:49 2009
@@ -16,7 +16,7 @@
  package com.google.gwt.dev.util;

  import com.google.gwt.dev.util.Name.BinaryName;
-import com.google.gwt.dev.util.Name.DottedName;
+import com.google.gwt.dev.util.Name.SourceOrBinaryName;
  import com.google.gwt.dev.util.Name.InternalName;
  import com.google.gwt.dev.util.Name.SourceName;

@@ -60,15 +60,15 @@
      assertEquals("Bar", BinaryName.getShortClassName("org.test.Foo$Bar"));
    }

-  public void testDottedName() {
+  public void testSourceOrBinaryName() {
      assertEquals("org.test.Foo.Bar",
-        DottedName.toSourceName("org.test.Foo.Bar"));
+        SourceOrBinaryName.toSourceName("org.test.Foo.Bar"));
      assertEquals("org.test.Foo.Bar",
-        DottedName.toSourceName("org.test.Foo$Bar"));
+        SourceOrBinaryName.toSourceName("org.test.Foo$Bar"));
      assertEquals("org.test.Foo.Bar$",
-        DottedName.toSourceName("org.test.Foo.Bar$"));
+        SourceOrBinaryName.toSourceName("org.test.Foo.Bar$"));
      assertEquals("org.test.Foo.Bar$",
-        DottedName.toSourceName("org.test.Foo$Bar$"));
+        SourceOrBinaryName.toSourceName("org.test.Foo$Bar$"));
    }

    public void testGetBinaryNameForClass() {
@@ -94,11 +94,11 @@
          InternalName.toSourceName("org/test/Foo$Bar$Baz"));
      assertEquals("org.test.Foo.Bar.Baz$",
          InternalName.toSourceName("org/test/Foo$Bar$Baz$"));
-    assertEquals("org.test.Foo",  
InternalName.toBinaryName("org.test.Foo"));
+    assertEquals("org.test.Foo",  
InternalName.toBinaryName("org/test/Foo"));
      assertEquals("org.test.Foo$Bar",
-        InternalName.toBinaryName("org.test.Foo$Bar"));
+        InternalName.toBinaryName("org/test/Foo$Bar"));
      assertEquals("org.test.Foo$Bar$Baz",
-        InternalName.toBinaryName("org.test.Foo$Bar$Baz"));
+        InternalName.toBinaryName("org/test/Foo$Bar$Baz"));
      assertEquals("org.test.Foo$Bar$Baz$",
          InternalName.toBinaryName("org/test/Foo$Bar$Baz$"));
      assertEquals("org.test.Foo$Bar$Baz$1",
@@ -163,6 +163,22 @@
      assertTrue(Name.isSourceName("org.test.Foo.Bar.Baz"));
      assertTrue(Name.isSourceName("org.test.Foo.Bar.Baz$"));
    }
+
+  public void testIsSourceOrBinaryName() {
+    assertTrue(Name.isSourceOrBinaryName("org.test.Foo"));
+    assertTrue(Name.isSourceOrBinaryName("org.test.Foo$Bar"));
+    assertTrue(Name.isSourceOrBinaryName("org.test.Foo$Bar$Baz"));
+    assertTrue(Name.isSourceOrBinaryName("org.test.Foo$Bar$Baz$"));
+    assertTrue(Name.isSourceOrBinaryName("org.test.Foo$Bar$Baz$1"));
+    assertFalse(Name.isSourceOrBinaryName("org/test/Foo"));
+    assertFalse(Name.isSourceOrBinaryName("org/test/Foo$Bar"));
+    assertFalse(Name.isSourceOrBinaryName("org/test/Foo$Bar$Baz"));
+    assertFalse(Name.isSourceOrBinaryName("org/test/Foo$Bar$Baz$"));
+    assertFalse(Name.isSourceOrBinaryName("org/test/Foo$Bar$Baz$1"));
+    assertTrue(Name.isSourceOrBinaryName("org.test.Foo.Bar"));
+    assertTrue(Name.isSourceOrBinaryName("org.test.Foo.Bar.Baz"));
+    assertTrue(Name.isSourceOrBinaryName("org.test.Foo.Bar.Baz$"));
+  }

    public void testSourceName() {
      assertEquals("org.test.Foo.Bar",


--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to