Rolled back previous patch due to failing RequestFactory tests.
Patch by: amitmanjhi
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8911 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/requestfactory/rebind/RequestFactoryGenerator.java b/user/src/com/google/gwt/requestfactory/rebind/RequestFactoryGenerator.java
index 61aa07c..9c4f0ea 100644
--- a/user/src/com/google/gwt/requestfactory/rebind/RequestFactoryGenerator.java
+++ b/user/src/com/google/gwt/requestfactory/rebind/RequestFactoryGenerator.java
@@ -221,14 +221,12 @@
return packageName + "." + implName;
}
- private String asInnerImplClass(String className, JClassType outerClass) {
- if (outerClass.isParameterized() != null) {
- // outerClass is of form List<EmployeeProxy>
- outerClass = outerClass.isParameterized().getTypeArgs()[0];
+ private String asInnerImplClass(String className, JClassType outerClassName) {
+ if (outerClassName.isParameterized() != null) {
+ // outerClassName is of form List<EmployeeProxy>
+ outerClassName = outerClassName.isParameterized().getTypeArgs()[0];
}
- // outerClass is of the form <P extends EmployeeProxy>
- outerClass = decodeToBaseType(outerClass);
- className = outerClass.getQualifiedSourceName() + "Impl." + className;
+ className = outerClassName.getQualifiedSourceName() + "Impl." + className;
return className;
}
@@ -340,14 +338,14 @@
// handle publicProxyType = List<EmployeeProxy>
publicProxyType = publicProxyType.isParameterized().getTypeArgs()[0];
}
- // deal with stuff like Request<T extends FooProxy>
- publicProxyType = decodeToBaseType(publicProxyType);
-
// don't generate proxies for the EntityProxy impl itself
if (!publicProxyType.isAssignableTo(entityProxyType)
|| publicProxyType.equals(entityProxyType)) {
return;
}
+ if (publicProxyType.isTypeParameter() != null) {
+ return;
+ }
if (generatedProxyTypes.contains(publicProxyType)) {
return;
}
@@ -935,12 +933,8 @@
sw.println(getMethodDeclaration(method) + " {");
sw.indent();
- /*
- * ugly cast to get around generics, if method signature is like
- * com.google.gwt.requestfactory.shared.TestFooPolymorphicRequest::echo
- */
- sw.println("return (" + method.getReturnType().getQualifiedBinaryName()
- + ") new " + requestClassName + "(factory" + extraArgs + ") {");
+ sw.println("return new " + requestClassName + "(factory" + extraArgs
+ + ") {");
sw.indent();
String requestDataName = RequestData.class.getSimpleName();
sw.println("public " + requestDataName + " getRequestData() {");
@@ -1057,8 +1051,7 @@
}
if (classType != null && classType.isAssignableTo(entityProxyType)) {
- // classType is of the form <P extends EmployeeProxy>
- sb.append("((" + decodeToBaseType(classType).getQualifiedBinaryName() + "Impl" + ")");
+ sb.append("((" + classType.getQualifiedBinaryName() + "Impl" + ")");
}
sb.append(parameter.getName());
if (classType != null && classType.isAssignableTo(entityProxyType)) {
@@ -1377,6 +1370,8 @@
@SuppressWarnings("unchecked")
private void validateProxyType(JClassType entityProxyType,
TypeOracle typeOracle) throws DiagnosticException {
+ // deal with stuff like Request<T extends FooProxy>
+ entityProxyType = decodeToBaseType(entityProxyType);
// skip validating base interface
if (this.entityProxyType.equals(entityProxyType)) {
return;
diff --git a/user/test/com/google/gwt/requestfactory/RequestFactorySuite.java b/user/test/com/google/gwt/requestfactory/RequestFactorySuite.java
index 940e29b..488d585 100644
--- a/user/test/com/google/gwt/requestfactory/RequestFactorySuite.java
+++ b/user/test/com/google/gwt/requestfactory/RequestFactorySuite.java
@@ -19,7 +19,6 @@
import com.google.gwt.requestfactory.client.EditorTest;
import com.google.gwt.requestfactory.client.FindServiceTest;
import com.google.gwt.requestfactory.client.RequestFactoryExceptionHandlerTest;
-import com.google.gwt.requestfactory.client.RequestFactoryPolymorphicTest;
import com.google.gwt.requestfactory.client.RequestFactoryStringTest;
import com.google.gwt.requestfactory.client.RequestFactoryTest;
import com.google.gwt.requestfactory.client.impl.DeltaValueStoreJsonImplTest;
@@ -41,7 +40,6 @@
suite.addTestSuite(ValueStoreJsonImplTest.class);
suite.addTestSuite(DeltaValueStoreJsonImplTest.class);
suite.addTestSuite(RequestFactoryTest.class);
- suite.addTestSuite(RequestFactoryPolymorphicTest.class);
suite.addTestSuite(RequestFactoryStringTest.class);
suite.addTestSuite(RequestFactoryExceptionHandlerTest.class);
suite.addTestSuite(FindServiceTest.class);