]> source.dussan.org Git - gwtquery.git/commitdiff
Generated Selector class names should consider outer-class name also. Fix issue42
authorManolo Carrasco <manolo@apache.org>
Fri, 23 Jul 2010 05:56:30 +0000 (05:56 +0000)
committerManolo Carrasco <manolo@apache.org>
Fri, 23 Jul 2010 05:56:30 +0000 (05:56 +0000)
gwtquery-core/src/main/java/com/google/gwt/query/rebind/SelectorGeneratorBase.java

index e69d41ff1a0cdd7d15569ec2a319818e4c2c8b46..3d15ebab6c0689bde44822a8448a8041b554bbae 100644 (file)
@@ -46,9 +46,13 @@ public abstract class SelectorGeneratorBase extends Generator {
     nodeType = oracle.findType("com.google.gwt.dom.client.Node");\r
 \r
     JClassType selectorType = oracle.findType(requestedClass);\r
+\r
+    String generatedPkgName = selectorType.getPackage().getName();\r
+    String generatedClassName = selectorType.getName().replace('.', '_') + "_"\r
+        + getImplSuffix();\r
+\r
     SourceWriter sw = getSourceWriter(treeLogger, generatorContext,\r
-        selectorType.getPackage().getName(),\r
-        selectorType.getSimpleSourceName() + getImplSuffix(), requestedClass);\r
+        generatedPkgName, generatedClassName, requestedClass);\r
     if (sw != null) {\r
       for (JMethod method : selectorType.getMethods()) {\r
         generateMethod(sw, method, treeLogger);\r
@@ -57,8 +61,7 @@ public abstract class SelectorGeneratorBase extends Generator {
       sw.commit(treeLogger);\r
     }\r
 \r
-    return selectorType.getPackage().getName() + "."\r
-        + selectorType.getSimpleSourceName() + getImplSuffix();\r
+    return generatedPkgName + "." + generatedClassName;\r
   }\r
 \r
   public void generateMethod(SourceWriter sw, JMethod method, TreeLogger logger)\r
@@ -90,14 +93,21 @@ public abstract class SelectorGeneratorBase extends Generator {
 \r
     if (sel != null && sel.value().matches("^#\\w+$")) {\r
       // short circuit #foo\r
-      sw.println("return " + wrap(method, "JSArray.create(((Document)root).getElementById(\"" + sel.value().substring(1) + "\"))") + ";");\r
+      sw.println("return "\r
+          + wrap(method, "JSArray.create(((Document)root).getElementById(\""\r
+              + sel.value().substring(1) + "\"))") + ";");\r
     } else if (sel != null && sel.value().matches("^\\w+$")) {\r
       // short circuit FOO\r
-      sw.println("return " + wrap(method, "JSArray.create(((Element)root).getElementsByTagName(\"" + sel.value() + "\"))") + ";");\r
+      sw.println("return "\r
+          + wrap(method,\r
+              "JSArray.create(((Element)root).getElementsByTagName(\""\r
+                  + sel.value() + "\"))") + ";");\r
     } else if (sel != null && sel.value().matches("^\\.\\w+$")\r
         && hasGetElementsByClassName()) {\r
-      // short circuit .foo for browsers with native getElementsByClassName \r
-      sw.println("return " + wrap(method, "JSArray.create(getElementsByClassName(\"" + sel.value().substring(1) + "\", root))") + ";");\r
+      // short circuit .foo for browsers with native getElementsByClassName\r
+      sw.println("return "\r
+          + wrap(method, "JSArray.create(getElementsByClassName(\""\r
+              + sel.value().substring(1) + "\", root))") + ";");\r
     } else {\r
       generateMethodBody(sw, method, logger, hasContext);\r
     }\r
@@ -107,7 +117,7 @@ public abstract class SelectorGeneratorBase extends Generator {
   }\r
 \r
   protected void debug(String s) {\r
-//    System.err.println(s);\r
+    // System.err.println(s);\r
     treeLogger.log(TreeLogger.DEBUG, s, null);\r
   }\r
 \r
@@ -125,12 +135,12 @@ public abstract class SelectorGeneratorBase extends Generator {
     if (printWriter == null) {\r
       return null;\r
     }\r
-    ClassSourceFileComposerFactory composerFactory\r
-        = new ClassSourceFileComposerFactory(packageName, className);\r
+    ClassSourceFileComposerFactory composerFactory = new ClassSourceFileComposerFactory(\r
+        packageName, className);\r
     composerFactory.setSuperclass("com.google.gwt.query.client.SelectorEngine");\r
     composerFactory.addImport("com.google.gwt.core.client.GWT");\r
     composerFactory.addImport("com.google.gwt.query.client.*");\r
-//    composerFactory.addImport("com.google.gwt.query.client.JSArray");\r
+    // composerFactory.addImport("com.google.gwt.query.client.JSArray");\r
 \r
     composerFactory.addImport("com.google.gwt.dom.client.*");\r
     for (String interfaceName : interfaceNames) {\r
@@ -169,8 +179,8 @@ public abstract class SelectorGeneratorBase extends Generator {
       TreeLogger treeLogger) {\r
     sw.println("public DeferredGQuery[] getAllSelectors() {");\r
     sw.indent();\r
-    sw.println(\r
-        "DeferredGQuery[] dg = new DeferredGQuery[" + (methods.length) + "];");\r
+    sw.println("DeferredGQuery[] dg = new DeferredGQuery[" + (methods.length)\r
+        + "];");\r
     int i = 0;\r
     for (JMethod m : methods) {\r
       Selector selectorAnnotation = m.getAnnotation(Selector.class);\r
@@ -181,16 +191,20 @@ public abstract class SelectorGeneratorBase extends Generator {
 \r
       sw.println("dg[" + i + "]=new DeferredGQuery() {");\r
       sw.indent();\r
-      sw.println(\r
-          "public String getSelector() { return \"" + selector + "\"; }");\r
-      sw.println("public GQuery eval(Node ctx) { return " + wrapJS(m,\r
-          m.getName() + (m.getParameters().length == 0 ? "()" : "(ctx)") + "")\r
-          + " ;}");\r
-      sw.println("public NodeList<Element> array(Node ctx) { return "\r
-          + ("NodeList".equals(m.getReturnType().getSimpleSourceName()) ? (\r
-          m.getName() + (m.getParameters().length == 0 ? "(); " : "(ctx); "))\r
-          : "eval" + (m.getParameters().length == 0 ? "(null).get(); "\r
-              : "(ctx).get(); ")) + "}");\r
+      sw\r
+          .println("public String getSelector() { return \"" + selector\r
+              + "\"; }");\r
+      sw.println("public GQuery eval(Node ctx) { return "\r
+          + wrapJS(m, m.getName()\r
+              + (m.getParameters().length == 0 ? "()" : "(ctx)") + "") + " ;}");\r
+      sw\r
+          .println("public NodeList<Element> array(Node ctx) { return "\r
+              + ("NodeList".equals(m.getReturnType().getSimpleSourceName()) ? (m\r
+                  .getName() + (m.getParameters().length == 0 ? "(); "\r
+                  : "(ctx); "))\r
+                  : "eval"\r
+                      + (m.getParameters().length == 0 ? "(null).get(); "\r
+                          : "(ctx).get(); ")) + "}");\r
 \r
       i++;\r
       sw.outdent();\r