mirror of
https://github.com/querydsl/querydsl.git
synced 2026-06-30 21:08:30 +08:00
Merge pull request #1582 from querydsl/i1579
Add support for QueryDelegates in nested classes
This commit is contained in:
commit
8a0c5e0e4e
15
querydsl-apt/src/test/apt/com/querydsl/InnerExtensions.java
Normal file
15
querydsl-apt/src/test/apt/com/querydsl/InnerExtensions.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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);"));
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user