diff --git a/querydsl-apt/src/test/apt/com/querydsl/InnerExtensions.java b/querydsl-apt/src/test/apt/com/querydsl/InnerExtensions.java new file mode 100644 index 000000000..46ecd3916 --- /dev/null +++ b/querydsl-apt/src/test/apt/com/querydsl/InnerExtensions.java @@ -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); + } + } +} diff --git a/querydsl-apt/src/test/java/com/querydsl/apt/domain/InnerExtensionsTest.java b/querydsl-apt/src/test/java/com/querydsl/apt/domain/InnerExtensionsTest.java new file mode 100644 index 000000000..9f0e15148 --- /dev/null +++ b/querydsl-apt/src/test/java/com/querydsl/apt/domain/InnerExtensionsTest.java @@ -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 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);")); + } +} diff --git a/querydsl-codegen/src/main/java/com/querydsl/codegen/EntitySerializer.java b/querydsl-codegen/src/main/java/com/querydsl/codegen/EntitySerializer.java index b7d237654..caedbbd4d 100644 --- a/querydsl-codegen/src/main/java/com/querydsl/codegen/EntitySerializer.java +++ b/querydsl-codegen/src/main/java/com/querydsl/codegen/EntitySerializer.java @@ -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;