From 1274c8b0b43e50d7bbe9013d829802e2d0a3f552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Wed, 7 Jan 2009 12:08:29 +0000 Subject: [PATCH] --- .../main/java/com/mysema/query/apt/Field.java | 11 ++ querydsl-apt/src/main/resources/macros.ftl | 151 +++++++++++------- 2 files changed, 108 insertions(+), 54 deletions(-) diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/Field.java b/querydsl-apt/src/main/java/com/mysema/query/apt/Field.java index 73d5761c5..0f8560b0d 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/Field.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/Field.java @@ -64,6 +64,17 @@ public class Field implements Comparable { public String getName() { return name; } + + // TODO : improve this name normalization + public String getRealName(){ + if (name.equals("prvate")){ + return "private"; + }else if (name.equals("pblic")){ + return "public"; + }else{ + return name; + } + } public String getSimpleTypeName() { return simpleTypeName; diff --git a/querydsl-apt/src/main/resources/macros.ftl b/querydsl-apt/src/main/resources/macros.ftl index 5d6e8629a..5384c82de 100644 --- a/querydsl-apt/src/main/resources/macros.ftl +++ b/querydsl-apt/src/main/resources/macros.ftl @@ -1,71 +1,38 @@ -<#macro classContent decl embeddable> - <#assign reserved = ["isnull", "isnotnull", "getType", "getMetadata", "toString", "hashCode", "getClass", "notify", "notifyAll", "wait"]> - <#list decl.stringFields as field> - public final Path.PString ${field.name} = _string("${field.name}"); +<#assign reserved = ["isnull", "isnotnull", "getType", "getMetadata", "toString", "hashCode", "getClass", "notify", "notifyAll", "wait"]> + +<#macro classContent decl embeddable> + <#list decl.stringFields as field> + <@stringField field=field/> <#list decl.booleanFields as field> - public final Path.PBoolean ${field.name} = _boolean("${field.name}"); - - - <#-- simple fields --> + <@booleanField field=field/> + <#list decl.simpleFields as field> - public final Path.PSimple<${field.typeName}> ${field.name} = _simple("${field.name}",${field.typeName}.class); + <@simpleField field=field/> <#list decl.comparableFields as field> - public final Path.PComparable<${field.typeName}> ${field.name} = _comparable("${field.name}",${field.typeName}.class); + <@comparableField field=field/> <#list decl.simpleMaps as field> - public final Path.PComponentMap<${field.keyTypeName},${field.typeName}> ${field.name} = _simplemap("${field.name}",${field.keyTypeName}.class,${field.typeName}.class); - public Path.PSimple<${field.typeName}> ${field.name}(${field.keyTypeName} key) { - return new Path.PSimple<${field.typeName}>(${field.typeName}.class,forMapAccess(${field.name},key)); - } - public Path.PSimple<${field.typeName}> ${field.name}(Expr<${field.keyTypeName}> key) { - return new Path.PSimple<${field.typeName}>(${field.typeName}.class,forMapAccess(${field.name},key)); - } + <@simpleMap field=field/> <#list decl.simpleCollections as field> - public final Path.PComponentCollection<${field.typeName}> ${field.name} = _simplecol("${field.name}",${field.typeName}.class); + <@simpleCollection field=field/> <#list decl.simpleLists as field> - public final Path.PComponentList<${field.typeName}> ${field.name} = _simplelist("${field.name}",${field.typeName}.class); - public Path.PSimple<${field.typeName}> ${field.name}(int index) { - return new Path.PSimple<${field.typeName}>(${field.typeName}.class,forListAccess(${field.name},index)); - } - public Path.PSimple<${field.typeName}> ${field.name}(Expr index) { - return new Path.PSimple<${field.typeName}>(${field.typeName}.class,forListAccess(${field.name},index)); - } - - - <#-- entity fields --> + <@simpleList field=field/> + <#list decl.entityMaps as field> - public final Path.PEntityMap<${field.keyTypeName},${field.typeName}> ${field.name} = _entitymap("${field.name}",${field.keyTypeName}.class,${field.typeName}.class); - public ${pre}${field.simpleTypeName} ${field.name}(${field.keyTypeName} key) { - return new ${pre}${field.simpleTypeName}(forMapAccess(${field.name},key)); - } - public ${pre}${field.simpleTypeName} ${field.name}(Expr<${field.keyTypeName}> key) { - return new ${pre}${field.simpleTypeName}(forMapAccess(${field.name},key)); - } + <@entityMap field=field/> <#list decl.entityCollections as field> - public final Path.PEntityCollection<${field.typeName}> ${field.name} = _entitycol("${field.name}",${field.typeName}.class); + <@entityCollection field=field/> <#list decl.entityLists as field> - public final Path.PEntityList<${field.typeName}> ${field.name} = _entitylist("${field.name}",${field.typeName}.class); - public ${pre}${field.simpleTypeName} ${field.name}(int index) { - return new ${pre}${field.simpleTypeName}(forListAccess(${field.name},index)); - } - public ${pre}${field.simpleTypeName} ${field.name}(Expr index) { - return new ${pre}${field.simpleTypeName}(forListAccess(${field.name},index)); - } + <@entityList field=field/> <#list decl.entityFields as field> - public ${pre}${field.simpleTypeName} ${field.name}; - <#if !reserved?seq_contains(field.name)> - public ${pre}${field.simpleTypeName} _${field.name}() { - if (${field.name} == null) ${field.name} = new ${pre}${field.simpleTypeName}(forProperty(this,"${field.name}")); - return ${field.name}; - } - + <@entityField field=field/> <#-- constructors --> @@ -79,7 +46,83 @@ } - public ${pre}${decl.simpleName}(PathMetadata metadata) { - super(${decl.name}.class, metadata); - } - \ No newline at end of file + public ${pre}${decl.simpleName}(PathMetadata metadata) { + super(${decl.name}.class, metadata); + } + + +<#macro booleanField field> + public final Path.PBoolean ${field.name} = _boolean("${field.realName}"); + + +<#macro comparableField field> + public final Path.PComparable<${field.typeName}> ${field.name} = _comparable("${field.realName}",${field.typeName}.class); + + +<#macro entityCollection field> + public final Path.PEntityCollection<${field.typeName}> ${field.name} = _entitycol("${field.realName}",${field.typeName}.class); + + +<#macro entityField field> + public ${pre}${field.simpleTypeName} ${field.name}; + <#if !reserved?seq_contains(field.name)> + public ${pre}${field.simpleTypeName} _${field.name}() { + if (${field.name} == null) ${field.name} = new ${pre}${field.simpleTypeName}(forProperty(this,"${field.realName}")); + return ${field.name}; + } + + + +<#macro entityList field> + public final Path.PEntityList<${field.typeName}> ${field.name} = _entitylist("${field.realName}",${field.typeName}.class); + public ${pre}${field.simpleTypeName} ${field.name}(int index) { + return new ${pre}${field.simpleTypeName}(forListAccess(${field.name},index)); + } + public ${pre}${field.simpleTypeName} ${field.name}(Expr index) { + return new ${pre}${field.simpleTypeName}(forListAccess(${field.name},index)); + } + + +<#macro entityMap field> + public final Path.PEntityMap<${field.keyTypeName},${field.typeName}> ${field.name} = _entitymap("${field.realName}",${field.keyTypeName}.class,${field.typeName}.class); + public ${pre}${field.simpleTypeName} ${field.name}(${field.keyTypeName} key) { + return new ${pre}${field.simpleTypeName}(forMapAccess(${field.name},key)); + } + public ${pre}${field.simpleTypeName} ${field.name}(Expr<${field.keyTypeName}> key) { + return new ${pre}${field.simpleTypeName}(forMapAccess(${field.name},key)); + } + + +<#macro simpleField field> + public final Path.PSimple<${field.typeName}> ${field.name} = _simple("${field.realName}",${field.typeName}.class); + + +<#macro simpleMap field> + public final Path.PComponentMap<${field.keyTypeName},${field.typeName}> ${field.name} = _simplemap("${field.realName}",${field.keyTypeName}.class,${field.typeName}.class); + public Path.PSimple<${field.typeName}> ${field.name}(${field.keyTypeName} key) { + return new Path.PSimple<${field.typeName}>(${field.typeName}.class,forMapAccess(${field.name},key)); + } + public Path.PSimple<${field.typeName}> ${field.name}(Expr<${field.keyTypeName}> key) { + return new Path.PSimple<${field.typeName}>(${field.typeName}.class,forMapAccess(${field.name},key)); + } + + +<#macro simpleCollection field> + public final Path.PComponentCollection<${field.typeName}> ${field.name} = _simplecol("${field.realName}",${field.typeName}.class); + + +<#macro simpleList field> + public final Path.PComponentList<${field.typeName}> ${field.name} = _simplelist("${field.realName}",${field.typeName}.class); + public Path.PSimple<${field.typeName}> ${field.name}(int index) { + return new Path.PSimple<${field.typeName}>(${field.typeName}.class,forListAccess(${field.name},index)); + } + public Path.PSimple<${field.typeName}> ${field.name}(Expr index) { + return new Path.PSimple<${field.typeName}>(${field.typeName}.class,forListAccess(${field.name},index)); + } + + +<#macro stringField field> + public final Path.PString ${field.name} = _string("${field.realName}"); + + +