From 7adac10d9eea04fdead59effd8f59f3bf5548ebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Mon, 22 Oct 2012 09:07:41 +0300 Subject: [PATCH] #251 fixed code generation --- .../java/com/mysema/query/domain/RawTest.java | 29 +++++++++++++++++++ .../query/codegen/EntitySerializer.java | 22 +++++++------- 2 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 querydsl-apt/src/test/java/com/mysema/query/domain/RawTest.java diff --git a/querydsl-apt/src/test/java/com/mysema/query/domain/RawTest.java b/querydsl-apt/src/test/java/com/mysema/query/domain/RawTest.java new file mode 100644 index 000000000..18724f8ef --- /dev/null +++ b/querydsl-apt/src/test/java/com/mysema/query/domain/RawTest.java @@ -0,0 +1,29 @@ +package com.mysema.query.domain; + +import org.junit.Test; + +import com.mysema.query.annotations.QueryEntity; +import com.mysema.query.annotations.QuerySupertype; + +public class RawTest { + + @QuerySupertype + public static class SuperClass> { + + public String property; + + } + + @SuppressWarnings("rawtypes") + @QueryEntity + public static class Entity extends SuperClass { + + public String property2; + } + + @Test + public void test() { + + } + +} diff --git a/querydsl-codegen/src/main/java/com/mysema/query/codegen/EntitySerializer.java b/querydsl-codegen/src/main/java/com/mysema/query/codegen/EntitySerializer.java index 6993a3e90..9caaea4d1 100644 --- a/querydsl-codegen/src/main/java/com/mysema/query/codegen/EntitySerializer.java +++ b/querydsl-codegen/src/main/java/com/mysema/query/codegen/EntitySerializer.java @@ -120,29 +120,31 @@ public class EntitySerializer implements Serializer{ String thisOrSuper = hasEntityFields ? THIS : SUPER; String additionalParams = getAdditionalConstructorParameter(model); - // 1 + // String constructorsForVariables(writer, model); - // 2 + // Path + writer.suppressWarnings("all"); + Type simpleModel = new SimpleType(model); if (model.isFinal()) { - Type type = new ClassType(Path.class, model); + Type type = new ClassType(Path.class, simpleModel); writer.beginConstructor(new Parameter("path", type)); } else { - Type type = new ClassType(Path.class, new TypeExtends(model)); + Type type = new ClassType(Path.class, new TypeExtends(simpleModel)); writer.beginConstructor(new Parameter("path", type)); - } + } if (!hasEntityFields) { if (stringOrBoolean) { writer.line("super(path.getMetadata());"); } else { - writer.line("super(path.getType(), path.getMetadata()" +additionalParams+");"); + writer.line("super((Class)path.getType(), path.getMetadata()" +additionalParams+");"); } } else { - writer.line("this(path.getType(), path.getMetadata(), path.getMetadata().isRoot() ? INITS : PathInits.DEFAULT);"); + writer.line("this((Class)path.getType(), path.getMetadata(), path.getMetadata().isRoot() ? INITS : PathInits.DEFAULT);"); } writer.end(); - // 3 + // PathMetadata if (hasEntityFields) { writer.beginConstructor(PATH_METADATA); writer.line("this(metadata, metadata.isRoot() ? INITS : PathInits.DEFAULT);"); @@ -161,7 +163,7 @@ public class EntitySerializer implements Serializer{ writer.end(); } - // 4 + // PathMetadata, PathInits if (hasEntityFields) { if (!localName.equals(genericName)) { writer.suppressWarnings("all"); @@ -172,7 +174,7 @@ public class EntitySerializer implements Serializer{ writer.end(); } - // 5 + // Class, PathMetadata, PathInits if (hasEntityFields) { Type type = new ClassType(Class.class, new TypeExtends(model)); writer.beginConstructor(new Parameter("type", type), PATH_METADATA, PATH_INITS);