Merge pull request #1582 from querydsl/i1579

Add support for QueryDelegates in nested classes
This commit is contained in:
John Tims 2015-09-30 08:25:36 -04:00
commit 8a0c5e0e4e
3 changed files with 46 additions and 1 deletions

View File

@ -0,0 +1,15 @@
package com.querydsl;
import com.querydsl.core.annotations.QueryDelegate;
import com.querydsl.core.types.dsl.BooleanExpression;
public class InnerExtensions {
public static class ExampleEntity2Extensions {
@QueryDelegate(ExampleEntity2.class)
public static BooleanExpression isZero(QExampleEntity2 left) {
return left.id.eq(0);
}
}
}

View File

@ -0,0 +1,30 @@
package com.querydsl.apt.domain;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import com.querydsl.apt.AbstractProcessorTest;
import com.querydsl.apt.QuerydslAnnotationProcessor;
public class InnerExtensionsTest extends AbstractProcessorTest {
private static final String packagePath = "src/test/apt/com/querydsl/";
@Test
public void Process() throws IOException {
List<String> sources = Arrays.asList(
new File(packagePath, "InnerExtensions.java").getPath(),
new File(packagePath, "ExampleEntity2.java").getPath());
process(QuerydslAnnotationProcessor.class, sources, "innerextensions");
String qtypeContent = Files.toString(new File("target/innerextensions/com/querydsl/QExampleEntity2.java"), Charsets.UTF_8);
assertTrue(qtypeContent.contains("return InnerExtensions.ExampleEntity2Extensions.isZero(this);"));
}
}

View File

@ -563,7 +563,7 @@ public class EntitySerializer implements Serializer {
writer.beginPublicMethod(delegate.getReturnType(), delegate.getName(), params);
// body start
writer.beginLine(RETURN + delegate.getDelegateType().getSimpleName() + "." + delegate.getName() + "(");
writer.beginLine(RETURN + writer.getRawName(delegate.getDelegateType()) + "." + delegate.getName() + "(");
writer.append("this");
if (!model.equals(delegate.getDeclaringType())) {
int counter = 0;