|
31 | 31 | import org.codehaus.groovy.ast.MethodNode; |
32 | 32 | import org.codehaus.groovy.ast.Parameter; |
33 | 33 | import org.codehaus.groovy.ast.PropertyNode; |
34 | | -import org.codehaus.groovy.ast.expr.ClassExpression; |
35 | | -import org.codehaus.groovy.ast.expr.ConstantExpression; |
36 | | -import org.codehaus.groovy.ast.expr.Expression; |
37 | | -import org.codehaus.groovy.ast.expr.GStringExpression; |
38 | | -import org.codehaus.groovy.ast.expr.ListExpression; |
39 | | -import org.codehaus.groovy.ast.expr.MapEntryExpression; |
40 | | -import org.codehaus.groovy.ast.expr.MapExpression; |
41 | | -import org.codehaus.groovy.ast.expr.VariableExpression; |
| 34 | +import org.codehaus.groovy.ast.expr.*; |
42 | 35 | import org.codehaus.groovy.ast.stmt.ReturnStatement; |
43 | 36 | import org.codehaus.groovy.ast.stmt.Statement; |
44 | 37 | import org.codehaus.groovy.classgen.GeneratorContext; |
@@ -213,9 +206,10 @@ private void injectToStringMethod(ClassNode classNode) { |
213 | 206 | classNode, "toString", classesWithInjectedToString); |
214 | 207 |
|
215 | 208 | if (!hasToString && !isEnum(classNode)) { |
216 | | - GStringExpression ge = new GStringExpression(classNode.getName() + " : ${id}"); |
| 209 | + GStringExpression ge = new GStringExpression(classNode.getName() + " : ${id ? id : '(unsaved)'}"); |
217 | 210 | ge.addString(new ConstantExpression(classNode.getName() + " : ")); |
218 | | - ge.addValue(new VariableExpression("id")); |
| 211 | + VariableExpression idVariable = new VariableExpression("id"); |
| 212 | + ge.addValue(new TernaryExpression(new BooleanExpression(idVariable), idVariable, new ConstantExpression("(unsaved)"))); |
219 | 213 | Statement s = new ReturnStatement(ge); |
220 | 214 | MethodNode mn = new MethodNode("toString", Modifier.PUBLIC, new ClassNode(String.class), new Parameter[0], new ClassNode[0], s); |
221 | 215 | classNode.addMethod(mn); |
|
0 commit comments