updated version to 0.6.4-SNAPSHOT

This commit is contained in:
Timo Westkämper 2009-10-10 17:17:18 +00:00
parent 5530bbabf7
commit 6ce5316f1f
16 changed files with 111 additions and 25 deletions

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-root</artifactId>
<version>0.6.4</version>
<version>0.6.4-SNAPSHOT</version>
</parent>
<groupId>com.mysema.querydsl</groupId>

View File

@ -77,6 +77,7 @@ public class Processor {
if (conf.getSuperTypeAnn() != null) {
for (Element element : roundEnv.getElementsAnnotatedWith(conf.getSuperTypeAnn())) {
BeanModel model = element.accept(entityVisitor, null);
model.setEntityModel(false);
superTypes.put(model.getName(), model);
}
// add supertype fields
@ -158,8 +159,10 @@ public class Processor {
}
if (stype.equals(model.getSupertypeName())){
model.setSuperModel(sdecl);
}
model.include(sdecl);
}
if (sdecl.isEntityModel()){
model.include(sdecl);
}
stype = sdecl.getSupertypeName();
}
}

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-root</artifactId>
<version>0.6.4</version>
<version>0.6.4-SNAPSHOT</version>
</parent>
<groupId>com.mysema.querydsl</groupId>

View File

@ -0,0 +1,9 @@
package com.mysema.query.domain.hierarchy.s1;
import com.mysema.query.annotations.QueryEntity;
@QueryEntity
public class SEntity1 {
String entity1Field;
}

View File

@ -0,0 +1,11 @@
package com.mysema.query.domain.hierarchy.s2;
import com.mysema.query.annotations.QueryEntity;
import com.mysema.query.domain.hierarchy.s4.SSupertype;
@QueryEntity
public class SEntity2 extends SSupertype{
String entity2Field;
}

View File

@ -0,0 +1,10 @@
package com.mysema.query.domain.hierarchy.s3;
import com.mysema.query.annotations.QueryEntity;
import com.mysema.query.domain.hierarchy.s2.SEntity2;
@QueryEntity
public class SEntity3 extends SEntity2{
String entity3Field;
}

View File

@ -0,0 +1,10 @@
package com.mysema.query.domain.hierarchy.s4;
import com.mysema.query.annotations.QuerySupertype;
@QuerySupertype
public class SSupertype {
String supertypeField;
}

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-root</artifactId>
<version>0.6.4</version>
<version>0.6.4-SNAPSHOT</version>
</parent>
<groupId>com.mysema.querydsl</groupId>

View File

@ -35,6 +35,8 @@ public final class BeanModel implements Comparable<BeanModel> {
// mutable
private int escapeSuffix = 1;
private boolean entityModel = true;
private final String simpleName, name, packageName, localName;
private final String prefix;
@ -203,5 +205,13 @@ public final class BeanModel implements Comparable<BeanModel> {
public void setSuperModel(BeanModel superModel) {
this.superModel = superModel;
}
public boolean isEntityModel() {
return entityModel;
}
public void setEntityModel(boolean entityModel) {
this.entityModel = entityModel;
}
}

View File

@ -21,8 +21,7 @@ public class EmbeddableSerializer extends EntitySerializer{
}
@Override
protected void introImports(StringBuilder builder) {
builder.append("import com.mysema.query.util.*;\n");
protected void introImports(StringBuilder builder, BeanModel model) {
builder.append("import com.mysema.query.types.path.*;\n\n");
}

View File

@ -221,7 +221,7 @@ public class EntitySerializer implements Serializer{
protected void intro(BeanModel model, Writer writer) throws IOException {
StringBuilder builder = new StringBuilder();
introPackage(builder, model);
introImports(builder);
introImports(builder, model);
introJavadoc(builder, model);
introClassHeader(builder, model);
introDefaultInstance(builder, model);
@ -231,18 +231,34 @@ public class EntitySerializer implements Serializer{
private void introSuper(StringBuilder builder, BeanModel model) {
if (model.getSuperModel() != null){
BeanModel _super = model.getSuperModel();
final String simpleName = _super.getSimpleName();
final String queryType = _super.getPrefix() + simpleName;
builder.append(" public final "+queryType+" _super = new " + queryType + "(this);\n\n");
BeanModel superModel = model.getSuperModel();
String superQueryType = superModel.getPrefix() + superModel.getSimpleName();
if (!superModel.getPackageName().equals(model.getPackageName())){
superQueryType = superModel.getPackageName() + "." + superQueryType;
}
if (superModel.isEntityModel()){
builder.append(" public final "+superQueryType+" _super = new " + superQueryType + "(this);\n\n");
}else{
builder.append(" public final "+superQueryType+"<"+model.getLocalName()+"> _super = this;\n\n");
}
}
}
protected void introClassHeader(StringBuilder builder, BeanModel model) {
final String queryType = model.getPrefix() + model.getSimpleName();
final String localName = model.getLocalName();
builder.append("@SuppressWarnings(\"all\")\n");
builder.append("public class " + queryType + " extends PEntity<" + localName + "> {\n\n");
builder.append("@SuppressWarnings(\"serial\")\n");
if (model.getSuperModel() != null && !model.getSuperModel().isEntityModel()){
BeanModel superModel = model.getSuperModel();
String superQueryType = superModel.getPrefix() + superModel.getSimpleName();
if (!superModel.getPackageName().equals(model.getPackageName())){
superQueryType = superModel.getPackageName() + "." + superQueryType;
}
builder.append("public class " + queryType + " extends "+superQueryType+"<" + localName + "> {\n\n");
}else{
builder.append("public class " + queryType + " extends PEntity<" + localName + "> {\n\n");
}
}
protected void introDefaultInstance(StringBuilder builder, BeanModel model) {
@ -252,10 +268,12 @@ public class EntitySerializer implements Serializer{
builder.append(" public static final " + queryType + " " + unscapSimpleName + " = new " + queryType + "(\"" + unscapSimpleName + "\");\n\n");
}
protected void introImports(StringBuilder builder) {
protected void introImports(StringBuilder builder, BeanModel model) {
builder.append("import com.mysema.query.util.*;\n");
builder.append("import com.mysema.query.types.path.*;\n");
builder.append("import com.mysema.query.types.expr.*;\n");
if (!model.getConstructors().isEmpty()){
builder.append("import com.mysema.query.types.expr.*;\n");
}
}
protected void introJavadoc(StringBuilder builder, BeanModel model) {

View File

@ -28,21 +28,37 @@ public class SupertypeSerializer extends EntitySerializer{
}
@Override
protected void introImports(StringBuilder builder) {
protected void introImports(StringBuilder builder, BeanModel model) {
builder.append("import com.mysema.query.util.*;\n");
builder.append("import com.mysema.query.types.path.*;\n\n");
}
@Override
protected void introClassHeader(StringBuilder builder, BeanModel model) {
final String queryType = model.getPrefix() + model.getSimpleName();
final String localName = model.getLocalName();
builder.append("@SuppressWarnings(\"serial\")\n");
if (model.getSuperModel() != null){
BeanModel superModel = model.getSuperModel();
String superQueryType = superModel.getPrefix() + superModel.getSimpleName();
if (!superModel.getPackageName().equals(model.getPackageName())){
superQueryType = superModel.getPackageName() + "." + superQueryType;
}
builder.append("public abstract class " + queryType + " extends "+superQueryType+"<" + localName + "> {\n\n");
}else{
builder.append("public abstract class " + queryType + "<T extends "+localName+"> extends PEntity<T> {\n\n");
}
}
@Override
protected void constructors(BeanModel model, Writer writer) throws IOException {
final String simpleName = model.getSimpleName();
final String queryType = model.getPrefix() + simpleName;
final String localName = model.getLocalName();
StringBuilder builder = new StringBuilder();
builder.append(" public " + queryType + "(PEntity<? extends "+localName+"> entity) {\n");
builder.append(" super(entity.getType(), entity.getEntityName(), entity.getMetadata());\n");
builder.append(" }\n\n");
builder.append(" public "+queryType+"(Class<? extends T> type, @NotEmpty String entityName, PathMetadata<?> metadata) {\n");
builder.append(" super(type, entityName, metadata);\n");
builder.append(" }\n");
writer.append(builder.toString());
}

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-root</artifactId>
<version>0.6.4</version>
<version>0.6.4-SNAPSHOT</version>
</parent>
<groupId>com.mysema.querydsl</groupId>

View File

@ -22,7 +22,7 @@ public class TypeCastTest {
@Test
public void mappedSuperclass(){
QInheritedProperties subClass = QInheritedProperties.inheritedProperties;
QSuperclass superClass = new QSuperclass(subClass);
QSuperclass<InheritedProperties> superClass = subClass;
assertEquals(InheritedProperties.class, superClass.getType());
assertEquals(InheritedProperties.class.getSimpleName(), superClass.getEntityName());

View File

@ -5,7 +5,7 @@
<parent>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-root</artifactId>
<version>0.6.4</version>
<version>0.6.4-SNAPSHOT</version>
</parent>
<groupId>com.mysema.querydsl</groupId>

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-root</artifactId>
<version>0.6.4</version>
<version>0.6.4-SNAPSHOT</version>
<name>Querydsl</name>
<description>parent project for querydsl modules</description>
<url>http://source.mysema.com/display/querydsl</url>