Skip to content

Commit

Permalink
Move a method that was only used once
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonathan Feinberg committed Aug 12, 2010
1 parent 29f5d28 commit a81afbd
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 29 deletions.
32 changes: 30 additions & 2 deletions src/jycessing/build/PolymorphicMethod.java
Expand Up @@ -104,8 +104,7 @@ private void append(final Signature signature, final StringBuilder sb) {
if (i > 0) {
sb.append(", ");
}
sb.append(TypeUtil.asJavaExpression("args[" + i + "]", signature.getArgTypes().get(
i)));
sb.append(asJavaExpression(signature, i));
}
sb.append(')');
if (signature.isVoid()) {
Expand All @@ -117,4 +116,33 @@ private void append(final Signature signature, final StringBuilder sb) {
sb.append('\n');
}

public static String asJavaExpression(final Signature signature, final int i) {
final String name = "args[" + i + "]";
final Class<?> javaType = signature.getArgTypes().get(i);
final StringBuilder sb = new StringBuilder();
if (javaType == float.class) {
sb.append("(float)").append(name).append(".asDouble()");
} else if (javaType == int.class) {
sb.append(name).append(".asInt()");
} else if (javaType == String.class) {
sb.append(name).append(".asString()");
} else if (javaType == char.class) {
sb.append(name).append(".asString().charAt(0)");
} else if (javaType == long.class) {
sb.append(name).append(".asLong()");
} else if (javaType == byte.class) {
sb.append("(byte)").append(name).append(".asInt()");
} else if (javaType == boolean.class) {
sb.append(name).append(".__nonzero__()");
} else if (javaType.isPrimitive()) {
throw new RuntimeException("You need a converter for " + javaType);
} else {
final String simpleName = javaType.isArray() ? javaType.getSimpleName() : javaType
.getName();
sb.append('(').append(simpleName).append(')').append(name).append(".__tojava__(")
.append(simpleName).append(".class)");
}
return sb.toString();
}

}
27 changes: 0 additions & 27 deletions src/jycessing/build/TypeUtil.java
Expand Up @@ -16,33 +16,6 @@
package jycessing.build;

public class TypeUtil {
public static String asJavaExpression(final String name, final Class<?> javaType) {
final StringBuilder sb = new StringBuilder();
if (javaType == float.class) {
sb.append("(float)").append(name).append(".asDouble()");
} else if (javaType == int.class) {
sb.append(name).append(".asInt()");
} else if (javaType == String.class) {
sb.append(name).append(".asString()");
} else if (javaType == char.class) {
sb.append(name).append(".asString().charAt(0)");
} else if (javaType == long.class) {
sb.append(name).append(".asLong()");
} else if (javaType == byte.class) {
sb.append("(byte)").append(name).append(".asInt()");
} else if (javaType == boolean.class) {
sb.append(name).append(".__nonzero__()");
} else if (javaType.isPrimitive()) {
throw new RuntimeException("You need a converter for " + javaType);
} else {
final String simpleName = javaType.isArray() ? javaType.getSimpleName() : javaType
.getName();
sb.append('(').append(simpleName).append(')').append(name).append(".__tojava__(")
.append(simpleName).append(".class)");
}
return sb.toString();
}

public static String pyConversionPrefix(final Class<?> k) {
if (k == float.class) {
return "new PyFloat(";
Expand Down

0 comments on commit a81afbd

Please sign in to comment.