From e9abca9778cb44b9c8b0ce3cac3dcdc7ef57d36b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Tue, 22 Nov 2011 23:58:21 +0200 Subject: [PATCH] updated version to 0.4.5 --- pom.xml | 2 +- .../java/com/mysema/codegen/ScalaWriter.java | 24 ++++++++++++------- .../com/mysema/codegen/ScalaWriterTest.java | 11 ++++++++- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index 4ccbf1f01..ef3eecc3a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.mysema.codegen codegen - 0.4.4 + 0.4.5 Codegen Code generation and compilation for Java diff --git a/src/main/java/com/mysema/codegen/ScalaWriter.java b/src/main/java/com/mysema/codegen/ScalaWriter.java index fbae3e36c..65379695d 100644 --- a/src/main/java/com/mysema/codegen/ScalaWriter.java +++ b/src/main/java/com/mysema/codegen/ScalaWriter.java @@ -4,7 +4,6 @@ import static com.mysema.codegen.Symbols.ASSIGN; import static com.mysema.codegen.Symbols.COMMA; import static com.mysema.codegen.Symbols.DOT; import static com.mysema.codegen.Symbols.QUOTE; -import static com.mysema.codegen.Symbols.SEMICOLON; import java.io.IOException; import java.lang.annotation.Annotation; @@ -54,6 +53,8 @@ public class ScalaWriter extends AbstractCodeWriter{ private static final String PUBLIC_CLASS = "class "; private static final String PUBLIC_OBJECT = "object "; + + private static final String CASE_CLASS = "case class "; private static final String VAR = "var "; @@ -185,7 +186,7 @@ public class ScalaWriter extends AbstractCodeWriter{ goIn(); return this; } - + public ScalaWriter beginClass(String header) throws IOException { line(PUBLIC_CLASS, header, " {"); goIn(); @@ -297,6 +298,11 @@ public class ScalaWriter extends AbstractCodeWriter{ public ScalaWriter beginStaticMethod(Type returnType, String methodName, Parameter... args) throws IOException{ return beginMethod(DEF, returnType, methodName, args); } + + public ScalaWriter caseClass(String header, Parameter... parameters) throws IOException { + beginLine(CASE_CLASS, header).params(parameters).nl(); + return this; + } @Override public ScalaWriter end() throws IOException { @@ -305,17 +311,17 @@ public class ScalaWriter extends AbstractCodeWriter{ } public ScalaWriter field(Type type, String name) throws IOException { - line(VAR + escape(name) + ": " + getGenericName(true, type) + SEMICOLON); + line(VAR + escape(name) + ": " + getGenericName(true, type)); return compact ? this : nl(); } private ScalaWriter field(String modifier, Type type, String name) throws IOException{ - line(modifier + escape(name) + ": " + getGenericName(true, type) + SEMICOLON); + line(modifier + escape(name) + ": " + getGenericName(true, type)); return compact ? this : nl(); } private ScalaWriter field(String modifier, Type type, String name, String value) throws IOException{ - line(modifier + escape(name) + ": " + getGenericName(true, type) + ASSIGN + value + SEMICOLON); + line(modifier + escape(name) + ": " + getGenericName(true, type) + ASSIGN + value); return compact ? this : nl(); } @@ -373,7 +379,7 @@ public class ScalaWriter extends AbstractCodeWriter{ public ScalaWriter imports(Class... imports) throws IOException{ for (Class cl : imports){ classes.add(cl.getName()); - line(IMPORT + cl.getName() + SEMICOLON); + line(IMPORT + cl.getName()); } nl(); return this; @@ -383,7 +389,7 @@ public class ScalaWriter extends AbstractCodeWriter{ public ScalaWriter imports(Package... imports) throws IOException { for (Package p : imports){ packages.add(p.getName()); - line(IMPORT + p.getName() + "._;"); + line(IMPORT + p.getName() + "._"); } nl(); return this; @@ -393,7 +399,7 @@ public class ScalaWriter extends AbstractCodeWriter{ public ScalaWriter importClasses(String... imports) throws IOException{ for (String cl : imports){ classes.add(cl); - line(IMPORT + cl + SEMICOLON); + line(IMPORT + cl); } nl(); return this; @@ -421,7 +427,7 @@ public class ScalaWriter extends AbstractCodeWriter{ @Override public ScalaWriter packageDecl(String packageName) throws IOException { packages.add(packageName); - return line(PACKAGE + packageName + SEMICOLON).nl(); + return line(PACKAGE + packageName).nl(); } private ScalaWriter params(Collection parameters, Transformer transformer) throws IOException{ diff --git a/src/test/java/com/mysema/codegen/ScalaWriterTest.java b/src/test/java/com/mysema/codegen/ScalaWriterTest.java index 10c65c629..f28d9a9a4 100644 --- a/src/test/java/com/mysema/codegen/ScalaWriterTest.java +++ b/src/test/java/com/mysema/codegen/ScalaWriterTest.java @@ -1,5 +1,6 @@ package com.mysema.codegen; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.IOException; @@ -113,7 +114,7 @@ public class ScalaWriterTest { writer.end(); System.out.println(w); - assertTrue(w.toString().contains("var stringArray: Array[String];")); + assertTrue(w.toString().contains("var stringArray: Array[String]")); assertTrue(w.toString().contains("def main(args: Array[String])")); assertTrue(w.toString().contains("def main2(args: Array[String])")); } @@ -333,6 +334,14 @@ public class ScalaWriterTest { } + @Test + public void CaseClass() throws IOException { + writer.caseClass("TestType", new Parameter("a", Types.STRING), new Parameter("b", Types.STRING)); + + System.out.println(w); + assertEquals("case class TestType(a: String, b: String)\n", w.toString()); + } + @Test public void Primitive() throws IOException { writer.beginClass(testType);