Now we have a cool @ActionScript annotation that allows us to specify different
field/method names for the ActionScript version of a class (or to omit something entirely). This removes the need for special case hackery for toStringBuilder(). In order for annotations to work, however, we have to require that the GenActionScriptTask be loaded from the same classloader that loads the classes to be reflected upon. Before we only reflected on the target classes, never instantiated them. Annotations are actually instantiated, so we have to be able to create an instance of the ActionScript.class that is compiled into our target classes and assign it to a reference that is compiled into GenActionScriptTask. Beware the complexities of dealing with multiple class loaders. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4405 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
package com.threerings.io;
|
||||
|
||||
import com.samskivert.util.StringUtil;
|
||||
import com.threerings.util.ActionScript;
|
||||
|
||||
/**
|
||||
* A simple serializable object implements the {@link Streamable}
|
||||
@@ -44,6 +45,7 @@ public class SimpleStreamableObject implements Streamable
|
||||
* Handles the toString-ification of all public members. Derived
|
||||
* classes can override and include non-public members if desired.
|
||||
*/
|
||||
@ActionScript(name="toStringBuilder")
|
||||
protected void toString (StringBuilder buf)
|
||||
{
|
||||
StringUtil.fieldsToString(buf, this);
|
||||
|
||||
Reference in New Issue
Block a user