diff --git a/src/main/java/com/threerings/presents/tools/GenUtil.java b/src/main/java/com/threerings/presents/tools/GenUtil.java
index 8e0fb9ee6..2ae9bf9bf 100644
--- a/src/main/java/com/threerings/presents/tools/GenUtil.java
+++ b/src/main/java/com/threerings/presents/tools/GenUtil.java
@@ -146,25 +146,18 @@ public class GenUtil extends com.samskivert.util.GenUtil
*/
public static String boxASArgument (Class> clazz, String name)
{
- if (clazz == Boolean.TYPE) {
- return "langBoolean.valueOf(" + name + ")";
- } else if (clazz == Byte.TYPE) {
- return "Byte.valueOf(" + name + ")";
- } else if (clazz == Character.TYPE) {
- return "Character.valueOf(" + name + ")";
- } else if (clazz == Short.TYPE) {
- return "Short.valueOf(" + name + ")";
- } else if (clazz == Integer.TYPE) {
- return "Integer.valueOf(" + name + ")";
- } else if (clazz == Long.TYPE) {
- return name; // Long is left as is
- } else if (clazz == Float.TYPE) {
- return "Float.valueOf(" + name + ")";
- } else if (clazz == Double.TYPE) {
- return "Double.valueOf(" + name + ")";
- } else {
- return name;
- }
+ return boxASArgumentAndGatherImports(clazz, name, new ImportSet());
+ }
+
+ /**
+ * Calculates the set of imports required for the code to box the given class in actionscript.
+ * For example, for int, Integer.class will be returned.
+ */
+ public static ImportSet getASBoxImports (Class> clazz)
+ {
+ ImportSet imports = new ImportSet();
+ boxASArgumentAndGatherImports(clazz, "foo", imports);
+ return imports;
}
/**
@@ -277,4 +270,37 @@ public class GenUtil extends com.samskivert.util.GenUtil
anno += ")";
return anno;
}
+
+ protected static String boxASArgumentAndGatherImports (Class> clazz, String name,
+ ImportSet imports)
+ {
+ if (clazz == Boolean.TYPE) {
+ imports.add(Boolean.class);
+ return "langBoolean.valueOf(" + name + ")";
+ } else if (clazz == Byte.TYPE) {
+ imports.add(Byte.class);
+ return "Byte.valueOf(" + name + ")";
+ } else if (clazz == Character.TYPE) {
+ imports.add(Character.class);
+ return "Character.valueOf(" + name + ")";
+ } else if (clazz == Short.TYPE) {
+ imports.add(Short.class);
+ return "Short.valueOf(" + name + ")";
+ } else if (clazz == Integer.TYPE) {
+ imports.add(Integer.class);
+ return "Integer.valueOf(" + name + ")";
+ } else if (clazz == Long.TYPE) {
+ imports.add(Long.class);
+ return name; // Long is left as is
+ } else if (clazz == Float.TYPE) {
+ imports.add(Float.class);
+ return "Float.valueOf(" + name + ")";
+ } else if (clazz == Double.TYPE) {
+ imports.add(Double.class);
+ return "Double.valueOf(" + name + ")";
+ } else {
+ imports.add(name);
+ return name;
+ }
+ }
}