added Scala test

This commit is contained in:
Timo Westkämper 2012-01-26 00:09:11 +02:00
parent 6633ea706a
commit b2a4dfb0ed
3 changed files with 23 additions and 8 deletions

View File

@ -5,8 +5,6 @@
*/
package com.mysema.codegen;
import static com.mysema.codegen.Symbols.NEWLINE;
import java.io.IOException;
import org.apache.commons.lang3.StringUtils;
@ -89,7 +87,7 @@ public abstract class AbstractCodeWriter<T extends AbstractCodeWriter<T>> implem
@Override
public T nl() throws IOException {
return append(NEWLINE);
return append("\n");
}
}

View File

@ -21,13 +21,17 @@ import com.mysema.codegen.model.Parameter;
import com.mysema.codegen.model.Type;
import com.mysema.codegen.model.Types;
import com.mysema.codegen.support.ScalaSyntaxUtils;
import com.sun.xml.internal.ws.util.StringUtils;
/**
* @author tiwe
*
*/
public class ScalaWriter extends AbstractCodeWriter<ScalaWriter>{
public class ScalaWriter extends AbstractCodeWriter<ScalaWriter> {
private static final Set<String> PRIMITIVE_TYPES = new HashSet<String>(
Arrays.asList("byte","char","int","long","short","double","float"));
private static final String DEF = "def ";
private static final String EXTENDS = " extends ";
@ -61,7 +65,7 @@ public class ScalaWriter extends AbstractCodeWriter<ScalaWriter>{
private static final String VAL = "val ";
private static final String TRAIT = "trait ";
private final Set<String> classes = new HashSet<String>();
private final Set<String> packages = new HashSet<String>();
@ -340,7 +344,7 @@ public class ScalaWriter extends AbstractCodeWriter<ScalaWriter>{
builder.append(", ");
}
if (parameter == null || parameter.getFullName().equals(fullName)){
builder.append("?");
builder.append("_");
}else{
builder.append(getGenericName(false, parameter));
}
@ -354,6 +358,9 @@ public class ScalaWriter extends AbstractCodeWriter<ScalaWriter>{
@Override
public String getRawName(Type type) {
String fullName = type.getFullName();
if (PRIMITIVE_TYPES.contains(fullName)) {
fullName = StringUtils.capitalize(fullName);
}
String packageName = type.getPackageName();
String rv = fullName;
if (type.isPrimitive() && packageName.isEmpty()){
@ -366,8 +373,10 @@ public class ScalaWriter extends AbstractCodeWriter<ScalaWriter>{
}
if (rv.endsWith("[]")){
rv = rv.substring(0, rv.length()-2);
if (classes.contains(rv)){
rv = rv.substring(packageName.length()+1);
if (PRIMITIVE_TYPES.contains(rv)) {
rv = StringUtils.capitalize(rv);
} else if (classes.contains(rv)){
rv = rv.substring(packageName.length()+1);
}
return "Array[" + rv + "]";
}else{

View File

@ -118,6 +118,14 @@ public class ScalaWriterTest {
assertTrue(w.toString().contains("def main(args: Array[String])"));
assertTrue(w.toString().contains("def main2(args: Array[String])"));
}
@Test
public void Arrays2() throws IOException {
writer.field(Types.BYTE_P.asArrayType(), "byteArray");
System.out.println(w);
assertTrue(w.toString().contains("var byteArray: Array[Byte]"));
}
@Test
public void Trait() throws IOException{